Matrix44 (M, A, M).
цикл: обчислення матриці зворотної (A ^ T * A). Перед початком циклу йде виклик процедури Obrat (M, M).
цикл: присвоєння елементів головної діагоналі матриці, зворотної (A ^ T * A), в масив P.
цикл: цикл сортування з умовою, якщо елемент масиву менше наступного, то міняємо їх місцями.
цикл: вивід на екран відсортованої головної діагоналі матриці M, зворотної (A ^ T * A).
Рис.4. Блок схема процедури zadacha3
Zadacha3 - процедура обчислення значення матриці Z=(B ^ T) * (A ^ T) * Y .: Matrix44 - це двовимірний масив, тобто матриця 4х4.
P: Matrix14 - це матриця 1х4., j, nom: integer - це змінні циклу .: real - це шукана змінна, тобто матриця Z.
Усередині процедури zadacha3 знаходяться 3 основних цикли.
) цикл обчислення матриці B ^ T. Перед початком циклу йде виклик процедури Trans41 (B, P).
) цикл обчислення матриці A ^ T. Перед початком циклу йде виклик процедури Trans44 (A, M).
) цикл виводу на екран матриці Y і обчислення значення матриці Z.
При обчисленні значення матриці Z йде виклик процедури PMatrix14 (P, M, P) і PMatrix (P, Y, r).
Рис.5. Блок схема процедури
PMatrix44 (AMatrix, BMatrix: Matrix44; var Res: Matrix44) - це процедура множення матриці (4х4) на матрицю (4х4), результат - матриця (4х4).
var i, j, k: integer - це змінні циклу .: real;- Це шукана змінна, результат обчислень., BMatrix: Matrix44 - це присвоєння масиву AMatrix і BMatrix значень двовимірного масиву Matrix44.Res: Matrix44 - це присвоєння змінної Res значень двовимірного масиву Matrix44.
В кінці процедури Res [i, j]:=r; означає, що шуканої змінної r виробляється привласнення значення змінної Res.
Рис.6. Блок схема процедури
GetMatr (AMatr: Matrix44; var BMatr: Matrix33; i, j: integer) - це процедура викреслювання з матриці AMatr рядки i і стовпця j і формування матриці BMatr (3х3) .ki, kj, di , dj: integer;- Це змінні цікла.Res: Matrix44 - це присвоєння змінної Res значень двовимірного масиву Matrix44.
Рис. 7. Блок схема функції GetDet (AMatrix: Matrix44): Real
- функція, результатом обчислення якої буде детермінат матриці 4-го порядку.
var i: integer;- Змінна циклу
Res: Real;- Шукана змінна: Matrix33;- Масив 3 на 3.
Рис.8. Блок схема процедури GetMatrDop (AMatr: Matrix44; var ResMatr: Matrix44);
pascal транспонований матриця
GetMatrDop - ця процедура визначає значення елемента транспонований матриці доповнень.
Рис.9. Блок схема функції znak (a, b: integer): integer;
Функція znak визначає, якщо парне число, результат=1, інакше результат=- 1.
Рис.10. Блок схема функції DetMinor (AM: Matrix33): real;
Функція DetMinor визначає детермінанту матриці 3х3.
Рис.11. Блок схема процедури
Obrat (AMatrix: Matrix44; var Res: Matrix44)
Процедура Obrat виконує розрахунок зворотної матриці.
Рис.12. Блок схема процедури
PMatrix41 (AMatrix: Matrix44; BMatrix: Matrix41; var Res: Matrix41); - ця процедура виконує множення матриці (4х4) на матрицю (4х1), результат - матриця (1х4).
Рис.13. Блок схема процедури
PMatrix14 (AMatrix: Matrix14; BMatrix: Matrix44; var Res: Matrix14); - ця процедура виконує множення матриці (1х4) на матрицю (4х4), результат - матриця (1х4).
Рис.14. Блок схема процедури
PMatrix (AMatrix: Matrix14; BMatrix: Matrix41; var Res: Real); - це процедура множення матриці (1х4) на матрицю (4х1), результат - число.
3. Розробка програми мовою PASCAL
.1 Короткий опис блоків програми
Програма починається зі службового слова program, після якого слід заголовок програми laba1.
Далі включаємо розділ uses для використання модуля CRT, який застосовується для керування роботою екрану в текстовому режимі.
Після назви програми та ідентифікації використовуваних модулів слід розділ оголошення типів (type), констант (const), змінних (var) і підпрограм (procedure).
...