Задание 6 Параграф 22 ГДЗ Семакин 9 класс (Информатика)
в порядке убывания очков, набранных командами. Для хранения названий команд и набранных ими очков используйте одномерные массивы. Все перестановки, которые происходят в массиве с набранными очками, должны дублироваться для элементов массива с названиями команд.
program Liga_1;
const
n = 16;
var
b: array[1..n] of integer;
team: array[1..n] of string;
bb: string;
i, j, k, c: integer;
begin
writeln(‘Введине названия команд и полученные ими очки’);
for i := 1 to n do
begin
write(i, ‘ Название: ‘); readln(team[i]);
write(‘Очки: ‘); readln(b[i]);
end;
for i := 1 to n — 1 do
begin
k := i;
for j := i + 1 to n do
if b[j] > b[k] then k := j;
//обмен
bb := team[i]; c := b[i]; team[i] := team[k]; b[i] := b[k];
team[k] := bb; b[k] := c;
end;
for i := 1 to n do
writeln(‘Команда ‘, team[i], ‘ очки ‘, b[i])
end.
Для хранения данных используем два одномерных массива: один — для названий команд, второй — для набранных очков. Затем сортируем массив очков по убыванию методом выбора. При каждой перестановке элементов массива очков выполняем такую же перестановку в массиве названий команд, чтобы данные не потерялись.
program Liga_1;
const
n = 16;
var
b: array[1..n] of integer;
team: array[1..n] of string;
bb: string;
i, j, k, c: integer;
begin
writeln(‘Введите названия команд и полученные ими очки’);
for i := 1 to n do
begin
write(i, ‘ Название: ‘);
readln(team[i]);
write(‘Очки: ‘);
readln(b[i]);
end;for i := 1 to n — 1 do
begin
k := i;
for j := i + 1 to n do
if b[j] > b[k] then k := j;bb := team[i];
c := b[i];
team[i] := team[k];
b[i] := b[k];
team[k] := bb;
b[k] := c;
end;for i := 1 to n do
writeln(‘Команда ‘, team[i], ‘ очки ‘, b[i]);
end.
Ответ
Программа сортирует таблицу чемпионата по убыванию набранных очков, сохраняя соответствие между названиями команд и их результатами.