Коротко: сумма элементов массива равна 31, но программа выведет не 31, а пустую строку. Чтобы увидеть значение 31, нужно выводить переменную s.
Пошагово рассчитаем сумму:
- i = 1: s = 0 + 3 = 3
- i = 2: s = 3 + 9 = 12
- i = 3: s = 12 + (-5) = 7
- i = 4: s = 7 + 13 = 20
- i = 5: s = 20 + 6 = 26
- i = 6: s = 26 + (-4) = 22
- i = 7: s = 22 + 0 = 22
- i = 8: s = 22 + 8 = 30
- i = 9: s = 30 + 2 = 32
- i = 10: s = 32 + (-1) = 31
Итог: s = 31.
Но оператор writeln; без аргументов выводит только перевод строки, т.е. программа ничего не выведет кроме перехода на новую строку. Поэтому факт, что сумма 31, не появится на экране.
Как правильно вывести значение
- Замени вывод на writeln(s); чтобы вывести текущие значение s после цикла.
Правильный вариант кода: begin s := 0; for i := 1 to 10 do s := s + a[i]; writeln(s); end.
Либо можно вывести внутри цикла, если нужно видеть промежуточные значения, но обычно выводят после цикла.
Если вам нужно, могу показать и альтернативные варианты вывода или объяснить любую часть детальнее.