Пример 1.В программе
описан одномерный целочисленный массив с
индексами от 0 до 10. В приведенном ниже
фрагменте программы массив сначала
заполняется, а затем изменяется:
for i:=0 to 10 do
a[i]:= i-1;
for i:=1 to 10 do
a[i-1]:= a[i];
a[10]:= 10;
Как изменяются элементы этого массива?
1) все элементы, кроме последнего,
окажутся равными между собой
2) все элементы окажутся равны своим
индексам
3) все элементы, кроме последнего,
сдвигаются на один элемент вправо
4) все элементы, кроме последнего,
уменьшаются на единицу.
Решение:
Массив заполняется
элементами, равными своему индексу,
уменьшенному на 1. Т.о. элементы массива: -1
0 1 2 3 4 5
6 7 8 9.
Далее каждый элемент
заменяется следующим по порядку, т.е.
a[0]:=a[1] или
a[0]=0, затем
a[1]=1 ...
a[9]=9.
Последний элемент (десятый) становится равен
10.
Получаем
последовательность 0 1 2 3
4 5 6 7 8 9
10. А это значит, что каждый элемент равен
своему номеру.
Ответ: 2.
Пример 2. Значения элементов двумерного
массива А были равны 0. Затем значения
некоторых элементов были изменены:
n := 0;
for i:=1 tо 5 do
for j:=1 tо 6-i do begin
n := n + 1;
A[i,j] := n; end;
Какой элемент массива будет иметь в
результате максимальное значение?
1) A[1,1]
2) A[1,5]
3) A[5,1]
4) A[5,5]
Решение:
В результате
выполнения вложенных циклов элементы массива
будут заменены числами, последовательно
увеличивающимися на 1, начиная с 0. Т.о.
наибольшим будет элемент, который будет
изменен последним.
Индексы элементов
изменяются следующим образом: для i = 1, j принимает значения 1, 2, 3, 4, 5 (6-5),
для i=2, j принимает значения 1, 2, 3, 4 (6-2), и т.д.
На последнем шаге i=5, j принимает одно
значение от 1 до 1 (6-5). Последний элемент А[5,1].
Ответ: 3
Пример 3. Значения элементов двух массивов А и В размером 1 х 100 задаются с
помощью следующего фрагмента программы:
for i:=1 tо 100 do
A[i] := 50 – i;
for i:=1 tо 100 do
B[i] := A[i] + 49;
Сколько элементов массива В будут иметь отрицательные значения?
1) 1
2) 10
3) 50
4) 100
Решение:
Массив А заполняется
элементами по формуле
A[i] := 50 – i.
49 48 47
... 0 -1 -2
... -50
Начиная с номера 51
элементы будут отрицательными (50
элементов).
Массив В формируется из
элементов массива А, увеличенных на 49, т.е.
98 97 96
... 49 48 47
... 0 -1
Т.о. в массиве В только
один отрицательный элемент
1. Значения двумерного массива задаются
с помощью вложенного оператора цикла в
представленном фрагменте программы:
for n:=1 to 5 do
for k:=n to 5 do begin
B[n,k] := n + k;
Чему будет равно значение B[2,4]?
2. Значения двух массивов A[1..100] и B[1..100]
задаются с помощью следующего фрагмента
программы:
for n:=1 to 100 do
A[n] := n - 10;
for n:=1 to 100 do
B[n] := A[n]*n;
Сколько элементов массива
B будут иметь положительные значения?
3. Все элементы двумерного массива A
размером 10х10 элементов первоначально были
равны 0. Затем значения элементов меняются с
помощью вложенного оператора цикла в
представленном фрагменте программы:
for n:=1 to 4 do
for k:=n to 4 do begin
A[n,k] := A[n,k] + 1;
A[k,n] := A[k,n] + 1;
end;
Сколько элементов массива в результате будут
равны 1?