program Sportsmen; uses crt; type sport = record fio:string; {ФИО} time:integer; {Время в забеге} end; mass = array[1..50] of sport; var A:mass; m,n,i,j:integer; procedure vvod; begin write('Всего забегов: '); readln(m); for j:=1 to m do begin write('Число спортсменов в ',j,'-м забеге: '); readln(n); for i:=1 to n do begin {запись информации об i-ом абитуриенте (т.е. заполняет поля записи)} writeln('-------------'); writeln('Забег ',j); write('ФИО ',i,'-го: '); readln(a[i][j].fio); write('Время забега (сек): '); readln(a[i][j].time); end; {цикл спортсмена} end; {цикл забегов} end; {vvod} procedure proto; {Запись в файл протокола} var f:text; begin assign(f,'proto.txt'); rewrite(f); for j:=1 to m do begin writeln(f); writeln(f,'Забег: ',j); for i:=1 to n do begin writeln(f,'Спортсмен: ',i); writeln(f,'ФИО: ',a[i][j].fio); writeln(f,'Год рождения: ',a[i][j].time); writeln(f,'-------------'); end; {цикл спортсмена} end; {цикл забегов} close(f); end; procedure sort; {в рамках одного забега} var k,x:integer; z:string t:text begin for j:=1 to m do begin for i:=2 to n do begin z:=a[i][j].fio; x:=a[i][j].time; k:=i-1; while (x<a[k][j].time) and (k>0) do begin a[k+1][j].fio:=a[k][j].fio; {имя студента} a[k+1][j].time:=a[k][j].time; {рост студента} k:=k-1; end; {while} a[k+1][j].fio:=z; a[k+1][j].time:=x; end; {цикл спортсменов} assign(t,'winer.txt'); rewrite(t); writeln(t,'Забег: ',j,' ФИО: ',a[1][j].fio,'Время: ',a[1][j].time); {Запись в файл победителя забега} close(t); end; {цикл забегов} end; {sort} begin clrscr; vvod; proto; sort; readkey; end. |