Другие языки программирования и технологии

Помогите составить программу через Pascal с использованием функции и процедуры.

Описать переменную "служащий", состоящую из имени, фамилии,
отчества служащего, даты рождения, образования, домашнего
адреса, профессии. Определить имена людей с высшим
образованием. Выдать данные о служащем, который имеет ту или
иную профессию.
Pascal ABC

type clerk=record
fam, imya, otch, data, obraz, adres, prof: string;
end;
var anketa: array [1..100] of clerk;
n, i, x: integer;
s, pr: string;
const fi: array [1..8] of string = ('Иванов','Сидоров','Попов','Петров','Ульянов','Александров','Семенов','Алексеев');
im: array [1..8] of string = ('Иван','Сидор','Михаил','Петр','Илья','Александр','Семен','Алексей');
ot: array [1..8] of string = ('Иванович','Сидорович','Михайлович','Петрович','Ильич','Александрович','Семенович','Алексеевич');
obr: array [1..5] of string = ('высшее','среднее','9 классов','средне-спец.','11 классов');
pro: array [1..5] of string = ('менеджер','нач. отдела','нач. бюро','специалист 1 кат.','оператор');
begin
write ('Введите количество служащих n [1..100] = ');
readln (n);
for i:=1 to n do
begin
anketa[i].fam:=fi[1+random(8)];
anketa[i].imya:=im[1+random(8)];
anketa[i].otch:=ot[1+random(8)];
x:=1 + random (28);
str (x, s);
if x < 10 then anketa[i].data:=anketa[i].data+'0'+s
else anketa[i].data:=s;
x:=1+random (12);
str (x, s);
if x < 10 then anketa[i].data:=anketa[i].data+'/0'+s
else anketa[i].data:=anketa[i].data+'/'+s;
x:=1980+random (12);
str (x, s);
anketa[i].data:=anketa[i].data+'/'+s;
anketa[i].obraz:=obr[1 + random (5)];
anketa[i].prof:=pro[1 + random (5)];
end;
writeln('_'*80);
writeln ('Фамилия':10,'Имя':7,'Отчество':15,'Дата рожд.':18,'Образование':17,'Профессия':14);
writeln('_'*80);
for i:=1 to n do
begin
write (anketa[i].fam);
write (' '*(13-length(anketa[i].fam)));
write (anketa[i].imya);
write (' '*(10-length(anketa[i].imya)));
write (anketa[i].otch);
write (' '*(13-length(anketa[i].otch)));
write (anketa[i].data:15);
write (' '*(15-length(anketa[i].data)));
write (anketa[i].obraz);
write (' '*(15-length(anketa[i].obraz)));
write (anketa[i].prof);
writeln;
end;
writeln('_'*80);
writeln;
writeln(' Виды образования ');
for i:=1 to high(obr) do
writeln (i:5,') ', obr[i]);
write('Выберите образование (число) = ');
readln (x);
pr:=obr[x];
writeln;
writeln(' Имена с образованием = ', obr[x]);
for i:=1 to n do
if (anketa[i].obraz = pr) then
begin
//write (anketa[i].fam);
write (' ',anketa[i].imya);
//write (' ',anketa[i].otch );
writeln;
end;
writeln;
writeln('_'*80);
writeln(' Виды профессий ');
for i:=1 to high(pro) do
writeln (i:5,') ', pro[i]);
write('Выберите профессию (число) = ');
readln (x);
pr:=pro[x];
writeln;
writeln(' Служащие по профессии = ', pro[x]);
for i:=1 to n do
if (anketa[i].prof = pr) then
begin
write (anketa[i].fam);
write (' '*(13-length(anketa[i].fam)));
write (anketa[i].imya);
write (' '*(10-length(anketa[i].imya)));
write (anketa[i].otch);
write (' '*(13-length(anketa[i].otch)));
write (anketa[i].data:15);
write (' '*(15-length(anketa[i].data)));
write (anketa[i].obraz);
write (' '*(15-length(anketa[i].obraz)));
write (anketa[i].prof);
writeln;
end;
end.
Александр Губин
Александр Губин
15 232
Лучший ответ
Помогаю - используй записи (records)