После всего сказанного рассмотрим программу «P_50_1» в целом.

{ P_50_1 – Футбольный чемпионат (версия 2) }

const CSize = 4; { количество команд }

      { объявление типов }

type TTeam = record

      mAces : integer; { набранные очки }

      mName : string; { названия команд }

      end;

      TChamp = array [1..CSize] of TTeam; { тип для массива команд }

var Champ : TChamp; { массив команд }

      { Процедура "пузырьковой" сортировки команд }

procedure BubbleSort(var arg: TChamp);

var i, j : Integer;

      t : TTeam; { для временного хранения при обмене }

begin

for i:= 1 to CSize-1 do { внешний цикл }

      for j:= 1 to CSize-i do { внутренний цикл }

      { если текущий элемент меньше следующего …}

      if arg[j].mAces < arg[j+1].mAces then begin

      { то меняем местами соседние элементы }

      t:= arg[j];       { временно запоминаем }

      arg[j]:= arg[j+1]; { следующий -> в текущий }

      arg[j+1]:= t;       { текущий -> в следующий }

      end;

end;

var i: integer;

begin       {--- Главная программа ---}

{ Вводим названия команд и набранные очки }

for i:=1 to CSize do begin

      Write('Название команды: '); Readln(Champ[i].mName);

      Write('Набранные очки: '); Readln(Champ[i].mAces);

end;

BubbleSort(Champ); { сортируем }

{ Выводим результаты }

Writeln('Итоги чемпионата:');

Writeln('Место Команда       Очки');

for i:=1 to CSize do begin

Writeln(i:3,' ':3, Champ[i].mName, Champ[i].mAces:(20-Length(Champ[i].mName)) );

end;

Readln;

end.

Процедура сортировки заметно упростилась. Ещё бы! Ведь теперь мы работаем с одним массивом, а не с двумя. Для временного хранения элемента массива (при обмене) в процедуре объявлена переменная типа TTeam. А в прежнем решении для этого нужны были две переменные. Прочие изменения в программе невелики, хотя и существенны: вместо обращений к элементам массива мы обращаемся к полям этих элементов (эти места выделены).

Напомню смысл выражения для ширины поля при печати набранных очков.

Вы читаете Песни о Паскале
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату