Добавить процедуру в готовую программу - Pascal ABC
Формулировка задачи:
Помогите надо в эту программу добавить процедуру создать процедуру поиска и вывода сотрудниц страше 50 лет.
Решение задачи: «Добавить процедуру в готовую программу»
textual
Листинг программы
uses
Utils;
procedure Search50;
var
i: Byte;
function IsOlder50(d: Data): Boolean;
var
dd: DateTime;
Result: Boolean;
begin
dd := CurrentDateTime;
if (dd.Year - d.Year > 50)
then
Result := True
else
if (dd.Year - d.Year < 50)
then
Result := False
else
if (dd.Month > d.Month)
then
Result := True
else
if (dd.Month < d.Month)
then
Result := False
else
Result := (dd.Day >= d.Day);
IsOlder40 := Result;
end;
begin
WriteLn('Список женщин старше 40:');
for i := 1 to n do
with mas[i] do
if ((fpol='ж') And (IsOlder40(BDate)))
then
WriteLn(ffam);
end;
Объяснение кода листинга программы
- Подключается библиотека Utils.
- Определяется процедура Search50.
- Определяется функция IsOlder50, которая принимает объект типа Data и возвращает булево значение - true, если дата старше 50 лет, и false в противном случае.
- Переменные объявляются: i - байт, dd - объект типа DateTime, Result - булево значение.
- В блоке if проверяется разница между годами текущей даты и даты, для которой выполняется проверка. Если разница больше 50, то Result устанавливается в true. Если разница меньше или равна 50, то выполняются следующие проверки: если месяц текущей даты больше месяца даты, то Result устанавливается в true. Если месяц текущей даты меньше месяца даты, то Result устанавливается в false. Если день текущей даты больше дня даты, то Result устанавливается в true. Если день текущей даты меньше дня даты, то Result устанавливается в false.
- Если выполнены все условия, то Result устанавливается в true.
- Значение Result сохраняется в переменной IsOlder40.
- Выводится список женщин старше 40 лет. Для этого в цикле for перебираются элементы массива mas.
- Внутри цикла с объектами mas происходит проверка: если поле fpol равно 'ж' и функция IsOlder40(BDate) возвращает true, то выводится имя семьи (содержимое поля ffam).
- Цикл завершается.
- Программа завершается.