program files; uses crt; type adres=record street:string; dom,kv,zilci:integer; end; mas_adres=array [1..10] of adres; mas_nov=array [1..10] of adres; ff=file of adres; var z:adres; m:mas_adres; ma:mas_nov; i,t:integer; v:boolean; f:ff; s:string; n:byte; Procedure vvod(var ft:ff); var st:string; zt:adres; begin writeln('vvedite filename'); readln(st); assign(ft,st); rewrite(ft); repeat write('vvedite street or nagmite enter '); readln(st); if st<>'' then begin with zt do begin street:=st; write('# doma '); readln(dom); write('# kvartiri '); readln(kv); write('kol-vo zilcov '); readln(zilci); end; write(ft,zt); end; until st=''; close(ft); end; Procedure vivod(var ft:ff); begin reset(ft); while not eof(ft) do begin read(ft,m[i]); clrscr; write('--------------------------------------------------'); writeln; write('| street | #doma | #kv | kol-vo zilcov |'); for i:=1 to 2 do with m[i] do begin writeln; write(street:12,' '); write(dom:6, ' ' ,kv:9, ' ', zilci:8, ' '); writeln; end; write('---------------------------------------------------'); writeln; end; close(ft); end; Procedure poisk(var ft:ff; zt:adres); begin reset(ft); writeln('Vvedite street, dom, kv cheres enter'); for i:=1 to 2 do with m[i] do begin readln(street); readln(dom); readln(kv); while not eof(ft) do begin read(ft,m[i]); for i:=1 to 2 do if ((zt.street=m[i].street) and (zt.dom=m[i].dom)) and (zt.kv=m[i].kv) then begin write('Kol-vo zilcov: '); write(m[i].zilci); writeln; v:=true; end; if v=false then writeln('takogo adresa ne naideno') end; end; close(ft); readln; end; Procedure novmas(var ft:ff;var zet:mas_adres; var zit:mas_nov); begin reset(ft); for i:=1 to 2 do begin ma[i].dom:=m[i].dom; ma[i].kv:=m[i].kv; ma[i].zilci:=m[i].zilci; end; close(ft); end; Procedure novmasa(var ft:ff;var zit:mas_nov); begin reset(ft); write('-------------------------------------'); writeln; write('| #doma | #kv | kol-vo zilcov |'); for i:=1 to 2 do with ma[i] do begin writeln; write(dom:6, ' ' ,kv:8, ' ', zilci:8, ' '); writeln; end; write('-------------------------------------'); writeln; close(ft); end; begin clrscr; vvod(f); clrscr; vivod(f); poisk(f,z); for i:=1 to 2 do novmas(f,m,ma); novmasa(f,ma); readln; end.