Дана программа:
const n=5;
const a: array[1..n] of integer=(1,2,6,4,5);
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, max2);
end.
Что будет выведено на экран в результате выполнения этой программы?
Давайте разберем код по шагам:
1. Объявляем константу n, которая равна 5.
2. Объявляем массив a, который содержит 5 целочисленных элементов: 1, 2, 6, 4, 5.
3. Объявляем переменные i, max1 и max2, все они имеют тип integer.
4. Присваиваем переменной max1 значение первого элемента массива a, то есть 1.
5. Присваиваем переменной max2 значение второго элемента массива a, то есть 2.
6. Запускаем цикл for, который будет выполняться от i=2 до i=n (т.е. от 2 до 5).
7. Внутри цикла проверяем, если текущий элемент массива a[i] больше переменной max1.
- Если условие выполняется, то выполняется блок begin-end:
- max2 присваивается значение max1, т.е. второе наибольшее число становится равным первому наибольшему числу.
- max1 присваивается значение a[i], т.е. первое наибольшее число становится равным a[i].
- Если условие не выполняется, то проверяем, если текущий элемент массива a[i] больше переменной max2.
- Если условие выполняется, то max2 присваивается значение a[i], т.е. второе наибольшее число становится равным a[i].
8. Завершаем цикл.
9. Выводим на экран два наибольших числа max1 и max2.
Поэтому, при выполнении данной программы на экран будет выведено два наибольших числа из массива a, а именно: 6, 5.