Met 5 zad

Работа 5. ПРОГРАММИРОВАНИЕ МАТРИЧНЫХ ОПЕРАЦИЙ

Разработать программу решения четырех взаимосвязанных задач частой работы:
1) расчета элементов квадратной матрицы A = (aij ), i,j = 1,2,...,n по заданной формуле;
2) вычисления элементов вектора X = (xi), i = 1,2,...,n по заданному правилу;
3) требуемого упорядочения элементов матрицы А или вектора Х;
4) вычисления значения y по заданной формуле.
Размерность задачи n назначается преподавателем ( 7<=n<=10).

Согласно варианта дана следующая задача, состоящая из четырех частей:
1) вычислить элементы квадратной матрицы А, если
sin5i + cos 10j
aji = ----------------------;
tgij

2) из матрицы А получить вектор Х, если Хi – скалярное произведение побочной диагонали на i –й столбец;

3) упорядочить элементы строк матрицы А по убыванию;

4) вычислить значение функции
xi + xn-i+1
Y = --------------- .
Xn/2

Алгоритм решения каждой части задачи выполнить в виде отдельной подпрограммы.

Для каждой подпрограммы и основной программы составить блок-схемы (как было указано на лекциях). Указать в программе кто автор выполненной работы.



Текст программы и результаты вычислений при n=6 приведены ниже.

program primer;
{-------------------- раздел описания типов -----------------}
type Vect = array[1..10] of real;
Matr = array[1..10,1..10] of real;
{------------------- раздел описания переменных ---------}
Var Dev : text;
Kanal : string;
i, j, n : integer;
Y : real;
A : matr;
X : vect;
{------------------- раздел описания подпрограмм ------- }
{------------------------ часть первая -----------------------------}
procedure MATRICA(N:integer;var A:matr);
var i, j: integer;
Begin
for j:=1 to n do
for i:=1 to n do
A[j,i]:=(sin(5*i)+cos(10*j))/(sin(i*j)/cos(i*j));
end;
{---------------------- часть вторая -------------------------------}
Procedure VECTOR (N: integer; A: matr; var X:vect);
var i, j: integer;
Begin
for j:=1 to n do begin
X[j]:=0.0;
for i:=1 to n do
X[j]:=x[j]+A[i,j]*A[i,n-i+1]; end;
end;
{--------------------- часть третья --------------------------------}
Procedure PORJADOK(N:integer; var A:matr);
var i,j, k, k1: integer;
s : real;
Begin
for k:=1 to n do begin
for i:=1 to n-1 do begin
s:=A[k,i]; k1:=i;
for j:=i+1 to n do
if s s:=A[k,j];
k1:=j; end;
A[k,k1]:=A[k,i];
A[k,i]:=s;
end; end;
end;

{-------------------- часть четвертая ------------------------------}
FUNCTION FUNC(N: integer; X:Vect):Real;
var i, n1 : integer;
s : real;
Begin
s:=0.0; n1:=n div 2;
for i:=1 to n do
s:=s+(x[i]+x[n-i+1])/x[n1];
func:=s;
end;
{-------------------- ОСНОВНАЯ ПРОГРАММА ------------------------}
Begin
write('Kanal=');
Readln(Kanal);
Assign(dev, kanal);
Rewrite(dev); write('N=');
Readln(n);
MATRICA(N,A); {вызов процедуры MATRICA}
writeln(dev,' матрица А: ');
for j:=1 to n do begin {начало вывода матрицы}
for i:=1 to n do
write(dev,a[i,j]:10:2);
writeln(dev); end; {конец вывода матрицы}
writeln(dev); {перевод строки}
VECTOR(N,A,X); {вызов процедуры VECTOR}
writeln(dev,' Элементы вектора Х: ');
for i:=1 to n do {начало вывода вектора}
write(dev, x[i]:10:2); {конец вывода вектора}
writeln(dev);
PORJADOK(N,A); {вызов процедуры PORJADOK}
writeln(dev,' Упорядоченная матрица:');
for i:=1 to n do begin {начало вывода упорядоченной матрицы}
for j:=1 to n do
write(dev, a[i,j]:10:2);
writeln(dev); end; {конец вывода упорядоченной матрицы}
writeln(dev);
Y:=FUNC(N,X); {присвоение Y значения функции FUNC}
writeln(dev,' Значение функции Y=', Y:6:2); {вывод значения функции}
Close(dev);
END.
Матрица А:
-1.15 0.25 5.64 -1.40 -0.00 6.57
0.63 -0.12 1.34 0.18 0.65 2.35
1.32 -3.64 -1.78 0.03 -1.89 0.27
0.06 -0.19 -1.68 0.82 0.84 0.02
0.29 0.43 -0.03 -0.36 -6.24 0.17
6.28 0.91 0.73 0.78 0.00 -0.25
Элементы вектора Х:
26.49 17.56 10.27 3.82 -0.92 36.96

Упорядоченная матрица:
6.28 1.32 0.63 0.29 0.06 -1.15
0.91 0.43 0.25 -0.12 -0.19 -3.64
5.64 1.34 0.73 -0.03 -1.68 -1.78
0.82 0.78 0.18 0.03 -0.36 -1.40
0.84 0.65 0.00 -0.00 -1.89 -6.24
6.57 2.35 0.27 0.17 0.02 -0.25
Значение функции Y= 18.33

F Заголовок 115НастяtC:\Documents and Settings\Настя\Рабочий стол\~Солнышко~\УГНТУ\Информатика\Информатика\Образцы отчетов\Мет_ 5_зад.doc
·
·
·
·Times New RomanРабота 5

Приложенные файлы

  • doc 18670961
    Размер файла: 33 kB Загрузок: 0

Добавить комментарий