uses crt;
type listPeople = record
number:integer;
surname:string;
averageMark:real;
subject : record
highermath:integer;
assemblers:integer;
cpp:integer;
physics:integer;
pascal:integer;
end;
end;
var f,f1:file of listPeople;
nameFile:string;
{------------------------------------------------------------}
procedure initRecord;
var i,k:integer;
list:listPeople;
s:string;
begin
assign(f,'list.txt');
rewrite(f);
randomize;
write('Введите количество студентов: ');
readln(k);
for i:=1 to k do
begin
list.number:=i;
write('Введите студента №',i,': ');
readln(list.surname);
with list.subject do
begin
highermath:=random(4)+2;
assemblers:=random(4)+2;
cpp:=random(4)+2;
physics:=random(4)+2;
pascal:=random(4)+2;
end;
write(f,list);
end;
close(f);
end;
procedure putInFile(var f:text);
{------------------------------------------------------------}
procedure printRecord(nameFile:string);
var i:integer;
list:listPeople;
begin
assign(f,nameFile);
reset(f);
i:=0;
writeln('+----------------++--------+-----------+------------+-----+---------+');
writeln('| Имя || pascal | assembler | Вышка | С++ | Физика |');
writeln('+----------------++--------+-----------+------------+-----+---------+');
while not eof(f) do
begin
seek(f,i);
read(f,list);
write('| ',list.surname: 14,' || ');
write(list.subject.pascal:3,' |');
write(list.subject.assemblers:5,' |');
write(list.subject.highermath:6,' |');
write(list.subject.cpp:3,' |');
write(list.subject.physics:5,' |'); writeln;
i:=i+1;
end;
writeln('+----------------++--------+-----------+------------+-----+---------+');
close(f);
end;
{------------------------------------------------------------}
procedure whoExpel(nameFile:string;nameFileExpel:string);
var i:integer;
list:listPeople;
begin
assign(f,nameFile);
assign(f1,nameFileExpel);
reset(f);
rewrite(f1);
i:=0;
while not eof(f) do
begin
seek(f,i);
read(f,list);
if((list.subject.highermath = 2) or
(list.subject.pascal = 2) or
(list.subject.assemblers = 2) or
(list.subject.cpp = 2) or
(list.subject.physics = 2)) then
write(f1,list);
inc(i);
end;
close(f);
writeln('+----------------++--------+-----------+------------+-----+---------+');
end;
{------------------------------------------------------------}
Begin
clrscr;
initRecord;
textbackground(1);
writeln('Список группи ТВ-81');
printRecord('list.txt');
whoExpel('list.txt','exlist.txt');
writeln('Список отчисленных в ТВ-81');
printRecord('exList.txt');
readkey;
End.