ІНФОРМАТИКА для 9 класу


[4,1] [4,2] [4,3] [4,4] [4,5] 5 [5,1] [5,2] [5,3] [5,4] [5,5]

Якщо кількість рядків і стовпців двовимірного масиву збігається, то його ще називають квадратною матрицею. У таких випадках вживають поняття головна діагональ (позначена зеленим кольором) та бічна діаго — наль (позначена сірим кольором) (рис. 9.2).

Головна діагональ

Бічна діагональ

Рис. 9.2. Діагоналі матриці

Елементи, що стоять на головній діагоналі, мають індекси (1, 1), (2, 2), (3, 3), … (і, і). …, (n, n), тобто номер рядка дорівнює номеру стовпця! Еле — менти, що стоять на бічній діагоналі, мають такі індекси (1, n), (2, n–1), (3, n–2), …, (і, n–і+1), (n,1), тобто індекси елементів взаємозалежні за фор — мулою j= n – i+1.

Приклад 9.3.1. Дано натуральні числа n, m та випадкові дійсні числа, що утворюють таблицю A[i, j], де i = 1,2,…, n; j = 1, 2, …, m. Роздрукувати у рядок елементи, що розташовані на бічній діагоналі. Обчислити суму елементів бічної діагоналі.

Нагадаємо, що на бічній діагоналі елементи мають таку властивість: сума номера рядка та номера стовпця дорівнюють розмірності масиву

+1, тобто номер стовпця обчислюється за формулою: j = n-1+i. Тоді програма для розв’язання цієї задачі має такий вигляд: Const n = 5;

Var A: array[1..n,1..n] of real; i, j: integer; Sum:real;

Begin

Randomize;

For i:=1 to n do Begin

Читать  Формалізація та алгоритмізація обчислювальних процесів

For j:=1 to n do begin A[i, j]:=random(100);

Write (A[i, j]:3);

End; writeln; End;

Writeln (‘Бічна діагональ масиву:’);

For i:=1 to n do begin

Write (A[i, n-i+1]:3);

If i + j = n+1 then Sum:=Sum+A[i, j];

End;

Writeln (‘Сума елементів бічної діагоналі =‘,Sum:5);

End.

Із головною діагоналлю працювати ще легше, оскільки умова пошуку елемента на головній діагоналі i=j. Однак якщо потрібно зробити певну дію з елементами, що містяться над діагоналями чи під діагоналями, то умову слід продумати заздалегідь.

Приклад 9.3.2. Дано натуральне число n та випадкові цілі числа, що утворюють таблицю A[i, j], де i = 1,2,…, n; j = 1, 2, …, n. Замінити всі елементи, що містяться вище головної діагоналі, нулями.

Тоді програма для розв’язання цієї задачі має такий вигляд: Const n = 5;

Var A: array[1..n,1..n] of real; i, j: integer; Sum:real;

Begin Randomize;

Writeln(‘Сформований масив’); For i:=1 to n do

Begin

For j:=1 to n do begin A[i, j]:=random(100);

Write (A[i, j]:3); end;

Writeln;

End;

Writeln(‘Трансформований масив’); For i:=1 to n do

Begin

For j:=1 to n do begin

If i<j then A[i, j]:=0; end;

[Всего голосов: 6    Средний: 3.5/5]