program PascalGuru;
type
zapisi = record
fio: string;
fak: string;
krs: string;
grp: string;
rez: real;
end;
var
m: array [1 .. 26] of zapisi;
i, n: integer;
{ ********************************* }
procedure exchange(var a, b: real);
var
c: real;
begin
c := a;
a := b;
b := c;
end;
procedure exchanges(var a, b: string);
var
c: string;
begin
c := a;
a := b;
b := c;
end;
procedure Sorting(n: integer);
var
i: integer;
swop: boolean;
begin
repeat
swop := false;
for i := 1 to n - 1 do
if m[i].rez < m[i + 1].rez then
begin
exchanges(m[i].fio, m[i + 1].fio);
exchanges(m[i].fak, m[i + 1].fak);
exchanges(m[i].krs, m[i + 1].krs);
exchanges(m[i].grp, m[i + 1].grp);
exchange(m[i].rez, m[i + 1].rez);
swop := true;
end;
n := n - 1;
until not swop;
end;
{ ********************************* }
begin
write('Skoliko uchaschihsya hotite zapisati?');
readln(n);
for i := 1 to n do
begin
writeln('Zapisi #', i, ':');
write('FIO: ');
readln(m[i].fio);
write('Fakulitet: ');
readln(m[i].fak);
write('Kurs: ');
readln(m[i].krs);
write('Gruppa: ');
readln(m[i].grp);
write('Rezulitat zabega: ');
readln(m[i].rez);
end;
writeln;
writeln;
writeln('Vy vveli sleduyuschih uchaschihsya:');
for i := 1 to n do
writeln(m[i].fio);
writeln;
writeln;
Sorting(n);
writeln('3 luchshih:');
for i := 1 to 3 do
writeln(m[i].fio, ' | ', m[i].fak, ' | ', m[i].krs, ' | ', m[i].grp, ' | ',
m[i].rez:0:2);
readln;
end.