Файл: 2. Решение каждой части в программе реализовать в виде процедуры.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.10.2023
Просмотров: 21
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
19
//умножение матрицы
Вывод vi,
20
Конец
1
3.2. Алгоритм получения элементов массива А по формуле
n – число строк и столбцов
Part1
2
S=0
K=0
3
i=1, n,1
4
x=1;
5
j=1, n,1
7
aij– элемент матрицы
89
Выход
3.3. Алгоритм вычисления хi , где хi - элементы главной диагонали массива, полученной из массива A заменой отрицательных элементов нулями.
n – число строк и столбцов
a– массив
1
Part2
2
i=1, n,1
3
x[i]:=a[i,n-i+1]*a[i,j]
4
Вывод xi
Xi– вектор
a – матрица
5
Выход
3.5.Алгоритм построения транспонированной матрицы
1
n – число строк и столбцов
a– массив
Part4
i=1, n-1,1
2
3
j=1, n-i, 1
4
t=ai.j;
ai,j=aj,i;
aj,i=t;
5
A
b[i, j]:= a[i, j]
j=1, n-i, 1
i=1, n-1,1
A
i=1, n-1,1
j=1, n-i, 1
r[i, j]:= b[i, j]
b[i, j]:= 1/r[i, j]
R[I,j]=b[I,j]
i=1, n-1,1
j=1, n-i, 1
b[i, j]:= a[i, j]
Выход
Алгоритм умножения полученного массива на вектор
n – число строк и столбцов
a– массив
v –умножение матрицы на вектор
1
Part5
2
i=1,n,1
3
j=1,n,1
4
v[i]:=x[i]*a[i,j]
5
v – умножение матрицы
Выход
4. Таблицы переменных задачи
Таблица переменных основного алгоритма
Смысл переменных | Обозначение | Тип переменной | Примечания | |
в алгоритме | в программе | |||
Исходные данные: Размер массива | n | n | Целый | 1 |
Промежуточные данные: Номер строкимассива Номер столбцамассива | I J | I J | Целый Целый | i= j= |
Результаты: Матрица Матрица Вектор х Значение функции | A B X Y | A B X Y | Двумерный массив Двумерный массив Одномерный массив Вещественная | AR BR XR YR |
Таблица переменных алгоритма получения массива(part1)
Смысл переменных | Обозначение | Тип переменной | Примечания | |
в алгоритме | в программе | |||
Входные данные: Количество столбцов и строк | N | N | Целый | 1< n <100 |
Промежуточные данные: Номер строки массива Номер столбца массива Факториал i Факториал j | I j ????! ????! | I J fi fj | Целый Целый Целый Целый | i= j= ????????∈Z ????????∈Z |
Выходные данные: Матрица | a | a | Двумерный массив | Aij=f(I,j) |
Таблица переменных алгоритма вычисления хi , где хi –элементы главной диагонали массива, полученной из массива A заменой отрицательных элементов нулями; (part2)
Смысл переменных | Обозначение | Тип переменной | Примечания | |||
в алгоритме | в программе | |||||
Входные данные: Количество столбцов и строк Массив | N a | N a | Целый Двумерный массив | 1 | ||
Промежуточные данные: Номер строки массива | I | I | Целый | i= | ||
Выходные данные: Вектор xi | x | x | Одномерный массив | xi=ai,ixi< 0 |
Таблица переменных алгоритма определения y по формуле
(part3)
Смысл переменных | Обозначение | Тип переменной | Примечания | |
в алгоритме | в программе | |||
Входные данные: Количество столбцов и строк Матрица Вектор xi | N A x | N A x | Целый Двумерный массив Одномерный массив | 1 xi > 0 xn-i+1≠0 |
Промежуточныеданные: Интервал | I | I | Целый | i= |
Выходные данные: Функция | y | y | Вещественный | Y=f(x) |
Таблица переменных алгоритма построения обратной матрицы к транспонированной массива(part4)
Смысл переменных | Обозначение | Тип переменной | Примечания | |||
в алгоритме | в программе | |||||
Входные данные: Количество столбцов и строк Матрица | N a | N a | Целый Двумерный массив | 1 | ||
Промежуточные данные: Номер строки массива Номер столбца массива | I j | I j | Целый Целый | i=1,n-1,1 j=1,n-i,1 | ||
Выходные данные: Перевернутая матрица | a | a | Двумерный массив | a[i,j]∈ R |
Таблица переменных алгоритма умножения обратной матрицы на вектор (part5)
Смысл переменных | Обозначение | Тип переменной | Примечания | |||
в алгоритме | в программе | |||||
Входные данные: Количество столбцов и строк Вектор x Перевернутая матрица | N X b | N X b | Целый Одномерный массив Двумерный массив | 1 b[i,j]∈ R | ||
Промежуточные данные: Номер строки массива Номер столбца массива Умножение матрицы | i j z | i j z | Целый Целый Вещественный | i= j= zR | ||
Выходные данные: Результат умножения перевернутойматрицы на исходную матрицу | v | v | Одномерный массив | v[i]R |
5. Текст программы на Паскале
Паскаль-программа
program Lab5; // Obrabotka dvumernogo massiva dannyh
//Variant 41
// Part 1. Построение матрицы
uses crt;
var a:array[1..100,1..100] of real;
b:array[1..100,1..100] of real;
r:array[1..100,1..100] of real;
x:array [1..100] of real;
v:array [1..100] of real;
i,j,k,n:integer;
y,t,s,c,sum:real;
BEGIN
clrscr;
writeln('Vvedite N v diapazone ot 1 do 35'); read(n);
writeln('------------- PART 1 ---------------');
for i:=1 to n do
for j:=1 to n do
a[i,j]:=sin(i+J)*abs(cos(i*j))*sqr(abs(cos(i*j)));
writeln(' ':20,'Matrix A');
for i:=1 to n do
begin
for j:=1 to n do write(a[i,j]:8:3);
writeln;
end;
// Part 2. Postroenie vectora скалярное произведение побочной диагонали на i-й столбец
writeln('------------- PART 2 ---------------');
writeln;
readln(i);
for i:=1 to n do
x[i]:=a[i,n-i+1]*a[i,j];
writeln(' ':20,'Vector X');
for i:=1 to n do write(x[i]:8:3);
writeln;
// Part 3. произведение сумм соседних элементов
writeln('------------- PART 3 ---------------');
writeln;
y:=1;
for i:=2 to n-1 do
begin
sum:=0;
for k:=i to n-1 do
begin
sum:=sum+(x[k-1] +x[k+1])/2;
end;
y:=y*sum;
end;
writeln('y=',y);
// Part 4. построить Транспонированную матрицу ;
writeln('------------- PART 4 ---------------');
writeln;
for i:=1 to n do
for j:=1 to n do
begin
t:=a[i,j];
a[i,j]:=a[j,i];
t:=a[j,i];
end;
writeln;
writeln(' ':20,'Транспонированная матрица ');
for i:= 1 to n do
for j:= 1 to n do b[i, j]:= a[i, j];
for i:=1 to n do
begin
for j:=1 to n do write ( ' ',a[i,j]:8:3);
writeln;
end;
writeln(' ':20,'Обратная матрица ');
begin
for i:=1 to n do
for j:=1 to n do
begin
r[i,j]:= b[i,j];
b[i,j] := 1/r[i,j];
r[i,j]:= b[i,j];
end;
for i:= 1 to n do
for j:= 1 to n do r[i, j]:= b[i, j];
for i:=1 to n do
begin
for j:=1 to n do write( ' ',r[i,j]:8:3);
writeln;
end;
end;
// Part 5. Umnozhenie vectora na matrizu
writeln('------------- PART 5 ---------------');
writeln;
for i:=1 to n do
for j:=1 to n do
v[i]:=x[i]*a[i,j];
writeln(' ':20,'Vector v');
for i:=1 to n do
write(v[i]:8:3);
readln;
END.
Результаты программы
Результаты тестового расчета совпали с результатами программы.