Найти самого старшего мужчину в группе - Turbo Pascal
Формулировка задачи:
Решение задачи: «Найти самого старшего мужчину в группе»
uses
Crt;
const
N = 3; {êîëè÷åñòâî ÷åëîâåê â ãðóïïå}
type
Date = record
Day, Month, Year: integer;
end;
Rec = record
Surname: string[50];
BDate: Date;
Sex: char;
end;
procedure WriteRec(var a: Rec);
begin
Write('Surname: ');
ReadLn(a.Surname);
Write('Day: ');
ReadLn(a.BDate.Day);
Write('Month: ');
ReadLn(a.BDate.Month);
Write('Year: ');
ReadLn(a.BDate.Year);
Write('Sex: ');
ReadLn(a.Sex);
end;
var
a: array [1..N] of Rec;
i,maxID: integer;
begin
ClrScr;
for i := 1 to N do
WriteRec(a[i]);
maxID := 1;
for i := 2 to N do
if a[i].BDate.Year < a[maxID].BDate.Year then
maxID := i
else
if a[i].BDate.Month < a[maxID].BDate.Month then
maxID := i
else
if a[i].BDate.Day < a[maxID].BDate.Day then
maxID := i;
WriteLn('//--------------------------------------------------------');
with a[maxID] do
begin
WriteLn('Surname: ', Surname);
WriteLn('Date: ', BDate.Day, '.', BDate.Month, '.', BDate.Year);
WriteLn('Sex: ', Sex);
end;
ReadLn
end.
Объяснение кода листинга программы
Данный код написан на языке Turbo Pascal и предназначен для поиска самого старшего мужчины в группе.
В начале кода объявляются необходимые переменные и типы данных. Затем используется конструкция uses, чтобы импортировать необходимые библиотеки.
Далее определяется константа N, которая представляет собой количество мужчин в группе.
Затем определяется тип Date, который представляет собой дату в формате ДД.ММ.ГГГГ.
После этого определяется тип Rec, который представляет собой запись с информацией о мужчине, включая фамилию, дату рождения, пол и другие данные.
Далее объявляется переменная a, которая представляет собой массив из N записей типа Rec.
Затем идет цикл for, который перебирает все записи в массиве a. Внутри цикла вызывается процедура WriteRec, которая выводит информацию о текущей записи на экран.
После этого определяется переменная maxID, которая будет хранить индекс самого старшего мужчины. Изначально устанавливается значение maxID равным 1.
Затем идет еще один цикл for, который перебирает все записи в массиве a. Внутри цикла сравниваются даты рождения текущей записи и предыдущего самого старшего мужчины. Если дата рождения текущего мужчины старше, то обновляется значение maxID. Если месяц или день текущего мужчины старше, то также обновляется значение maxID.
После завершения циклов выводится информация о самом старшем мужчине на экран.
В конце кода вызывается функция ReadLn, чтобы прочитать ввод пользователя.
Таким образом, данный код позволяет найти самого старшего мужчину в группе.