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