В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы, обрабатывающей данный массив. Python:
s=0
n=10
for i in range (1, n + 1):
if i == n - i
s = s + A[i] - A[i - 1]
Паскаль:
s:= 0
n:=10
for i:= 1 to n do
begin
if i:= n - i
then
s:= s + A[i] - A[i - 1];
end
В начале выполнения этого фрагмента в массиве находились числа 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, т. е A[0] = 0, A[1] = 3 и т. д.
Чему будет равно значение переменной s после выполнения данной программы?
ответы:
1) 3
2) 0
3) 2
4) 1
3
Объяснение:
В обоих вариантах программы у вас есть ошибки, скорее всего имелось в виду это (Python)
s = 0
n = 10
for i in range (1, n + 1):
if i == n - i :
s = s + A[i] - A[i - 1]
Сначала s = 0, n = 10.
Затем в цикле по i от 1 до n, если i = n - i, к s прибавляется A[i] - A[i - 1].
Условие выполнено, когда i = n - i.
Итак, условие выполнится только для i = n/2 = 5, поэтому к s что-то прибавится только раз.
Новое значение s = 0 + A[5] - A[4] = 0 + 15 - 12 = 3.