Прог-ие 1К 2С / 5
.docxprogram Project2;
{
5. Ввести в ЭВМ список N анкет людей, содержащий информацию вида (N = 25);
Фамилия, Дата рождения(год, месяц, число)
Обеспечить следующие виды операций со списком:
а)определение самого старого и самого молодого человека в списке;
б)упорядочивание списка по убыванию года рождения;
в)ввод некоторой фамилии по запросу,
поиск её в списке и выдача полной информации о запрашиваемом человеке.
}
{$APPTYPE CONSOLE}
uses
SysUtils,
Windows;
const
n = 25;
type
wablon = record
fam : string;
god, mes, chis : integer;
end;
var
spisok : array [1..n] of wablon;
temp : wablon;
num, i, v : integer;
cmd, t : string;
error : boolean;
begin
{ TODO -oUser -cConsole Main : Insert code here }
t := 'Укажите количество людей';
CharToOEM(PChar(t), PChar(t));
writeln(t);
readln(num);
t := 'Вводите информацию о каждом человеке';
CharToOEM(PChar(t), PChar(t));
writeln(t);
for i := 1 to num do
with spisok[i] do
begin
t := 'Введите фамилию:';
CharToOEM(PChar(t), PChar(t));
write(t);
readln(fam);
t := 'Введите дату рождения:';
CharToOEM(PChar(t), PChar(t));
write(t);
readln(god, mes, chis);
end;
for i := 1 to num - 1 do
for v := 1 to num - i do
begin
if spisok[i].god < spisok[i + 1].god then
begin
temp := spisok[i];
spisok[i] := spisok[i + 1];
spisok[i + 1] := temp;
end;
end;
t := 'Узнать кто самый старый команда - star';
CharToOEM(PChar(t), PChar(t));
writeln(t);
t := 'Узнать кто самый молодой команда - molod';
CharToOEM(PChar(t), PChar(t));
writeln(t);
t := 'Получить упорядоченный по убыванию года рождения список команда - list';
CharToOEM(PChar(t), PChar(t));
writeln(t);
t := 'Для получения полной информации о человеке введите фамилию';
CharToOEM(PChar(t), PChar(t));
writeln(t);
t := 'Для выхода введите q';
CharToOEM(PChar(t), PChar(t));
writeln(t);
repeat
error := false;
if cmd = 'star'
then writeln(spisok[num].fam)
else
if cmd = 'molod'
then writeln(spisok[1].fam)
else
if cmd = 'list'
then
for i := 1 to num do
with spisok[i] do
writeln(spisok[i].fam, ' ',spisok[i].god, ' ',spisok[i].mes, ' ',
spisok[i].chis)
else
begin
error := true;
for i:= 1 to num do
if cmd = spisok[i].fam
then
begin
writeln(spisok[i].fam, ' ',spisok[i].god, ' ',
spisok[i].mes, ' ',spisok[i].chis);
error := false;
end;
end;
if error then
begin
t := 'Команда или фамилия введена не верно!';
CharToOEM(PChar(t), PChar(t));
writeln(t);
end;
readln(cmd);
until cmd = 'q';
end.