Program Spisok; uses crt; const n=5; type uk=^zapis; zapis=record Fio:string[20]; Stavka,Stazh:integer; next:uk; end; Mas=array [1..n] of zapis; var a:mas; s:zapis; i:integer; z,beg:uk; Procedure vvod (var s:zapis;var a:mas); begin for i:=1 to n do begin Writeln ('Введите фамилию'); readln (s.Fio); writeln ('Введите стаж работы'); readln (s.Stazh); writeln ('Введите ставку'); readln (s.Stavka); a[i]:=s; end; end; Procedure sort (var a:mas;var s:zapis;var beg:uk); var i,j:integer; p,max,p1:uk; begin for i:=1 to n do begin p^:=a[1]; if a[i].FIO>p^.FIO then p^:=a[i]; end; for j:=n downto 2 do begin for i:=1 to n do begin max^:=a[1]; if a[i].Fio>max^.FIO then max^:=a[i]; end; beg:=max; p1:=max; beg^.next:=p; end; end; Procedure vivod (var beg:uk); var p:uk; begin writeln ('Фамилия Стаж работы Ставка '); p:=beg; while p<>nil do begin write (p^.FIO:10); write (p^.Stazh:20); write (p^.stavka:25); p:=p^.next; end; end; BEGIN clrscr; VVod (s,a); clrscr; sort(a,s,beg); vivod(beg); readln; end.