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

