
Вопрос задан 05.10.2023 в 15:20.
Предмет Информатика.
Спрашивает Ворона Ксюша.
Если несколько команд набрали одинаковое количество очков, то места между ними распределяются по
разнице забитых и пропущенных мячей: чем разница больше, тем место выше. Попробуйте усовершенствовать программу, учитывая это правило. Для этого в программу надо добавить массив с разницами мячей ---- Условие то же что и в предыдущем задании но в качестве исходных данных вводится еще два массива: с числом забитых и пропущенных мячей каждой командой. --- Нужно добавить два массива из 2 задания. (1 это предисловие так сказать) Program Premier_liga_2; var B, Diff: 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); Diff[I]:= Z-P; 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 (Diff[i] < Diff[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; 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) end; end.

Ответы на вопрос

Отвечает Кузнецов Алексей.
1. если несколько команд...




Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Ваша программа уже содержит массив "Diff", который хранит разницу забитых и пропущенных мячей для каждой команды. Однако, вам нужно внести некоторые изменения в вашу программу, чтобы учесть это правило при определении мест команд.
Для этого вы можете внести следующие изменения в вашу программу:
Добавьте в цикл сортировки проверку разницы мячей (переменная Diff) при равных очках (переменная B). Если очки одинаковы, вы должны сравнивать разницу мячей и менять местами команды на основе этого.
Измените условие сортировки так, чтобы оно учитывало как разницу мячей, так и очки:
pascalfor 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 (Diff[I] < Diff[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 := Diff[I]; Diff[I] := Diff[I + 1]; Diff[I + 1] := X; end;
Теперь ваша программа учитывает разницу забитых и пропущенных мячей при равных очках и правильно распределяет места между командами.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili