Найти самую раннюю дату - 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.
Объяснение кода листинга программы
- В начале объявляются необходимые переменные типа tdate, date, min, s.
- Затем идет функция cmp, которая определяет порядок дат.
- В основной части программы объявляется переменная min, которая будет хранить самую раннюю дату.
- Затем идет цикл, в котором считывается строка со временной меткой от пользователя.
- Строка преобразуется в целое число для каждого поля (день, месяц, год).
- Если введенная строка является самой ранней датой из сохраненных, то она обновляется.
- Цикл продолжается до тех пор, пока не будет введено достаточное количество дат или пока не будет достигнут конец файла.
- По окончании ввода выводится самая ранняя дата.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д