Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вопрос опытным программистам в обл. языка программирования Pascal ABCnet

Moskalenko`M. Ученик (205), закрыт 1 год назад
Pascal ABCnet. Необходимо расписать каждую процедуру что и где выполняется...

program GIBDD_Tomsk_Obl;

const
filebase = 'database.dat';
type
inerpol = record
fio: string[50];
nsp: string[50];
p2: integer;
nts: string[50];
shtr: integer;
end;
var
a: char;
TmpFile: file of inerpol;

procedure DataSorting; // сортировка
var
tmpmass:array[1..5000] of inerpol;
i,j:integer;
tmp:inerpol;

begin
assign(TmpFile, filebase);
reset(TmpFile);
i:=1;
while not eof(TmpFile) do
begin
read(TmpFile, tmp);
tmpmass[i]:=tmp;
i:=i+1;
end;
close(TmpFile);
for i:= 1 to 5000 do
begin
for j:= 1 to 5000 do
begin
if (tmpmass[i].fio < tmpmass[j].fio) then
begin
tmp:=tmpmass[i];
tmpmass[i]:=tmpmass[j];
tmpmass[j]:=tmp;
end;
end;
end;
rewrite(TmpFile);
close(TmpFile);
reset(TmpFile);
for i:= 1 to 5000 do
begin
if (tmpmass[i].p2>0) then write(TmpFile, tmpmass[i]);
end;
end;

procedure NewEntry; // новая запись
var
r: inerpol;
begin
write(' Введите ФИО: ');
readln(r.fio);
write(' Введите номер ТС: ');
readln(r.nsp);
write(' Введите номер и серию ПТС: ');
readln(r.p2);
write(' Введите краткое наименование нарушения: ');
readln(r.nts);
write(' Введите размер штрафа (руб): ');
readln(r.shtr);
Assign(TmpFile, filebase);
Reset(TmpFile);
Seek(TmpFile, FileSize(TmpFile));
write(TmpFile, r);
Close(TmpFile);
end;

procedure ListBase(r: inerpol);
begin
write(' ФИО: ');
writeln(r.fio);
write(' Номер и серия ПТС: ');
writeln(r.nsp);
write(' Номер ТС: ');
writeln(r.p2);
write(' Краткое наименование нарушения: ');
writeln(r.nts);
write(' Размер штрафа (руб): ');
writeln(r.shtr);
writeln('_______________________________');
end;

procedure ViewInform; {просмотр данных}
var
r: inerpol;
i: integer;
begin
Assign(TmpFile, filebase);
Reset(TmpFile);
i:=0;
while not eof(TmpFile) do
begin
read(TmpFile, r);
i := i + 1;
writeln('Запись №: ':20, i);
ListBase(r);
end;
Close(TmpFile);
end;

procedure NewTable; {создание нового списка}
begin
Assign(TmpFile, filebase);
Rewrite(TmpFile);
Close(TmpFile);
writeln('новый список создан');
readln;
end;

procedure DelInform; {Удаление записи}
var
r1: file of inerpol;
i: integer;
n: integer;
r: inerpol;
begin
writeln('введите номер записи, которую нужно удалить (0 для отмены): ');
readln(n);
if n <> 0 then
begin
writeln('Удалить запись №: ', n);
Assign(r1, 'del.bak');
Rewrite(r1);
Assign(TmpFile, 'database.dat');
Reset(TmpFile);
i:=0;
while not eof(TmpFile) do
begin
read(TmpFile, r);
i:=i+1;
if i <> n then
write(r1, r);
end;
Close(r1);
Close(TmpFile);
Rename(TmpFile, 'let.bak');
Rename(r1, 'database.dat');
end;
end;

procedure SearchInform; {Поиск записи}
var r: inerpol;
name:string[50];
s: boolean;
begin
writeln('Введите ФИО: ');
readln(r.fio);
reset(TmpFile);
while not eof(TmpFile) do begin
read(TmpFile, r);
s := false;
if UpperCase(r.fio) = UpperCase(r.fio) then begin
s := true;
writeln('Найденая запись: ');
writeln('|ФИО: ', r.fio,'| Номер ТС: ',r.nsp, '| Номер и серия ПТС: ',r.p2,'| Нарушение: ', r.nts,'| Цена: ', r.shtr);
break;
end;
end;
if not s then writeln('Запись отсутствует');
end;
function UserMenu : char;
var
a : char;
begin
//textbackground(0);//n от
Лучший ответ
Imobilazer Искусственный Интеллект (222497) 9 лет назад
DataSorting - сортирует записи по фамилии
NewEntry - позволяет добавить новую запись
ListBase - выводит запись на экран
ViewInform - выводит все записи
NewTable - очищает файл с базой
DelInform - удаляет запись из базы по номеру
SearchInform - поиск в базе по ФИО

Подробнее может рассказать репетитор по информатике, он за такое деньги получает)
Остальные ответы
Krab Bark Искусственный Интеллект (292777) 9 лет назад
Опытные программисты не пишут на этом языке :)
Расписать, что где тут выполняется, конечно, могут и неопытные, но подумай, сколько страниц текста на это уйдет ;)
Похожие вопросы