Регистрация
Войти
Стать экспертом Правила
Информатика

Помогите, пожалуйста, с задачей на паскаль. (В решение есть ошибки. Как написать код правильно?)
Два поезда из разных населенных пунктов одновременно выезжают навстречу друг другу и через t часов они встретились. Еще через t1
часов первый поезд прибыл в пункт, из которого выехал второй поезд. Через какое время второй поезд прибудет в пункт, из которого выехал первый поезд.
Входные данные

Два целых неотрицательных числа t и t1 (не превосходят 24).
Выходные данные

Вывести время, через которое второй поезд прибудет в конечный пункт в формате часы минуты.


var t,t1,t2,a,a1,x,x1:real;

begin
read(t);
read(t1);

a: = t*60;
a1: = t1*60;
t2: = a*a/a1;

x: = t2 div 60;
x1: = t2 mod 60;

writeln(t2:0:0,' ',x:0:0,' ',x1:0:0);
end.

ОТВЕТЫ
Var t,t1,t2,x,x1:real;

begin
readln(t);
readln(t1);

t2:=t*t/t1;

x:=trunc(t2);
x1:=frac(t2)*60;

writeln(t2, ,x:0:0, ,x1:0:0);
end.

Пример:
4.5
3
6.75 6 45
А дело всё в том, что операция mod на типе real не работает.
Ради работоспособности придётся либо менять алгоритм, либо жертвовать точностью, округляя t2:

var
    t, t1, t2, a, a1, x, x1: real;
begin
    readln(t);
    readln(t1);
    a := t * 60;
    a1 := t1* 60;
    t2 := (a * a) / a1;
    x := t2 div 60;
    x1 := Round(t2) mod 60;
    writeln(t2:0:0, ,x:0:0, ,x1:0:0);
end.

155
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам