Ниже приведён фрагмент программы, записанный на четырёх языках программирования. Массив A одномерный; в программе рассматривается его фрагмент, соответствующий значениям индекса от 0 до n.
| Бейсик | Паскаль |
|---|---|
n = 10 FOR i = 0 TO n K = A(i) A(K) = 0 NEXT i | n:=10; for i:=0 to n do begin K := A[i]; A[K] := 0; end;
|
| Си++ | Алгоритмический язык |
n=10; for (i = 0; i <= n; i++){ K = A[i]; A[K] = 0; }
| n:=10 нц для i от 0 до n K := A[i] A[K] := 0 кц |
| Python | |
n = 10 for i in range(0, n+1): K = A[i]; A[K] = 0 | |
В начале выполнения этого фрагмента в массиве находились числа 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, т. е. A[0] = 10, A[1] = 9 и т. д. Сколько элементов массива после выполнения программы будут иметь ненулевые значения?
Всего в массиве 11 элементов. В то время как значение переменной K изменяется от 10 до 6, элементы с седьмого по десятый принимают значение 0. Когда i = 5, переменная K принимает значение 5, а пятый элемент обращается в нуль. На всех последующих шагах цикла элементу A[0] присваивается значение 0. Таким образом, после выполнения цикла четыре элемента будут иметь ненулевые значения: A[1], A[2], A[3], A[4].

