1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Босова
Задание 3 Параграф 8 ГДЗ Босова 11 класс (Информатика)
Босова, Босова
11 класс
Класс
11
Предмет
Информатика
Автор
Босова, Босова

Задание 3 Параграф 8 ГДЗ Босова 11 класс (Информатика)

Задача
  1. Программист написал программу суммирования элементов массива, но допустил в ней ошибку:

    Program summa;
    const n=10;
    var a: array [1..n] of integer;
    s, i: integer;
    begin
      for i:=1 to n do
      begin
        readln(a[i]);
        s:=s+i
      end;
      writeln(‘s=’, s)
    end.

    1) Что получится в результате выполнения этой программы, если в качестве элементов массива ввести числа: $$1, -2, 3, -4, 5, -6, 7, -8, 9, -10$$?

    2) Придумайте пример такого массива, обработка которого с помощью этой программы приводила бы к правильному результату.

    3) Найдите ошибку, допущенную программистом.

Подробный ответ

В программе допущена ошибка: вместо суммы элементов массива вычисляется сумма индексов.

При вводе 10 элементов цикл выполнится для $$i=1,2,\dots,10$$, поэтому значение $$s$$ станет равным

$$s=1+2+3+4+5+6+7+8+9+10=55.$$

Но в исходном тексте решения указано, что переменная $$s$$ не была инициализирована нулём, поэтому в зависимости от среды выполнения результат может быть неопределённым. В корректной программе перед циклом должно быть $$s:=0$$. Тогда при ошибочном сложении индексов получится $$55$$.

Для правильной работы программы нужно заменить строку

s:=s+i

на

s:=s+a[i]

Пример массива, для которого ошибочная программа даст правильный результат: если сумма его элементов равна $$55$$, например

$$10,\ 15,\ -30,\ 5,\ 13,\ 7,\ 9,\ 45,\ -3,\ -16.$$

Проверка:

$$10+15-30+5+13+7+9+45-3-16=55.$$

Ответ

1) При корректной инициализации $$s:=0$$ программа выведет $$s=55$$. Если $$s$$ не инициализировать, результат неопределён.

2) Подойдёт любой массив из 10 элементов, сумма которых равна $$55$$, например $$10,\ 15,\ -30,\ 5,\ 13,\ 7,\ 9,\ 45,\ -3,\ -16$$.

3) Ошибка в строке $$s:=s+i$$. Нужно писать $$s:=s+a[i]$$.



Общая оценка
3.7 / 5
Другие учебники
Другие предметы