Исправить код - Pascal

Узнай цену своей работы

Формулировка задачи:

Помогите, пожалуйста, исправить программу, чтобы чтение было из файла Требуется определить, в какой момент времени черепаха сможет вернуться домой, съев все одуванчики и затратив на путешествие наименьшее время. Входные данные В 1-й строке входного файла находятся 2 целых числа, разделенные пробелом: vmax (в см/мин) и d (в минутах), 0 < vmax ≤ 200, 0 ≤ d ≤ 500. Во 2-й строке находится число N – количество одуванчиков (в штуках). 0 ≤ N ≤ 1400 при d = 0, в противном случае 0 ≤ N ≤ 200. В каждой из последующих N строк расположены: целое число xi – расстояние от одуванчика до начала грядки (в сантиметрах), 0 ≤ xi ≤ 32767, и через пробел ti – момент прорастания одуванчика (в формате hh:mm). Выходные данные Выходной файл должен содержать момент времени возвращения черепахи домой (в формате hh:mm), округленный до целых минут в большую сторону.
var
  x, t, dx: array[0..1400] of integer;
  vmax, d, n, i, count, answer: integer;
  s: string;
  time, min, max, wait: real;
begin
  read(vmax, d, n);
  x[0] := 0; 
  for i := 1 to n do
  begin
    read(x[i], s); 
    dx[i] := x[i] - x[i - 1]; 
    t[i] := 60 * (10 * ord(s[2]) + ord(s[3]) - 528) + 10 * ord(s[5]) + ord(s[6]) - 528 - t[i - 1]
  end;
  min := 0;
  max := t[n]; 
  repeat
    wait := (min + max) / 2; 
    time := wait; 
    count := n; 
    for i := 1 to n - 1 do
    begin
      time := time + dx[i] / vmax; 
      if time >= t[i] then 
      begin
        dec(count); 
        time := time + d; 
      end;
    end;
    time := time + dx[n] / vmax; 
    if max - min < 0.1 then 
    begin
      time := time + x[n] / vmax + count * d; 
      answer := trunc(time + 0.9 - 1e-9); 
      write(answer div 600, answer div 60 mod 10, ':', answer mod 60 div 10, answer mod 60 mod 10); 
      exit
    end
    else if time < t[n] then min := wait 
                        else max := wait 
  until false;
end.

Решение задачи: «Исправить код»

textual
Листинг программы
  Close(input);

Объяснение кода листинга программы

  1. Close - это имя процедуры, которая закрывает файл.
  2. input - это переменная файла, которая представляет стандартный ввод, полностью прочитав входные данные из файла, который обычно является клавиатурой.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5