Программирование матричных операций
Помогите пожалуйста)
Разработать программу решения четырех взаимосвязанных задач частой работы:
1) расчета элементов квадратной матрицы A = (ai,j ), i,j = 1,2,...,n по заданной формуле;
2) вычисления элементов вектора X = (xi), i = 1,2,...,n по заданному правилу;
3) требуемого упорядочения элементов матрицы А или вектора Х;
4) вычисления значения y по заданной формуле.
Размерность задачи n назначается преподавателем.
ниже на скринах представленны задание и пример блок схему
есть образец программы
Program Lab5;
const n=5;
type matr=array[1..n, 1..n] of real;
vect=array[1..n] of real;
var
i, j : integer;
y:real;
a : matr;
x : vect;
Procedure _matrica(n:integer; A:matr);
var i, j : integer;
begin
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=Sin(i)/Cos(i)+Cos(j)/Sin(j);
write (A[i,j]:8:3);
end;
writeln;
end;
end;
Procedure Matrica(n:integer; var A:matr);
var i,j:integer;
Begin
for i:=1 to n do
for j:=1 to n do
a[i,j]:=Sin(i)/Cos(i)+Cos(j)/Sin(j);
End;
Procedure Vector(n:integer; A:matr; var x:vect);
var i,j,k:integer;
s:real;
Begin
Writeln;
Writeln;
writeln('********************************');
for j:=1 to n do
Begin
s:=A[1,1];
for i:=1 to n do
Begin
k:=j mod 2;
if (A[i,j]>s) and (k=0) then s:=A[i,j] else begin
if (A[i,j]<s) and (k<>0) then s:=A[i,j];
End;end;
x[j]:=s;
End;
End;
Procedure Porjdok(n:integer; var A:matr);
var i,j:integer;
c:real;
Begin
Writeln;
Writeln;
writeln('***************************');
for i:=1 to n do
for j:=i+1 to n do
Begin
if Abs(a[1,i])>Abs(a[1,j]) then
Begin
c:=a[1,i];
a[1,i]:=a[1,j];
a[1,j]:=c;
End;
End;
End;
Function Fyn(n:integer; X:vect):real;
Var i,k:integer;
s, y:real;
Begin
Writeln;
Writeln;
writeln('******************************************');
y:=0;
i:=2;
while i <= n do
Begin
s:=0;
y:=y + (x*x[n+1-i]);
i:=i+2;
End;
k := 1;
for i:=1 to n do k:=k*i;
y:=y/k;
Fyn:=y;
End;
begin
matrica(n, a);
Writeln(' ':20,'MATPICA A');
for i:=1 to n do
Begin
for j:=1 to n do Write(a[i,j]:8:3);
writeln;
End;
Vector(n,a,x);
Writeln(' ':20,'BEKTOP X');
for i:=1 to n do write(x:8:3);
writeln;
Porjdok(n,a);
Writeln(' ':5,'YPOR 1 CTROKI MATPICU A');
for i:=1 to n do
Begin
for j:=1 to n do Write(a[i,j]:8:3);
writeln;
End;
y:=Fyn(n,x);
Writeln('Rez y= ',y:10:3);
readln;
end.
Помогите пожалуйста)
Разработать программу решения четырех взаимосвязанных задач частой работы:
1) расчета элементов квадратной матрицы A = (ai,j ), i,j = 1,2,...,n по заданной формуле;
2) вычисления элементов вектора X = (xi), i = 1,2,...,n по заданному правилу;
3) требуемого упорядочения элементов матрицы А или вектора Х;
4) вычисления значения y по заданной формуле.
Размерность задачи n назначается преподавателем.
ниже на скринах представленны задание и пример блок схему
есть образец программы
Program Lab5;
const n=5;
type matr=array[1..n, 1..n] of real;
vect=array[1..n] of real;
var
i, j : integer;
y:real;
a : matr;
x : vect;
Procedure _matrica(n:integer; A:matr);
var i, j : integer;
begin
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=Sin(i)/Cos(i)+Cos(j)/Sin(j);
write (A[i,j]:8:3);
end;
writeln;
end;
end;
Procedure Matrica(n:integer; var A:matr);
var i,j:integer;
Begin
for i:=1 to n do
for j:=1 to n do
a[i,j]:=Sin(i)/Cos(i)+Cos(j)/Sin(j);
End;
Procedure Vector(n:integer; A:matr; var x:vect);
var i,j,k:integer;
s:real;
Begin
Writeln;
Writeln;
writeln('********************************');
for j:=1 to n do
Begin
s:=A[1,1];
for i:=1 to n do
Begin
k:=j mod 2;
if (A[i,j]>s) and (k=0) then s:=A[i,j] else begin
if (A[i,j]<s) and (k<>0) then s:=A[i,j];
End;end;
x[j]:=s;
End;
End;
Procedure Porjdok(n:integer; var A:matr);
var i,j:integer;
c:real;
Begin
Writeln;
Writeln;
writeln('***************************');
for i:=1 to n do
for j:=i+1 to n do
Begin
if Abs(a[1,i])>Abs(a[1,j]) then
Begin
c:=a[1,i];
a[1,i]:=a[1,j];
a[1,j]:=c;
End;
End;
End;
Function Fyn(n:integer; X:vect):real;
Var i,k:integer;
s, y:real;
Begin
Writeln;
Writeln;
writeln('******************************************');
y:=0;
i:=2;
while i <= n do
Begin
s:=0;
y:=y + (x*x[n+1-i]);
i:=i+2;
End;
k := 1;
for i:=1 to n do k:=k*i;
y:=y/k;
Fyn:=y;
End;
begin
matrica(n, a);
Writeln(' ':20,'MATPICA A');
for i:=1 to n do
Begin
for j:=1 to n do Write(a[i,j]:8:3);
writeln;
End;
Vector(n,a,x);
Writeln(' ':20,'BEKTOP X');
for i:=1 to n do write(x:8:3);
writeln;
Porjdok(n,a);
Writeln(' ':5,'YPOR 1 CTROKI MATPICU A');
for i:=1 to n do
Begin
for j:=1 to n do Write(a[i,j]:8:3);
writeln;
End;
y:=Fyn(n,x);
Writeln('Rez y= ',y:10:3);
readln;
end.