Домашние задания: Другие предметы

Объясните пожалуйста решение простой задачи по информатике. Что-то не понимаю (

Все элементы 2.-мерного массива А размером 10*10 равны 0.Сколько элементов массива после выполнения фрагмента программы будут равны 4????
FOR i=1 TO 3
FOR m = i TO 3
A(i, m) = A(i, m) + 2
A(m, i) = A(m, i) + 2
NEXT m
NEXT i

Заранее благодарю)
Суть алгоритма:
- для каждой i-й строки диагональный элемент и элементы правее его увеличиваются на 2
- для каждого i-го столбца диагональный элемент и элементы ниже его увеличиваются на 2
Получается, что к диагональному элементу дважды прибавляется 2, а к недиагональному элементу один раз прибавляется 2. В итоге значение 4 будут иметь 3 диагональных элемента A(1,1),A(2,2),A(3,3)

в начале
0 0 0
0 0 0
0 0 0

i=1
m=1
A(1,1)=A(1,1)+2=0+2=2
A(1,1)=A(1,1)+2=2+2=4
m=2
A(1,2)=A(1,2)+2=0+2=2
A(2,1)=A(2,1)+2=0+2=2
m=3
A(1,3)=A(1,3)+2=0+2=2
A(3,1)=A(3,1)+2=0+2=2

4 2 2
2 0 0
2 0 0

i=2
m=2
A(2,2)=A(2,2)+2=0+2=2
A(2,2)=A(2,2)+2=2+2=4
m=3
A(2,3)=A(2,3)+2=0+2=2
A(3,2)=A(3,2)+2=0+2=2

4 2 2
2 4 2
2 2 0

i=3
m=3
A(3,3)=A(3,3)+2=0+2=2
A(3,3)=A(3,3)+2=2+2=4

4 2 2
2 4 2
2 2 4
Владимир Верещагин
Владимир Верещагин
63 514
Лучший ответ
3 элемента A(1,1), A(2,2), A(3,3)
Очевидно, что в этом цикле изменению подвержены только элементы подматрицы размером 3*3
Рассмотрим цикл более подробно. На первом шаге по i, когда i=1 происходит

FOR m = 1 TO 3
A(1, m) = A(1, m) + 2
A(m, 1) = A(m, 1) + 2
NEXT m

Изменяя значение m от 1 до 3, мы дважды добавили к элементу A(1,1) двойку, в итоге A(1,1)=4
К элементам A(1,2), A(1,3), A(2,1), A(3,1) двойка была добавлена один раз.
Аналогично при i=2 и 3, но m изменяется от 2 или 3 до 3 соответственно.
в итоге, после окончания цикла, мы получим, что
A(k,k)=4, при 1<=k<=3
A(k,l)=2, при 1<=k<=3, 1<=l<=3, k не равно l
все остальные элементы равны нулю.
Elena Potehina
Elena Potehina
6 923
Две операции:

A(i, m) = A(i, m) + 2
A(m, i) = A(m, i) + 2

Равносильны :

A(i, m) = A(i, m) + 4

3 строки * 3 столбца = 9

Где 3 сроки и 3 столбца мы берем из условного операнда FOR от 1 до 3

Ответ: 9 элементов массива после выполнения фрагмента программы будут равны 4.
Murad Ibragimov
Murad Ibragimov
1 278