Значения элементов двухмерного массива A[1..100,1..100] задаются с помощью следующего...

0 голосов
160 просмотров

Значения элементов двухмерного массива A[1..100,1..100] задаются с помощью следующего
фрагмента программы:for i:=1 to 100 do
for k:=1 to 100 do
if i > k then
A[i,k] := i
else A[i,k] := -k;
Чему равна сумма элементов массива после выполнения этого фрагмента программы?
Решение пожалуйста (пояснение)


Информатика (181 баллов) | 160 просмотров
Дан 1 ответ
0 голосов

1. Работаем с квадратной матрицей, где количество строк=количеству столбцов = 100
2. После выполнения фрагмента кода получим матрицу, в которой главная диагональ равна -1, -2, -3 ... -98, -99, -100 и все элементы над главной диагональю будут отрицательные, каждый следующий элемент в строке от главной диагонали будет меньше предыдущего на 1 и строка заканчиваются -100
3. Элементы под главной диагональю положительные  и равны номеру строки.
Пример такой матрицы (только не 100Х100, а 5Х5, просто не влезет в экран, но чтобы понять как формируется такой массив достаточно):
  -1  -2  -3  -4  -5
   2  -2  -3  -4  -5
   3   3  -3  -4  -5
   4   4   4  -4  -5
   5   5   5   5  -5

4. Далее можно вручную посчитать сумму элементов матрицы, а можно написать программу для этого:
const n = 100;
var a:array[1..n,1..n] of integer;
i,k,s:integer;
begin
  for i:=1 to n do begin
    for k:=1 to n do begin
      if i > k then
         A[i,k] := i
      else A[i,k] := -k;
      s:=s+a[i,k];
    end;
  end;
  writeln(s);
end.

Ответ: -5050





(13.9k баллов)