Составить список студентов, включающий ФИО, факультет, курс, группу, результат забега. Определить трех лучших в забеге — Pascal(Паскаль)

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.

Leave a Comment

97 − 89 =