Program file;
Type
wed = record { Тип wed включает 3 поля: n, fio, bal }
n: byte;
fio: string[15];
bal: array [1 .. 3] of byte; { Поле bal – массив из 3 оценок }
end;
Var
spisok: wed; { Запись spicok типа wed }
sp: file of wed; { Файл записей типа wed }
procedure vvod; { процедура создания файла }
var
i, j: byte;
begin
{ оператор assing находится в основной прграмме }
rewrite(sp); { открытие файла для записи }
with spisok do
For i := 1 to 10 do
begin
n := i;
writeln(' Введите фамилию - ', i);
readln(fio);
writeln(' Введите 3 оценки ', fio);
For j := 1 to 3 do
readln(bal[j]);
write(sp, spisok); { запись в файл информации о студенте }
end;
close(sp); { закрытие файла для записи }
end;
procedure print; { процедура чтения и печати всего файла }
var
j: byte;
begin
reset(sp); { открытие файла для чтения }
writeln(‘ Список студентов:‘);
while not eof(sp) do
with spisok do
begin
Read(sp, spisok); { чтение данных из файла }
write(n, ' ', fio); { вывод записи на экран }
For j := 1 to 3 do
write(' ', bal[j]);
writeln;
end;
readln;
close(sp);
end;
procedure work;
var
num: integer;
begin
reset(sp); { открытие файла для чтения }
writeln('номер= ');
readln(num);
seek(sp, num - 1);
{ поиск записи с указанным номером (нумерация записей с 0) }
read(sp, spisok); { чтение и перемещение указателя к сле*д. записи }
write('fio=');
writeln(spisok.fio);
seek(sp, filepos(sp) - 1); { возвращение к изменяемой записи }
writeln(‘ Введите новую фамилию ’);
readln(spisok.fio);
write(sp, spisok); { запись в файл измененной записи }
close(sp);
end;
begin { начало основной программы }
assign(sp, 'Vedom.DAT'); { связать файловую перем-ю sp с файлом Vedom.dat }
vvod;
print; { процедуры создания и чтения файла }
work;
print; { корректировка и чтение измененного файла }
readln
end.