program zapis; uses crt; const n=10; type adres=record street:string; dom,kv,zilci:integer; end; mas_adres=array [1..n] of adres; mas_nov=array [1..n] of adres; var z:adres; m:mas_adres; ma:mas_nov; i:integer; v:boolean; Procedure vvod(var zt:adres); begin for i:=1 to 2 do with m[i] do begin write('street '); readln(street); write('# doma '); readln(dom); write('# kvartiri '); readln(kv); write('kol-vo zilcov '); readln(zilci); end; end; Procedure vivod(zt:adres); begin 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; Procedure poisk(zt:adres); begin writeln('Vvedite street, dom, kv cheres enter'); for i:=1 to 2 do with zt do begin readln(street); readln(dom); readln(kv); 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; Procedure novmas(var zet:mas_adres; var zit:mas_nov); var i:integer; begin for i:=1 to 2 do { with zt do} begin ma[i].dom:=m[i].dom; ma[i].kv:=m[i].kv; ma[i].zilci:=m[i].zilci; end; end; Procedure novmasa(var zit:mas_nov); begin 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; end; begin clrscr; vvod(z); vivod(z); poisk(z); for i:=1 to 2 do novmas(m,ma); novmasa(ma); readln; end.