
Приложение 1
Исходный текст программы решения задачи Получение сведений об ассортименте обуви в магазине фирмы
PROGRAM K_RABOTA;
{Курсовая работа по Программированию
студента 05-ВИЭ-3 Алексеева А.А.
Вариант 40}
type zap=record
fam: string[20];
otdel: string[30];
god: integer;
oklad: real;
end;
var
sved: file of zap;
X: zap;
n: integer;
fo: array [1..10] of string [20];
oko: array [1..10] of real;
opz: string [30];
procedure obrab;
{Подпрограмма выбора данных}
begin
Assign(sved,'sved.dat');
reset (sved);
n:=0;
while not EOF (sved) do begin
read(sved,x);
if (opz=x.otdel) then begin
n:=n+1;
fo[n]:= x.fam;
oko[n]:=x.oklad;
end;
end;
close(sved);
writeln('Число сотрудников в отделе',
opz:30, ':',n:3);
end;
procedure sort;
{Подпрограмма сортировки}
var
i,k:integer;
f:string [20];
c:real;
begin
for i:=1 to n-1 do
for k:=i+1 to n do
if oko[i]<oko[k] then begin
c:=oko[i];
oko[i]:= oko[k];
oko[k]:=c;
f:=fo[i];
fo[i]:=fo[k];
fo[k]:=f;
end;
end;
procedure vuvod;
{Подпрограмма вывода результата}
var
i: integer;
begin
writeln;
writeln('Список сотрудников отдела:', opz:30);
writeln;
writeln('------------------------------------');
writeln('! N! Фамилия ! Оклад !');
writeln('------------------------------------');
for i:=1 to n do
writeln('!',i:2,'!',fo[i]:20,'!',oko[i]:10:2,
'!');
writeln('------------------------------------');
writeln;
end;
{Основная программа}
begin
writeln('Введите название отдела');
readln(opz);
obrab;
{Вызов процедуры выбора данных}
if n=0 then writeln ('Нет данных по отделу:',
opz:30)
else
begin
if n>1 then sort;
{Вызов процедуры сортировки}
vuvod;
{Вызов процедуры вывода результатов}
end;
readln;
end.
Приложение 2
Текст тестового файла на магнитном диске
Алексеев |
отдел кадров |
1955 |
9900 |
Иванов |
технический |
1980 |
10000 |
Петрова |
бухгалтерия |
1968 |
8500 |
Николаев |
технический |
1985 |
8000 |
Смирнов |
технический |
1963 |
7500 |
Сидоров |
технический |
1964 |
9000 |
Кузнецов |
технический |
1971 |
5000 |
Ильина |
отдел кадров |
1980 |
4500 |
Сергеева |
бухгалтерия |
1968 |
9500 |
Яковлев |
бухгалтерия |
1956 |
6000 |