ГДЗ по информатике, 11 класс, Босова, номер p117.3
Информатика — Босова Л.Л., Босова А.Ю.
Роман Жуков, методист по информатике Шпаргача обновлено 8 сентября 2026
Условие
Дана программа на языке Паскаль (Program summa), которая должна суммировать элементы массива a из n=10 целых чисел, но содержит ошибку. В цикле for i:=1 to n do выполняется чтение элемента readln(a[i]) и присваивание s:=s+i.
а) Определите результат работы программы при вводе чисел: 1, -2, 3, -4, 5, -6, 7, -8, 9, -10.
б) Придумайте пример массива, при обработке которого данная программа выдаст правильный результат.
в) Найдите ошибку в коде.
Номер как в учебнике. Условие — полный пересказ редакции: те же пункты, числа и факты, не цитата из книги.
Пошаговое решение
План решения:
- Проанализировать логику работы цикла в предоставленном коде.
- Вычислить значение переменной s для заданного набора чисел (пункт 1).
- Подобрать пример данных, при котором ошибка не влияет на итоговый результат (пункт 2).
- Сформулировать суть ошибки и способ её исправления (пункт 3).
Вычисления и анализ:
В условии сказано, что программа должна суммировать элементы массива a. Однако в теле цикла выполняется операция присваивания s := s + i, где i — это счётчик цикла (номер элемента), а не сам элемент массива a[i].
1) Результат работы программы при вводе чисел: 1, -2, 3, -4, 5, -6, 7, -8, 9, -10.
Так как программа игнорирует значения элементов массива и прибавляет только индексы i, переменная s будет равна сумме всех индексов от 1 до 10. Значения самих чисел (1,-2,…) считываются в память, но не участвуют в вычислении суммы.
s=1+2+3+4+5+6+7+8+9+10=55Результат работы программы: 55 .
2) Пример массива, при обработке которого программа выдаст правильный результат.
Чтобы программа дала верный ответ (сумму элементов), сумма элементов массива должна совпасть с суммой их индексов. Сумма индексов равна 55. Нам нужно составить массив из 10 целых чисел, сумма которых также равна 55.
Простейший вариант: пусть каждый элемент массива равен своему индексу. То есть a[1]=1,a[2]=2,…,a[10]=10.
Ввод: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.
Программа посчитает сумму индексов: 1+…+10=55. Истинная сумма элементов: 1+…+10=55. Результаты совпадают.
3) Ошибка в коде.
Ошибка заключается в том, что к накопителю s прибавляется индекс цикла i, а не значение элемента массива a[i]. Для корректной работы необходимо заменить строку s := s + i; на s := s + a[i];.
а) 55
б) Массив 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
в) Нужно прибавлять a[i], а не i.
Ключевая ловушка задачи — различие между индексом элемента и его значением. В пункте 1 важно подчеркнуть, что ввод чисел происходит, но они не влияют на переменную s. В пункте 2 достаточно привести любой массив с суммой 55, самый простой — последовательность 1..10.
Как решение?
Двойная оценка: понятность и подробность. Можно выбрать одно или оба.
У вас другое условие?
Загрузите фото — учтём ваши числа и редакцию.
Частые вопросы
Это точный номер p117.3 из моего учебника?
Номер совпадает с учебником «Информатика», Босова Л.Л., Босова А.Ю.. Формулировка — пересказ редакции, не дословная цитата. Если в вашей редакции другие числа — загрузите фото.
Какой ответ в задании p117.3?
Краткий ответ: 1) 55; 2) Массив 1, 2, 3, 4, 5, 6, 7, 8, 9, 10; 3) Нужно прибавлять a[i], а не i.
Как пользоваться этим разбором?
Сначала прочитайте условие и чертёж, затем шаги решения по порядку и сверьте свой ход с кратким ответом внизу.
Какой учебник имеется в виду?
«Информатика», Босова Л.Л., Босова А.Ю.. Проверьте часть, год и автора на обложке. Тема в учебнике: Глава 2. Алгоритмы и программирование.
Можно ли списать ответ без решения?
Лучше сначала решить самостоятельно, а разбор использовать для проверки хода и поиска ошибки.