Файл: 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


Двумерный массив

Двумерный массив

Одномерный массив

Вещественная


AR
BR
XR
YR


Таблица переменных алгоритма получения массива(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


Целый
Двумерный массив


1Aij=f(I,j)


Промежуточные данные: Номер строки массива


I



I



Целый



i=

Выходные данные:

Вектор xi


x

x

Одномерный массив

xi=ai,ixi< 0


Таблица переменных алгоритма определения y по формуле

(part3)

Смысл переменных

Обозначение

Тип переменной

Примечания

в алгоритме

в

программе

Входные данные:

Количество столбцов и строк

Матрица
Вектор xi


N
A
x


N
A
x


Целый
Двумерный массив

Одномерный массив



1Aij=f(I,j)
xi > 0

xn-i+1≠0

Промежуточныеданные:

Интервал



I



I




Целый



i=

Выходные данные:

Функция


y


y

Вещественный


Y=f(x)


Таблица переменных алгоритма построения обратной матрицы к транспонированной массива(part4)

Смысл переменных

Обозначение

Тип переменной

Примечания

в алгоритме

в программе

Входные данные:

Количество столбцов и строк

Матрица


N
a


N
a


Целый
Двумерный массив


1Aij=f(I,j)


Промежуточные данные: Номер строки массива

Номер столбца массива


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


Целый
Одномерный массив

Двумерный массив



1X[i]∈ R
b[i,j]∈ R


Промежуточные данные:

Номер строки массива
Номер столбца массива
Умножение матрицы



i
j
z



i
j
z



Целый
Целый
Вещественный



i=
j=
zR

Выходные данные:

Результат умножения перевернутойматрицы на исходную матрицу


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.
Результаты программы



Результаты тестового расчета совпали с результатами программы.