Курсовая работа: Приклад обчислення функції на Паскалі
Тоді на першому кроці (заміна першого стовпця на перший рядок) реалізується досить просто, а саме, шляхом реалізації оператора присвоювання наступного виду a[i,j]:=a[j,i} при виконанні внутрішнього циклу (№6) по всіх стовпцях (j змінювалося від 1 до 4) і одиничному значенні парамеира зовнішнього циклу (№5) по рядках (i=1). Черговий крок, як видно, повинний початися з заміни вже трьох стовпців на три рядки, починаючи з другого стовпця і другого рядка, (i=2, j=2). тобто з клітки A22 . І нарешті буде виконаний третій (останній) крок (i=3, j=3 ), починаючи з клітки A33 . Звідси випливає, що початкове значення параметра внутрішнього циклу (№6 по стовпцях) повинне збільшуватися на одиницю з кожним новим зовнішнім циклом. Це досягається використанням змінної L (блок №15), якої привласнюється початкове значення 1 (у блоці №13) з наступним збільшенням на 1 ( у блоці №18) після завершення внутрішнього циклу №6, а кількість виконань зовнішнього циклу повинне бути на одиницю менше числа рядків, що відбито в блоці №14.
III. Тому як при формуванні вектора Х кількість елементів матриці менших 2 заздалегідь невідомо, те в змінній K (блок №29) організується лічильник, що формує поточний індекс елемента вектора. При цьому враховане, що при завершенні формування вектора показання лічильника перевищують на одиницю реальну розмірність. Це враховано при виводі вектора на відображення (блок№33) і при обчисленні функції (блок№37).
БАЗОВА ПРОГРАМА РЕАЛІЗАЦІЇ АЛГОРИТМУ
Program Generalna; {Программа формирования квадратной матрицы по выражению для A[i,j], вектора Х по транспонированной матрице и вычисления функции U}
uses Crt; {Используемый библиотечный модуль}
Const Len=100;
Type
mtr= array [1..Len,1..Len] of real; {Пользовательский тип mtr}
mas= array [1..Len] of real; {Пользовательский тип mas}
var i,j, m,n:integer; {Рабочие переменные : параметры цикла и размерности}
k:byte; {Счетчик –формирователь индексов при получении массива Х}
L:byte; {Переменная для задания начального значения параметра цикла при транспонировании матрицы}
a:mtr; {Матрица А}
x:mas; {Массив Х}
c:real; {Рабочая переменная}
u: real;{Имя вычисляемой функции}
BEGIN
ClrScr;
writeln ('Введите размерность матрицы A: числа M и N' );
write('m=');
read (m);
write('n=');
read(n);
writeln (' Введите элементы a[i,j] матрицы А ');
for i:=1 to m do{Внешний цикл по строкам}