Составители:
Рубрика:
109
Задача 4
Для заданных квадратных матриц:
33
}{
×
=
ij
aA и
44
}{
×
=
ij
bB
вычислить симметричные матрицы по правилу:
2
jiij
jiij
yy
xx
+
==
.
Вариант c процедурой
Program P4_P;
Type
matr = array[1..4, 1..4] of real;
Var
A, B, C, D: matr;
i, j: integer;
Procedure SM(Y: matr; n: integer; var X: matr);
var
i, j: integer;
begin
for i := 1 to n do
for j := i to n do
begin
x[i,j] := (y[i,j] + y[j,i])/2;
x[j,i] := x[i,j];
end;
end;
Begin
writeln(‘Введите матрицу A’);
for i := 1 to 3 do
for j := 1 to 3 do read(a[i,j]);
writeln(‘Введите матрицу В’);
for i := 1 to 4 do
for j := 1 to 4 do read(b[i,j]);
SM(A, 3, C);
SM(B, 4, D);
writeln(‘Симметричная матрица C’);
for i := 1 to 3 do
begin
for j := 1 to 3 do write(c[i,j]:6:2);
writeln;
end;
110
writeln(‘Симметричная матрица D’);
for i := 1 to 4 do
begin
for j := 1 to 4 do write(d[i,j]:6:2);
writeln;
end;
End.
Вариант c функцией
В задаче результатом вычисления подпрограммы является
массив (симметричная матрица). Чтобы оформить вариант про-
граммы с функцией, можно ввести фиктивный оператор, при-
сваивающий имени функции произвольное число, например
SM:=1;. В основной программе в этом случае объявляется фик-
тивная переменная (например,
L), которой присваивается значе-
ние функции. Такие действия необходимы для того, чтобы после
обращения к функции произошел возврат в основную программу
и продолжалось ее выполнение.
Program P4_F;
Type
matr = array[1..4, 1..4] of real;
Var
A, B, C, D: matr;
i, j, L: integer;
Function SM(Y: matr; n: integer; var X: matr): integer;
var
i, j: integer;
begin
for i := 1 to n do
for j := i to n do
begin
x[i,j] := (y[i,j] + y[j,i])/2;
x[j,i] := x[i,j];
end;
SM := 1;
end;
Задача 4 writeln(‘Симметричная матрица D’); Для заданных квадратных матриц: A = {aij }3×3 и B = {bij }4×4 for i := 1 to 4 do begin вычислить симметричные матрицы по правилу: for j := 1 to 4 do write(d[i,j]:6:2); y ij + y ji writeln; xij = x ji = . 2 end; Вариант c процедурой End. Program P4_P; Type Вариант c функцией matr = array[1..4, 1..4] of real; Var В задаче результатом вычисления подпрограммы является A, B, C, D: matr; массив (симметричная матрица). Чтобы оформить вариант про- i, j: integer; граммы с функцией, можно ввести фиктивный оператор, при- Procedure SM(Y: matr; n: integer; var X: matr); сваивающий имени функции произвольное число, например var SM:=1;. В основной программе в этом случае объявляется фик- i, j: integer; тивная переменная (например, L), которой присваивается значе- begin ние функции. Такие действия необходимы для того, чтобы после for i := 1 to n do обращения к функции произошел возврат в основную программу for j := i to n do и продолжалось ее выполнение. begin Program P4_F; x[i,j] := (y[i,j] + y[j,i])/2; Type x[j,i] := x[i,j]; matr = array[1..4, 1..4] of real; end; Var end; A, B, C, D: matr; Begin i, j, L: integer; writeln(‘Введите матрицу A’); Function SM(Y: matr; n: integer; var X: matr): integer; for i := 1 to 3 do for j := 1 to 3 do read(a[i,j]); var writeln(‘Введите матрицу В’); i, j: integer; for i := 1 to 4 do begin for j := 1 to 4 do read(b[i,j]); for i := 1 to n do SM(A, 3, C); for j := i to n do SM(B, 4, D); begin writeln(‘Симметричная матрица C’); x[i,j] := (y[i,j] + y[j,i])/2; for i := 1 to 3 do x[j,i] := x[i,j]; begin end; for j := 1 to 3 do write(c[i,j]:6:2); SM := 1; writeln; end; end; 109 110
Страницы
- « первая
- ‹ предыдущая
- …
- 52
- 53
- 54
- 55
- 56
- …
- следующая ›
- последняя »