Значения элементов двухмерного массива A[1..100,1..100] задаются с помощью следующего фрагмента программы:
| Бейсик | Паскаль |
|---|---|
FOR i= 1 TO 100 FOR k=1 TO 100 IF i > k THEN A(i,k) = 1 ELSE A(i,k) = -1 NEXT k NEXT i | for i:=1 to 100 do for k:=1 to 100 do if i > k then A[i,k] := 1 else A[i,k] := -1;
|
| Си++ | Алгоритмический язык |
for (i=1;i<=100;i++) { for (k=1;k<=100;k++) { if (i > k) { A[i,k] = 1; } else A[i,k] = -1; } }
| нц для i от 1 до 100 нц для k от 1 до 100 если i > k то A[i][k] := 1 иначе A[i][k] := -1 кц кц |
| Python | |
for i in range(1, 101): for k in range(1, 101): if i > k: A[i][k] = 1 else: A[i][k] = -1 | |
Чему равна сумма элементов массива после выполнения этого фрагмента программы?
Условие говорит нам, что если номер строки больше номера столбца, то соответствующий элемент равен 1. В первой строке таких элементов нет. Во второй строке это будет только элемент A[2,1], третьей их будет два: A[3,1] и A[3,2] и т. д. В строке с номером 100 таких элементов будет 99.
По формуле для суммы арифметической прогрессии найдём количество таких элементов:
a1 = 1, an = 99, n = 99, поэтому N = (1 + 99) / 2 * 99 = 4950.
Всего в таблице 100 * 100 = 10 000 элементов. Элементов, равных -1, будет 10 000 - 4950 = 5050.
Найдём сумму элементов: 4950 * 1 + 5050 * (-1) = -100.

