За какое время Пунтик одолел первую половину пути, после чего запланировал привал? - C (СИ)
Формулировка задачи:
Путник двигался t1 часов со скоростью v1,затем t2 часов-со скоростью v2 и t3 часов со скоростью v3.
За какое время он одолел первую половину пути,после чего запланировал привал?
t1 t2 t3 и v1 v2 v3 - вводим с клавиатуры.
#include <stdio.h>
#include <conio.h>
#include <math.h>
main ()
{
float t1,v1,t2,v2,t3,v3,vesryx,polovryxy;
printf ("vvedit shvudkist i 4as ryxy pytnuka(vsi chusla dodatni) \n");
printf ("t1=");
scanf ("%f",&t1);
printf ("v1=");
scanf ("%f",&v1);
printf ("t2=");
scanf ("%f",&t2);
printf ("v2=");
scanf ("%f",&v2);
printf ("t3=");
scanf ("%f",&t3);
printf ("v3=");
scanf ("%f",&v3);
vesryx=(t1*v1)+(t2*v2)+(t3*v3);
polovryxy=vesryx/2;
getch();
}Решение задачи: «За какое время Пунтик одолел первую половину пути, после чего запланировал привал?»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <math.h>
main ()
{
float t1,v1,t2,v2,t3,v3,vesryx,polovryxy;
printf ("vvedit shvudkist i 4as ryxy pytnuka(vsi chusla dodatni) \n");
printf ("t1=");
scanf ("%f",&t1);
printf ("v1=");
scanf ("%f",&v1);
printf ("t2=");
scanf ("%f",&t2);
printf ("v2=");
scanf ("%f",&v2);
printf ("t3=");
scanf ("%f",&t3);
printf ("v3=");
scanf ("%f",&v3);
vesryx=(t1*v1)+(t2*v2)+(t3*v3);
polovryxy=vesryx/2;
float distance1=t1*v1, distance2=t2*v2, distance3=t3*v3,result;
if(polovryxy<=distance1)
{
result=polovryxy/v1;
printf("%f",result);
getch();
return 1;
}
if(polovryxy<=distance2&&polovryxy>distance1)
{
result=t1+(polovryxy-distance1)/v2;
printf("%f",result);
getch();
return 1;
}
result=t1+t2+(polovryxy-distance1-distance2)/v2;
printf("%f",result);
getch();
}
Объяснение кода листинга программы
- Объявление переменных: float t1, v1, t2, v2, t3, v3, vesryx, polovryxy;
- Ввод данных с помощью функции scanf:
- t1 = вводимое значение скорости первого участка пути;
- v1 = вводимое значение времени первого участка пути;
- t2 = вводимое значение скорости второго участка пути;
- v2 = вводимое значение времени второго участка пути;
- t3 = вводимое значение скорости третьего участка пути;
- v3 = вводимое значение времени третьего участка пути;
- Вычисление суммы площадей: vesryx = (t1v1)+(t2v2)+(t3*v3);
- Вычисление половины суммы площадей: polovryxy = vesryx/2;
- Вычисление расстояний по каждому участку:
- distance1 = t1*v1;
- distance2 = t2*v2;
- distance3 = t3*v3;
- Проверка, является ли половина суммы площадей меньше первого расстояния:
- Если условие выполняется, то значение половины суммы площадей делится на скорость первого участка и выводится на экран, а затем программа завершается;
- Если половина суммы площадей меньше второго расстояния, но больше первого, то вычисляется время, затраченное на второй участок:
- result = t1+(polovryxy-distance1)/v2;
- Значение result выводится на экран, а затем программа завершается;
- Если половина суммы площадей больше второго расстояния, то вычисляется общее время пути:
- result = t1+t2+(polovryxy-distance1-distance2)/v2;
- Значение result выводится на экран, а затем программа завершается;