![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Алгоритми обробки багатовимірних масивів. До традиційних обчислювальних алгоритмів обробки багатовимірних масивів (матриць) належать: алгоритми пошуку максимальних і мінімальних елементів та номерів
До традиційних обчислювальних алгоритмів обробки багатовимірних масивів (матриць) належать: алгоритми пошуку максимальних і мінімальних елементів та номерів рядків і стовпчиків, в яких вони розміщуються; обчислення сум і добутків елементів рядків і стовпчиків; перестановки місцями рядків і стовпчиків; вилучення рядків і стовпчиків; обчислення суми, різниці та добутку матриць; транспонування матриць та інші. Розглянемо деякі з цих алгоритмів. Розглянемо алгоритм перетворення матриці. Приклад. Нехай задана матриця Алгоритм буде складатися з двох частин. Перша частина – це пошук номера рядка
Program LABR4_1; {$APPTYPE CONSOLE} uses Sysutils; VAR a: array[1..15, 1..15] of integer; n, i, j, k, l, r: integer; BEGIN {Введення початкових даних} writeln(‘Введіть розмір матриці а, (n< =15)’); readln(n); writeln(‘Введіть елементи матриці а по рядках’); for i: =1 to n do for j: =1 to n do read(a[i, j]); {Пошук координат мінімального елемента матриці } k: =1; l: =1; for i: =1 to n do for j: =1 to n do if a[i, j]< a[k, l] then begin k: =i; l: =j; end; {Перестановка місцями for i: =1 to n do begin r: =a[n, i]; a[n, i]: =a[k, i]; a[k, i]: =r; end; {Перестановка місцями for i: =1 to n do begin r: =a[i, n]; a[i, n]: =a[i, l]; a[i, l]: =r; end; {Виведення перетвореної матриці по рядках} for i: =1 to n do begin writeln; for j: =1 to n do write(a[i, j]: 5); end; END.
Розглянемо алгоритм обчислення добутку двох матриць. Приклад. Нехай задано дві матриці Добутком матриць
тобто елемент
Program LABR4_1; {$APPTYPE CONSOLE} uses Sysutils; VAR a, b, c: array[1..15, 1..15] of integer; n, i, j, k: integer; BEGIN {Введення початкових даних} writeln(‘Введіть розмір матриць а і b, (n< =15)’); readln(n); writeln(‘Введіть елементи матриці а по рядках’); for i: =1 to n do for j: =1 to n do read(a[i, j]); writeln(‘Введіть елементи матриці b по рядках’); for i: =1 to n do for j: =1 to n do read(b[i, j]); {Обчислення добутку матриць a і b } for i: =1 to n do for j: =1 to n do begin c[i, j]: =0; for k: =1 to n do c[i, j]: = c[i, j]+a[i, k]*b[k, j]; end; {Виведення матриці c по рядках} for i: =1 to n do begin writeln; for j: =1 to n do write(a[i, j]: 5); end; readln; END.
|