Найти самую раннюю дату - Pascal ABC

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

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

Найти самую раннюю дату. Данные сведения о различных даты. Каждая дата - это число , месяц и год. Найти самую раннюю дату.

Решение задачи: «Найти самую раннюю дату»

textual
Листинг программы
type
  tdate = record
    day, month, year: integer;
    str: string;
  end;
var
  date, min: tdate;
  s: string;
function cmp(a, b: tdate): boolean;
begin
  cmp := (a.year < b.year) or (a.year = b.year) and (a.month < b.month) or (a.year = b.year) and (a.month = b.month) and (a.day < b.day);
end;
begin
  writeln('Введите даты, для окончания ввода введите CTRL+Z');
  repeat
    readln(s);
    date.str := s;
    date.day := strtoint(copy(s, 1, pos('.', s) - 1));
    delete(s, 1, pos('.', s));
    date.month := strtoint(copy(s, 1, pos('.', s) - 1));
    delete(s, 1, pos('.', s));
    date.year := strtoint(s);
    if (min.str = '') or cmp(date, min) then min := date;
  until eof;
  writeln('Самая ранняя дата: ', min.str);
end.

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

  1. В начале объявляются необходимые переменные типа tdate, date, min, s.
  2. Затем идет функция cmp, которая определяет порядок дат.
  3. В основной части программы объявляется переменная min, которая будет хранить самую раннюю дату.
  4. Затем идет цикл, в котором считывается строка со временной меткой от пользователя.
  5. Строка преобразуется в целое число для каждого поля (день, месяц, год).
  6. Если введенная строка является самой ранней датой из сохраненных, то она обновляется.
  7. Цикл продолжается до тех пор, пока не будет введено достаточное количество дат или пока не будет достигнут конец файла.
  8. По окончании ввода выводится самая ранняя дата.

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


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

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

7   голосов , оценка 3.714 из 5
Похожие ответы