uses crt; type breed=(dog,pudel,bolonka,kolli,rotv); gender=(f,m); obj=record p1:byte; p2:breed; p3:string[10]; p4:byte; p5:gender; p6:string[10]; end; ff=file of obj; mas=array[1..100] of ^obj; var f1:ff; i,j,n,nh,nc:byte; a,ah,am:mas; dub:obj; fl:boolean; procedure input(var fx:ff; n:byte); var i,j:byte; x:obj; begin reset(fx); for j:=1 to n do begin with x do begin writeln('Type for ',j,' dog'); writeln('Type Club Number'); readln(p1); writeln('Type breed: 0-Dog, 1-Pudel, 2-Bolonka, 3-Kolli, 4-Rotveiller'); readln(i); p2:=breed(i); writeln('Type Name'); readln(p3); writeln('Type age'); readln(p4); writeln('Type gender 0-f,1-m'); readln(i); p5:=gender(i); writeln('Type owner"s Surname'); readln(p6); end; write(fx,x); end; end; procedure output(var x:mas;n:byte); var i:byte; begin for i:=1 to n do with x[i]^ do begin writeln; writeln('DATA for ',i,' dog'); write('Club Number: '); write(p1,'; '); write('Breed: '); case p2 of dog:write('Dog'); pudel:write('Pudel'); bolonka:write('Bolonka'); kolli:write('Kolli'); rotv:write('Rotveiller'); end; write('; '); write('Name: '); write(p3,'; '); write('Age: '); write(p4,'; '); write('Gender: '); case p5 of m:write('male; '); f:write('female; '); end; write('Owner"s Surname: '); write(p6); end; end; begin {$R-} assign(f1, 'D:\11-2\dogs.pas'); rewrite(f1); writeln('Type Number of Dogs'); readln(n); input(f1,n); reset(f1); for i:=1 to n do begin new (a[i]); read(f1,dub); a[i]^:=dub; end; nh:=round(n/2); for i:=1 to nh do ah[i]:=a[i]; writeln(nh); writeln('Type new elements count'); readln(nc); writeln(nc); for i:=(1) to (nc) do begin with ah[nh+i]^ do begin writeln('Type for new ',(i),' dog'); writeln('Type Club Number'); readln(p1); writeln('Type breed: 0-Dog, 1-Pudel, 2-Bolonka, 3-Kolli, 4-Rotveiller'); readln(j); p2:=breed(j); writeln('Type Name'); readln(p3); writeln('Type age'); readln(p4); writeln('Type gender 0-f,1-m'); readln(j); p5:=gender(j); writeln('Type owner"s Surname'); readln(p6); end; end; {1_s} fl:=true; while fl=true do begin fl:=false; for i:=1 to n do if (a[i]^.p4)>(a[i+1]^.p4) then begin dub:=a[i]^; a[i]^:=a[i+1]^; a[i+1]^:=dub; fl:=true; end; end; {2_s} fl:=true; while fl=true do begin fl:=false; for i:=1 to (nh+nc) do if (ah[i]^.p1)<(ah[i+1]^.p1) then begin dub:=ah[i]^; ah[i]^:=ah[i+1]^; ah[i+1]^:=dub; fl:=true; end; end; clrscr; output(a,n); writeln; output(ah,(nc+nh)); writeln; {$R+} end.