Перевод алгоритма с алгоритмического языка - C#
Формулировка задачи:
Как успеть подешевле? Можно ехать на такси со скоростью v1 км/ч и оплатой p1 руб/км либо идти пешком со скоростью v2 км/ч бесплатно. Как с наименьшими затратами преодолеть путь S км за время t ч, если это возможно? Каковы эти затраты?
Вот код алгоритм. языке:
алг вычисление_стоимости_поездки (арг вещ v1, v2, p1, S, t, а, рез вещ p)
нач
| ввод v1, v2, p1, S, t, a
| если S/v1<t
| | то p:=p1*S
| | вывод р, "на такси"
| | иначе если S/(a*v1)<t
| | | то p:=p1*(S/a)
| | | вывод p, "часть А на такси-затем пешком"
| | | иначе если S/v2<t
| | | | то p:=0
| | | | вывод p, "пешком"
| | | | иначе если S/(a*v2)<t
| | | | | то p:= p1*(S-a)
| | | | | вывод p, "часть А пешком- затем на такси"
кон
Решение задачи: «Перевод алгоритма с алгоритмического языка»
textual
Листинг программы
double v1, v2, S, t, a, p1, p;
Console.Write("Введите v1: ");
v1 = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите v2: ");
v2 = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите S: ");
S = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите t: ");
t = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите a: ");
a = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите p1: ");
p1 = Convert.ToDouble(Console.ReadLine());
if (S / v1 < t)
{
p = p1 * S;
Console.WriteLine(p + " на такси");
Console.ReadLine();
}
else if (S / (a * v1) < t)
{
p = p1 * (S / a);
Console.WriteLine(p + " часть А на такси - затем пешком");
Console.ReadLine();
}
else if (S / v2 < t)
{
p = 0;
Console.WriteLine(p + " пешком");
Console.ReadLine();
}
else if (S / (a * v2) < t)
{
p = p1 * (S - a);
Console.WriteLine(p + " часть А пешкой - затем на такси");
Console.ReadLine();
}