0 / 0 / 1
Регистрация: 28.12.2013
Сообщений: 16
|
|
1
|
Обратная матрица Консоль Класс (ООП)
28.03.2017, 16:39. Показов 891. Ответов 0
Мне нужно приделать функцию обратной матрицы к этому консольному приложению.
Как мне передать значение в допустим ячейку A[i,j].
Здесь я так понял операция разыменования(не понял что такое, справочник есть)
Delphi | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
| program lab1;
{$APPTYPE CONSOLE}
uses
SysUtils;
const maxsize=100;
type MA1=^MA;
MA=array[1..maxsize,1..maxsize] of integer;
matrix=object
N,M: integer;
A:MA1;
constructor init;
procedure print;
procedure trans;virtual;
destructor done;
end;
constructor matrix.init;
var i,j: integer;
begin
writeln('Insert size of matrix');
readln(N);
M:=N;
getmem(A,4*N*M);
writeln('insert element');
for i:=1 to M do begin
for j:=1 to N do
read(A^[i,j]);
readln;
end;
end;
procedure matrix.print;
var i,j: integer;
begin
for i:=1 to M do begin
for j:=1 to N do begin
write(A^[i,j]);
write(' ');
end;
writeln;
end;
writeln;
end;
procedure matrix.trans;
var i,j,t: integer;
begin
writeln('trans matrix');
for i:=1 to N do
for j:=1 to i-1 do begin
t:=A^[i,j];
A^[i,j]:=A^[j,i];
A^[j,i]:=t;
end;
t:=N;
N:=M;
M:=t;
end;
destructor matrix.done;
begin
freemem(A,4*N*M);
end;
var
v1:MATRIX;
begin
v1.init;
v1.trans;
v1.print;
v1.done;
readln;
end. |
|
Другая программа
Её можно привинтить сюда?
Delphi | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| procedure Obratis;
var k, i, j: integer;
b: array[0..300, 0..300] of real;
begin
for k:=0 to kol - 1 do
begin
for i:=0 to kol - 1 do
for j:=0 to kol - 1 do
begin
if (i=k) and (j=k) then
b[i,j] := 1/obr[i,j];
if (i=k) and (j<>k) then
b[i,j] := -obr[i,j]/obr[k,k];
if (i<>k) and (j=k) then
b[i,j] := obr[i,k]/obr[k,k];
if (i<>k) and (j<>k) then
b[i,j] := obr[i,j] - obr[k,j] * obr[i,k]/obr[k,k];
end;
for i:= 0 to kol - 1 do
for j:= 0 to kol - 1 do obr[i, j]:= b[i, j];
end;
end; |
|
0
|