Помогите, пожалуйста, с задачей на паскаль. (В решение есть ошибки. Как

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

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

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


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.

Задать свой вопрос
Тимур Бащенко
самообразование, пытаюсь разобраться в паскале
Нина Гельбух
имею готовый код на с++, но цель осознать как верно написать на pascal
Емельяшенков Витя
t2:=a*a/a1 - что происходит раньше: разделение либо умножение?
Вячеслав Чудин
умножение
2 ответа
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.

Казинец Максим
Также как и функция div. Спасибо
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт