Cоздать файл из списка 10 студентов с их оценками ( номер, Ф.И.О. и три оценки). Вывести его содержимое на экран, изменить фамилию студента с номером, введенным с клавиатуры, заново прочитать файл- Pascal(Паскаль)

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.

Leave a Comment

67 − 63 =