, . , :
1. , , .
2. .
3. .
4. .
5. - .
6. .
.
I. , 4 3 , , .
II. N () , 4,5; N=4.
Program dom8;
type ev=record
alg:1..5;
ist:1..5;
evm:1..5;
end;
type zap=record
fio: string;
birthdae:1980..2000;
date:2000..2015;
attestat: ev;
need_hostel: boolean;
entrance: ev;
sredniy: real;
end;
fpk=file of zap;
type
TMyFuncType = function(a:zap): boolean;
var fizap,rb:fpk; s1,a,b:zap; i,j:integer; fio, s: string;
function all(a:zap): boolean;
begin
result:=true;
end;
function condition1(a:zap): boolean;
begin
if ((a.sredniy<4) and ((a.attestat.alg=3) or (a.attestat.ist=3) or (a.attestat.evm=3))) then result:=true
else result:=false;
end;
function condition2(a:zap): boolean;
begin
if ((a.sredniy>4.5)) then result:=true
else result:=false;
end;
function Delete(fizap:fpk): boolean;
var i, num:integer;
temp: zap;
begin
i:=1; num:=0;
reset(fizap);
repeat
read(fizap,a);
if (condition1(a)) then begin num:=i; break; end;
i:=i+1;
until eof(fizap);
result:=false;
if(num<>0) then begin
writeln(' ',num,' ',filesize(fizap),' ');
seek(fizap, filesize(fizap) - 1);
read(fizap, temp);
seek(fizap, i - 1);
write(fizap, temp);
seek(fizap, filesize(fizap) - 1);
truncate(fizap);
close(fizap);
result:=true;
end;
end;
procedure PrintFile(fizap:fpk; p: TMyFuncType);
var a:zap; i:integer; s:string;
begin
i:=1;
reset(fizap);
writeln('======= ===========');
repeat
read(fizap,a);
if p(a) then begin
s:='';
if(a.need_hostel) then s:='';
writeln(i:2,' : ',a.fio:9,', : ',a.birthdae,', : ',a.date,', : ', s: 3,
', : ',a.attestat.alg,',',a.attestat.ist,',',a.attestat.evm,'(',a.sredniy:1:2,'), : ',a.entrance.alg,',',a.entrance.ist,',',a.entrance.evm);
i:=i+1;
end;
until eof(fizap);
writeln('=======================================');
close(fizap);
end;
begin
{clrscr;}
assign(fizap,'res.dat');
assign(rb,'tmp.dat');
rewrite(fizap);
s1.fio:='';
s1.birthdae:=1996;
s1.date:=2013;
s1.attestat.alg:=5;
s1.attestat.ist:=5;
s1.attestat.evm:=5;
s1.need_hostel:=true;
s1.entrance.alg:=3;
|
|
s1.entrance.ist:=4;
s1.entrance.evm:=3;
s1.sredniy:= (s1.attestat.alg+s1.attestat.ist+s1.attestat.evm)/3;
write(fizap,s1);
s1.fio:='';
s1.birthdae:=1995;
s1.date:=2014;
s1.attestat.alg:=3;
s1.attestat.ist:=4;
s1.attestat.evm:=3;
s1.need_hostel:=false;
s1.entrance.alg:=5;
s1.entrance.ist:=4;
s1.entrance.evm:=4;
s1.sredniy:= (s1.attestat.alg+s1.attestat.ist+s1.attestat.evm)/3;
write(fizap,s1);
s1.fio:='';
s1.birthdae:=1997;
s1.date:=2012;
s1.attestat.alg:=3;
s1.attestat.ist:=2;
s1.attestat.evm:=5;
s1.need_hostel:=true;
s1.entrance.alg:=5;
s1.entrance.ist:=5;
s1.entrance.evm:=3;
s1.sredniy:= (s1.attestat.alg+s1.attestat.ist+s1.attestat.evm)/3;
write(fizap,s1);
s1.fio:='';
s1.birthdae:=1998;
s1.date:=2012;
s1.attestat.alg:=5;
s1.attestat.ist:=3;
s1.attestat.evm:=4;
s1.need_hostel:=true;
s1.entrance.alg:=5;
s1.entrance.ist:=5;
s1.entrance.evm:=5;
s1.sredniy:= (s1.attestat.alg+s1.attestat.ist+s1.attestat.evm)/3;
write(fizap,s1);
s1.fio:='';
s1.birthdae:=1994;
s1.date:=2012;
s1.attestat.alg:=5;
s1.attestat.ist:=5;
s1.attestat.evm:=5;
s1.need_hostel:=true;
s1.entrance.alg:=5;
s1.entrance.ist:=5;
s1.entrance.evm:=5;
s1.sredniy:= (s1.attestat.alg+s1.attestat.ist+s1.attestat.evm)/3;
write(fizap,s1);
s1.fio:='';
s1.birthdae:=1999;
s1.date:=2014;
s1.attestat.alg:=4;
s1.attestat.ist:=4;
s1.attestat.evm:=4;
s1.need_hostel:=false;
s1.entrance.alg:=3;
s1.entrance.ist:=2;
s1.entrance.evm:=3;
s1.sredniy:= (s1.attestat.alg+s1.attestat.ist+s1.attestat.evm)/3;
write(fizap,s1);
s1.fio:='';
s1.birthdae:=1996;
s1.date:=2014;
s1.attestat.alg:=5;
s1.attestat.ist:=4;
s1.attestat.evm:=3;
s1.need_hostel:=true;
s1.entrance.alg:=4;
s1.entrance.ist:=4;
s1.entrance.evm:=3;
s1.sredniy:= (s1.attestat.alg+s1.attestat.ist+s1.attestat.evm)/3;
write(fizap,s1);
s1.fio:='';
s1.birthdae:=1995;
s1.date:=2014;
s1.attestat.alg:=3;
s1.attestat.ist:=4;
s1.attestat.evm:=2;
s1.need_hostel:=false;
s1.entrance.alg:=5;
s1.entrance.ist:=2;
s1.entrance.evm:=3;
s1.sredniy:= (s1.attestat.alg+s1.attestat.ist+s1.attestat.evm)/3;
write(fizap,s1);
s1.fio:='';
s1.birthdae:=1997;
s1.date:=2012;
s1.attestat.alg:=3;
s1.attestat.ist:=2;
s1.attestat.evm:=2;
s1.need_hostel:=true;
s1.entrance.alg:=2;
s1.entrance.ist:=5;
s1.entrance.evm:=3;
s1.sredniy:= (s1.attestat.alg+s1.attestat.ist+s1.attestat.evm)/3;
write(fizap,s1);
close(fizap);
writeln(' :');
PrintFile(fizap, all);
writeln(' ');
writeln('( 4 3 ):');
PrintFile(fizap, condition1);
rewrite(rb);
reset(fizap);
repeat
read(fizap,a);
if not(condition1(a)) then write(rb,a);
until eof(fizap);
rewrite(fizap);
reset(rb);
repeat
read(rb,a);
write(fizap,a);
until eof(rb);
close(rb);
close(fizap);
writeln(' :');
PrintFile(fizap, all);
reset(fizap);
seek(fizap,FileSize(fizap));
s1.fio:='';
s1.birthdae:=1994;
s1.date:=2014;
s1.attestat.alg:=5;
s1.attestat.ist:=3;
s1.attestat.evm:=4;
s1.need_hostel:=false;
s1.entrance.alg:=3;
s1.entrance.ist:=4;
s1.entrance.evm:=3;
|
|
s1.sredniy:= (s1.attestat.alg+s1.attestat.ist+s1.attestat.evm)/3;
write(fizap,s1);
s1.fio:='';
s1.birthdae:=1996;
s1.date:=2013;
s1.attestat.alg:=5;
s1.attestat.ist:=5;
s1.attestat.evm:=5;
s1.need_hostel:=true;
s1.entrance.alg:=3;
s1.entrance.ist:=5;
s1.entrance.evm:=5;
s1.sredniy:= (s1.attestat.alg+s1.attestat.ist+s1.attestat.evm)/3;
write(fizap,s1);
s1.fio:='';
s1.birthdae:=1998;
s1.date:=2014;
s1.attestat.alg:=3;
s1.attestat.ist:=3;
s1.attestat.evm:=5;
s1.need_hostel:=false;
s1.entrance.alg:=3;
s1.entrance.ist:=4;
s1.entrance.evm:=5;
s1.sredniy:= (s1.attestat.alg+s1.attestat.ist+s1.attestat.evm)/3;
write(fizap,s1);
s1.fio:='';
s1.birthdae:=1999;
s1.date:=2014;
s1.attestat.alg:=3;
s1.attestat.ist:=4;
s1.attestat.evm:=5;
s1.need_hostel:=false;
s1.entrance.alg:=4;
s1.entrance.ist:=4;
s1.entrance.evm:=5;
s1.sredniy:= (s1.attestat.alg+s1.attestat.ist+s1.attestat.evm)/3;
write(fizap,s1);
close(fizap);
writeln(' (, , , )');
PrintFile(fizap, all);
writeln(' ');
writeln('( 4 3 ):');
PrintFile(fizap, condition1);
repeat until not(Delete(fizap));
writeln(' :');
PrintFile(fizap, all);
writeln(' ');
writeln('( , 4,5):');
PrintFile(fizap, condition2);
writeln(' :');
read(fio);
reset(fizap);
writeln(' :');
repeat
read(fizap,a);
if (a.fio = fio) then begin
s:=' ';
if(a.need_hostel) then s:='';
writeln(' : ',a.fio:9,', : ',a.birthdae,', : ',a.date,', : ', s: 8,
', : ',a.attestat.alg,',',a.attestat.ist,',',a.attestat.evm,', : ',a.entrance.alg,',',a.entrance.ist,',',a.entrance.evm);
end;
until eof(fizap);
close(fizap);
writeln(' ');
erase(rb);
end.
: