Задание 9 Параграф 8 ГДЗ Босова 11 класс (Информатика)
Дана программа:
const n=5;
const a: array[1..n] of integer=(1, 2, 6, 4, 6);
var i, maxi, max2: integer;
begin
maxi:=a[1];
max2:=a[2];
for i:=2 to n do
if a[i] > maxi then begin
max2:=maxi;
maxi:=a[i];
end
else if a[i] > max2 then max2:=a[i];
writeln(‘maxi=’, maxi, ‘max2=’, max2);
end.Что получится в результате выполнения этой программы? Какую задачу решает эта программа?
Массив задан так: $$a=(1,2,6,4,6).$$
Сначала программа присваивает:
$$max1=a[1]=1,$$
$$max2=a[2]=2.$$
Далее она последовательно просматривает элементы массива с $$i=2$$ до $$i=5$$ и обновляет значения двух наибольших элементов.
| $$i$$ | $$a[i]$$ | $$max1$$ | $$max2$$ |
|---|---|---|---|
| 2 | 2 | 1 | 2 |
| 3 | 6 | 6 | 1 |
| 4 | 4 | 6 | 4 |
| 5 | 6 | 6 | 4 |
После завершения цикла получаем:
$$max1=6,$$
$$max2=4.$$
const n=5;
const a: array[1..n] of integer = (1, 2, 6, 4, 6);
var i, max1, max2: integer;
begin
max1 := a[1];
max2 := a[2];
for i := 2 to n do
if a[i] > max1 then
begin
max2 := max1;
max1 := a[i];
end
else if a[i] > max2 then
max2 := a[i];
writeln(‘max1=’, max1, ‘ max2=’, max2);
end.
Программа находит два максимальных элемента массива и выводит их по убыванию.
Ответ
$$max1=6,\ max2=4.$$ Программа определяет два наибольших элемента массива и записывает их по убыванию.

