Главная » Помощь в учебе » Школьные знания, ответы и решения школьных заданий » Информатика

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

Нашли ошибку? Напишите нам
0.0/5, Голосов: 0

Учебник по Информатике 9 класс Семакин

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