Задание 5 Параграф 21 ГДЗ Семакин 9 класс (Информатика)
program Premier_liga_2;
var
b: array[1..16] of integer;
team: array[1..16] of string;
minb1, minb2, nmin1, nmin2, i: integer;
begin
writeln(‘Введине названия команд и полученные ими очки’);
for i := 1 to 16 do
begin
write(i, ‘Название: ‘); readln(team[i]);
write(‘Очки: ‘); readln(b[i]);
end;
minb1 := b[1]; nmin1 := 1;
for i := 2 to 16 do
begin
if b[i] < minb1 then
begin
minb2 := minb1; nmin2 := nmin1;
minb1 := b[i]; nmin1 := i;
end;
end;
writeln('Выбывающие команды: ', team[nmin1], ' и ', team[nmin2])
end.
Нужно найти две команды с наименьшим количеством очков. Для этого запомним номера двух минимальных значений в массиве очков.
Сначала считаем данные о 16 командах: название команды и её очки. Затем:
- первую минимальную величину берём как $$b[1]$$;
- просматриваем остальные элементы массива;
- если найдено значение меньше текущего минимума, то прежний минимум становится вторым, а новое значение — первым минимумом;
- в конце выводим названия команд, стоящих на двух последних местах.
program Premier_liga_2;
var
b: array[1..16] of integer;
team: array[1..16] of string;
minb1, minb2, nmin1, nmin2, i: integer;
begin
writeln(‘Введите названия команд и полученные ими очки’);
for i := 1 to 16 do
begin
write(i, ‘ Название: ‘); readln(team[i]);
write(‘Очки: ‘); readln(b[i]);
end;
minb1 := b[1]; nmin1 := 1;
minb2 := b[1]; nmin2 := 1;
for i := 2 to 16 do
begin
if b[i] < minb1 then
begin
minb2 := minb1; nmin2 := nmin1;
minb1 := b[i]; nmin1 := i;
end
else if b[i] < minb2 then
begin
minb2 := b[i]; nmin2 := i;
end;
end;
writeln(‘Выбывающие команды: ‘, team[nmin1], ‘ и ‘, team[nmin2]);
end.
Ответ
Программа определяет две команды с наименьшим количеством очков и выводит их названия.