В программе описан одномерный целочисленный массив с индексами от 0 до 9. Ниже представлен фрагмент программы, обрабатывающей данный массив:
| Бейсик | Python |
|---|---|
c = 0 FOR i = 1 TO 8 IF A(i)=A(0) THEN c = c + 1 t=A(i+1) A(i+1)= A(i) A(i)= t ENDIF NEXT i PRINT c
| c = 0 for i in range(1, 9): if A[i] == A[0]: c += 1 t=A[i+1] A[i+1]= A[i] A[i]= t print(c) |
| Алгоритмический язык | Паскаль |
c := 0 нц для i от 1 до 8 если A[i] = A[0] то c := c + 1 t:=A[i+1] A[i+1]:= A[i] A[i]:= t все кц вывод c | c := 0; for i := 1 to 8 do if A[i] = A[0] then begin inc(c); t:=A[i+1]; A[i+1]:= A[i]; A[i]:= t; end; writeln(c); |
| Си++ | |
c = 0; for (i = 1; i <= 8; i++) if (A[i] == A[0]) { c++; t=A[i+1]; A[i+1]= A[i]; A[i]= t; } cout « c « endl; | |
В начале выполнения этого фрагмента в массиве находились числа 3, 2, 4, 6, 3, 10, 12, 14, 16, 18 т. е. А[0]=3, А[1]=2 и т. д. Чему будет равно значение переменной с после выполнения данной программы?
Заметим, что первый раз условие в цикле выполнится, когда A[i] = A[0]. После этого значения A[i] и A[i+1] поменяются местами, поэтому на всех последующих шагах условие A[i] = A[0] также будет выполнено. Каждый раз при выполнении условия A[i] = A[0] переменная c увеличивается на единицу. Первый раз условие будет выполнено при i=4, поэтому после выполнения фрагмента программы c будет равно 5.
Ответ: 5.

