Если несколько команд набрали одинаковое количество очков, то места между ними распределяются по разнице забитых и пропущенных мячей: чем разница больше, тем место выше.

Информатика 9 класс Семакин ФГОС

§ 21 Сортировка массива ГДЗ по Информатике 9 класс. Семакин


4. Если несколько команд набрали одинаковое количество очков, то места между ними распределяются по разнице забитых и пропущенных мячей: чем разница больше, тем место выше. Попробуйте усовершенствовать программу, учитывая это правило. Для этого в программу надо добавить массив с разницами мячей. Придумайте тест, на котором можно проверить работу программы.

Ответ

Program Premier_liga_2;
Var B: array [1..16] of integer;
   BallDiff: array [1..16] of integer;
   Team: array [1..16] of string;
   I, K, X, Z, P: integer;
   St: string;
BEGIN
writeln (‘Введите названия команд и полученные ими очки’);
for I:=1 to 16 do begin
   write (I, ‘ — Название: ‘); Readln(Team[I]);
   write (‘Очки: ‘); Readln(B[I]);
   write (‘Забитые мячи: ‘); Readln(Z);
   write (‘Пропущенные мячи: ‘); Readln(P);
   BallDiff[I]:=Z — P;
   writeln(‘———-‘)
end;
for K:=1 to 15 do
   for I:=1 to 16-K do
      if (B[I] < B[I+1]) or ((B[I] = B[I+1]) and (BallDiff[I] < BallDiff[I+1])) then
      begin
      X:=B[I]; B[I]:=B[I+1]; B[I+1]:=X;
      St:=Team[I]; Team[I]:=Team[I+1];
      Team[I+1]:=St;
      X:=BallDiff[I]; BallDiff[I]:=BallDiff[I+1]; BallDiff[I+1]:=X;
   end;
for I:=1 to 16 do
begin
   for K:=1 to 18-length(Team[I]) do
      Team[I]:=Team[I]+’ ‘;
      writeln(I:2, ‘ ‘, Team[I]:18, B[I]:2, ‘ Разница мячей: ‘, BallDiff[I]:2)
end;
END.


Понравилась статья? Поделиться с друзьями: