Написать программу, используя технологию структурного программирования-записи - Free Pascal
Формулировка задачи:
Дан массив дат, в котором каждый компонент включает поля: день, месяц и год. Найти все зимние даты и самую позднюю дату
Решение задачи: «Написать программу, используя технологию структурного программирования-записи»
textual
Листинг программы
{$mode objfpc} type r = record d : 1 .. 31; m : 1 .. 12; y : integer; end; operator < (left, right : r) : boolean; begin result := (left.y < right.y) or ((left.y = right.y) and (left.m < right.m)) or ((left.y = right.y) and (left.m = right.m) and (left.d < right.d)); end; operator not (rec : r) : boolean; begin result := rec.m in [1, 2, 12]; end; const n = 5; var arr : array[1 .. n] of r = ( (d:3; m:1; y:2017), (d:4; m:5; y:2015), (d:5; m:12; y:2012), (d:6; m:11; y:2017), (d:18; m:2; y:1999) ); v, vmax : r; begin vmax := arr[1]; for v in arr do begin if not v then writeln(v.d:3, v.m:3, v.y:5); if vmax < v then vmax := v; end; writeln('Максимальная дата: ', vmax.d:3, vmax.m:3, vmax.y:5); end.
Объяснение кода листинга программы
- Программа использует язык программирования Free Pascal.
- В программе объявлен тип данных
r
, который представляет собой запись (структуру) с полямиd
,m
иy
. - Определен оператор
<
для сравнения двух объектов типаr
. - Определен оператор
not
для проверки объекта типаr
на условие. - Задана константа
n
равная 5, которая определяет размер массиваarr
. - Массив
arr
объявлен как массив из 5 объектов типаr
. - Объекты типа
r
заполняются значениями, представляющими дату. - Переменные
v
иvmax
объявлены как объекты типаr
. - Значение переменной
vmax
инициализируется значением первого элемента массиваarr
. - В цикле перебираются все элементы массива
arr
. - Если элемент
v
не соответствует условию (не является пустым), то выводится его значение. - Если элемент
vmax
меньше текущего элементаv
, то значениеvmax
обновляется. - После цикла выводится максимальная дата.
- Значения переменных
vmax
иarr
выводятся в консоль. - Значение переменной
vmax
представляет собой максимальную дату из массиваarr
. - Значения переменных
v
иvmax
используются для контроля условий и вывода информации в консоль. - В данном коде используется структурное программирование с использованием записей (структур).
- Оператор
<
сравнивает объекты типаr
по полямy
,m
иd
в указанном порядке. - Оператор
not
проверяет, является ли объект типаr
пустым (его полеm
равно одному из значений [1, 2, 12]). - Значения переменных и массива
arr
используются для контроля условий и вывода информации в консоль.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д