ПОСТАНОВКА ЗАДАЧИ.
Подготовить данные об абитуриентах, поступающих в институт. Информацию о каждом студенте оформить в виде записи, содержащей следующие поля:
1. Фамилия, имя, отчество;
2. Год рождения;
3. Год окончания школы;
4. Оценки в аттестате;
5. Признак - нуждается ли в общежитии;
6. Оценки вступительных экзаменов.
Разработать программу записи подготовленных данных во внешний файл и программу обработки созданного внешнего файла.
1. Удалить из внешнего файла все записи, удовлетворяющие условию, заданному в варианте, и распечатать информацию, оставшуюся в файле.
2. Добавить N записей в конец (начало) внешнего файла и распечатать записи полученного файла
I. Из внешнего файла, содержащего исходные данные, удалить записи, соответствующие:
Абитуриентам, нуждающимся в общежитии и получившим хотя бы одну оценку 3;
П. Используя внешний файл, содержащий исходные данные, добавить N записей и распечатать:
Список абитуриентов, сдавших вступительные экзамены с двумя оценками 4 и остальными оценками 5, N=3;
uses crt;
type
form=record
fio:string[45];
yofs:0..2000;
yob:0..2000;
markss:array[0..5] of integer;
home:string[3];
marksexam:array[0..5] of integer;
end;
formfile=file of form;
var
zapis:form;
filef1,filef2:formfile;
procedure 1;
var
a,b:integer;
begin
assign(filef2,'anketa2');
newrite(filef2);
if result <>0 then exit;
b:=0;
reset(filef1);
while not eof(filef1) do
begin
read(filef1,zapis);
with zapis do
begin
if (a==3) and (home='da') then
begin
write(filef2,zapis);
end;
end;
end;
close(filef1);
close(filef2);
end;
procedure 2;
var
a,b:integer;
begin
b:=0;
reset(filef1);
while not eof(filef1) do
begin
read(filef1,zapis);
whith zapis do
begin
for a:=0 to 4 do
b:=b+marksexam[a];
if (b/5)=4.6 then
writeln('FIO stydenta:',fio);
end;
end;
close(filef1);
end;
procedure 3;
var
j:integer;
begin
writeln;
whith zapis do
begin
writeln('vvedite FIO abityrienta');
readln(fio);
writeln('vvedite god okonchanya wkoly')
readln(yofs);
writeln('vvedite god rojdenia');
readln(yob);
writeln('nyjdaetsa li v obshejitie(da/net)');
readln(home);
writeln('vvedite ozenki attestata');
for j:=0 to 4 do
readln(markss[j]);
end;
end;
var
i, x:integer;
BEGIN
clrscr;
writeln('vvedite kol-vo abityrientov');
readln(x);
if x=0 then Exit;
assign(filef1,'anketa1');
rewrite(filef1);
if foresult<>0 then exit;
new(zapis);
for i:=1 to x do
begin
3;
write(filef1,zapis);
end;
close(filef1);
1;
writeln('vvedite kol-vo abityrientov, kotorye bydyt zapisany v papky anket');
readln(x);
assign(filef1,'anketa1');
reset(filef1);
for i:=1 to x do
begin
3;
write(filef1,zapis);
end;
close(filef1);
dispose(zapis);
readln;
END.