Крылов С.С., Ушаков Д.М. «ЕГЭ
информатика. Тематические тестовые задания», с.99-100, «Экзамен», Москва, 2013.
Вариант (а):
Значения двумерного массива размера n x n задаются
с помощью вложенного оператора цикла в представленном фрагменте программы (вариант
на языке Pascal):
for i := 1 to n do
for k := 1 to n do
if i > k then
A[i,k]
:= 1
else
A[i,k] := 0;
Как будет зависеть от n сумма элементов массива A после выполнения алгоритма? Напишите формулу
вычисления суммы элементов массива A, в
зависимости от n.
Решение:
Пусть i – номер строки, k – номер
столбца.
Вычислим для наглядности значения
массива A размером 5 х 5:
i \ k
|
1
|
2
|
3
|
4
|
5
|
1
|
0
|
0
|
0
|
0
|
0
|
2
|
1
|
0
|
0
|
0
|
0
|
3
|
1
|
1
|
0
|
0
|
0
|
4
|
1
|
1
|
1
|
0
|
0
|
5
|
1
|
1
|
1
|
1
|
0
|
Очевидно, что в этом частном случае сумма
элементов массива A будет равна 1 + 2 + 3 + 4 = 10.
В общем случае сумма элементов массива A размером n x n вычисляется как сумма последовательных натуральных
чисел от 1 до n – 1 по формуле n (n –
1) / 2.
Вариант (б):
Значения двумерного массива размера n x n задаются
с помощью вложенного оператора цикла в представленном фрагменте программы (вариант
на языке Pascal):
for i
:= 1 to n do
for k
:= 1 to n do
if i = k then
A[i,k]
:= 1
else
A[i,k] := -1;
Как будет зависеть от n сумма элементов массива A после выполнения алгоритма? Напишите формулу
вычисления суммы элементов массива A, в
зависимости от n.
Решение:
Пусть i – номер строки, k – номер
столбца.
Вычислим для наглядности значения
массива A размером 5 х 5:
i \ k
|
1
|
2
|
3
|
4
|
5
|
1
|
1
|
-1
|
-1
|
-1
|
-1
|
2
|
-1
|
1
|
-1
|
-1
|
-1
|
3
|
-1
|
-1
|
1
|
-1
|
-1
|
4
|
-1
|
-1
|
-1
|
1
|
-1
|
5
|
-1
|
-1
|
-1
|
-1
|
1
|
Из этого примера видно, что сумма
элементов массива A по
каждой строчке будет равна 2 - n, а сумма всех элементов массива A находится как n (2 – n).
Внимание! В книге приведен неправильный ответ: n – n2.
Вариант (в):
Значения двумерного массива размера n x n задаются с помощью вложенного оператора цикла в представленном фрагменте программы (вариант на языке Pascal):
for i := 1 to n do
for k := 1 to n do
if i > k then
A[i,k] := 1
else
A[i,k] := -1;
Как будет зависеть от n сумма элементов массива A после выполнения алгоритма? Напишите формулу вычисления суммы элементов массива A, в зависимости от n.
Решение:
Пусть i – номер строки, k – номер столбца.
Вычислим для наглядности значения массива A размером 5 х 5:
i \ k
|
1
|
2
|
3
|
4
|
5
|
1
|
-1
|
-1
|
-1
|
-1
|
-1
|
2
|
1
|
-1
|
-1
|
-1
|
-1
|
3
|
1
|
1
|
-1
|
-1
|
-1
|
4
|
1
|
1
|
1
|
-1
|
-1
|
5
|
1
|
1
|
1
|
1
|
-1
|
Сумма элементов массива A размером n x n вычисляется как сумма
диагональных элементов и будет равна - n.
Вариант (г):
Значения двумерного массива размера n x n задаются с помощью вложенного оператора цикла в
представленном фрагменте программы (вариант на языке Pascal):
for i
:= 1 to n do
for k
:= 1 to n do
if i
> k then
A[i,k] := i
else
A[i,k] := -k;
Как будет зависеть от n сумма элементов массива A после выполнения алгоритма? Напишите формулу
вычисления суммы элементов массива A, в
зависимости от n.
Решение:
Пусть i – номер строки, k – номер
столбца.
Вычислим для наглядности значения
массива A размером 5 х 5:
i \ k
|
1
|
2
|
3
|
4
|
5
|
1
|
-1
|
-2
|
-3
|
-4
|
-5
|
2
|
2
|
-2
|
-3
|
-4
|
-5
|
3
|
3
|
3
|
-3
|
-4
|
-5
|
4
|
4
|
4
|
4
|
-4
|
-5
|
5
|
5
|
5
|
5
|
5
|
-5
|
Из этого примера видно, что сумма
элементов, расположенных выше и ниже диагонали таблицы, будет равна 0.
Таким образом, сумма элементов всего
массива A равна взятой со знаком минус сумме последовательных натуральных чисел от 1 до n и определяется формулой - n (n + 1) / 2.