Рассмотрите решение задачи, наберите ее на компьютере, протестируйте, найдите в программе недостатки и устраните их.
Задача 1. Во время лыжных соревнований в центральный судейский компьютер поступают данные в следующем виде: номер участника, его фамилия, страна и показанный результат. Составить программу, которая после ввода информации выдает таблицу результатов участников в порядке ухудшения.
Program Ski; Uses Crt; Type inf= record num: byte; name,strana: string[30]; rez: real; end; Var m: array [1..100] of inf; i, j, k : integer; Procedure Input; Begin write('Введите количество участников соревнований: '); readln(k); for i:=1 to k do with m[i] do begin write('Введите номер участника: '); readln(num); write('Введите фамилию: '); readln(name); write('Какую страну представляет: '); readln(strana); write('Показанный результат: '); readln(rez); writeln; end; End; Procedure Vich; Var o: real; n, s: string; nm: byte; Begin ClrScr; for i:=1 to k-1 do for j:=i+1 to k do if m[j].rez<m[i].rez then begin o:=m[j].rez;{Меняем результаты} m[j].rez:=m[i].rez; m[i].rez:=o; nm:=m[j].num;{Меняем номера} m[j].num:=m[i].num; m[i].num:=nm; n:=m[j].name;{Меняем фамилии} m[j].name:=m[i].name; m[i].name:=n; s:=m[j].strana; {Меняем страны} m[j].strana:=m[i].strana; m[i].strana:=s; end; End; Procedure Output; Begin for i:=1 to k do with m[i] do begin writeln(i,'-ое место занял:'); writeln('участник под номером: ',num); writeln('Его фамилия: ',name); writeln('Представляет страну : ',strana); writeln('Показанный результат: ',rez:3:1); writeln; end; End; Begin ClrScr; Input; Vich; Output; ReadKey; End.
Задание. Напишите программу для сортировки записей по выбранному Вами полю и вывода отсортированного массива записей на экран. Сортировку осуществляйте с помощью одного из предложенных способов: