
В программе описан одномерный целочисленный массив с индексами от 0 до 10.Ниже представлен фрагмент
программы ,обрабатывающей данный массив: S:=0; n:=10; for i:=0 to n do begin If A{n-I}-A{I}>A{I} then S:=s+A{I}; End; В начале выполнения этого фрагмента в массиве находились числа 0, 10, 20 , 30, 40 , 50 , 60, 70, 80 , 90 , 100 , т.е. A[0]=0, A[1]=10 и т.д.Чему будет равно значение переменной s после выполнения данной программы?

Ответы на вопрос




Перед решением задачи необходимо заметить, что в данной программе имеется ошибочное обращение к элементам массива. Вместо скобок ()
нужно использовать квадратные скобки []
. Также нужно исправить опечатку в переменной s
, заменив на S
.
Исправленная программа будет выглядеть следующим образом:
lessS := 0;
n := 10;
for i := 0 to n do
begin
if A[n-i]-A[i] > A[i] then
S := S + A[i];
end;
Теперь рассмотрим, как работает данная программа.
Программа проходит по элементам массива A
с помощью цикла for
, начиная с индекса 0
и заканчивая индексом 10
. В каждой итерации происходит сравнение значения элемента с индексом n - i
и элемента с индексом i
, вычисляется разность этих элементов и проверяется, больше ли она, чем значение элемента с индексом i
. Если условие выполняется, то значение элемента с индексом i
прибавляется к переменной S
.
Рассчитаем значение переменной S
для данного массива.
При i = 0
значение n - i
равно 10
, поэтому производится сравнение A[10] - A[0] > A[0]
, что эквивалентно 100 - 0 > 0
. Условие выполняется, поэтому к переменной S
прибавляется значение элемента A[0]
, то есть 0
.
При i = 1
значение n - i
равно 9
, поэтому производится сравнение A[9] - A[1] > A[1]
, что эквивалентно 90 - 10 > 10
. Условие выполняется, поэтому к переменной S
прибавляется значение элемента A[1]
, то есть 10
.
Аналогично вычисляем значения переменной S
для оставшихся значений i
и получаем:
- При
i = 2
:S = 10 + 20 = 30
- При
i = 3
:S = 10 + 20 + 30 = 60
- При
i = 4
:S = 10 + 20 + 30 + 40 = 100
- При
i = 5
:S = 10 + 20 + 30 + 40 + 50 = 150
- При
i = 6
:S = 10 + 20 + 30 + 40 + 50 + 60 = 210
- При
i = 7
:S = 10 + 20 + 30 + 40 + 50 + 60 + 70 = 280
- При `i = 8


Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili