. , .
1. :
type quad_matr = array[1..n,1..n] of real;
mas_2d = array[1..n+m,1..10] of integer;
2. :
var A,B,C:array[1..5,1..10] of integer;
matr:array[1..m,1..m] of longint;
. , .8.1 4 4 . : , .. , . , n m (n´m).
-11 | -23 | -11 | -23 | -11 | -23 | ||||||||
-4 | -10 | -68 | -27 | -4 | -10 | ||||||||
-14 | -84 | -14 | -84 | -14 | -84 | ||||||||
-68 | -27 | -4 | -10 | -68 | -27 |
.8.1 . 8.2 . 8.3
3. [1..4,1..4] (.8.1) : [1,1]; [1,2]; [1,3]; [1,4]; [2,1]; [2,2]; [2,3]; [2,4]; [3,1]; [3,2]; [3,3]; [3,4]; [4,1]; [4,2]; [4,3]; [4,4].
(n´m) L n × m, [ i,j ] , ((i-1) × m + j) L.
. 1 .8.3 . .
4. M[1..2,1..3] :
type Matr= Array[1..3,1..2] of Integer;
const M: Matr= ((2, -8)
(-5, 41)
(53, -26));
, , .
5. a 5´4 , [0;1]:
var a:array[1..5,1..4] of real;
i,j:integer;
Begin
for i:=1 to 5 do
for j:=1 to 4 do a[i,j]:=random;
End.
6. a 5 5´4: , [0;1]
for i:=1 to 5 do begin
for j:=1 to 4 do write(' a[',i,',',j,']=',a[i,j]:8:6); { }
writeln; { }
End;
, - .
7. M[1..2,1..3] integer . . . , No.
|
|
. M_str, - M_stl Max. Max (-32768) integer. M_str 0 - : M_str=0. M_str=0 , , .
var a:array[1..2,1..3] of integer;
i,j,M_str, M_stl,Max:integer;
Begin
for i:=1 to 2 do { }
for j:=1 to 3 do begin
writeln('vvedite element a[',i,',',j,']='); { a[i,j] }
read(a[i,j]); { a[i,j] }
End;
for i:=1 to 2 do begin { }
for j:=1 to 3 do write(' a[',i,',',j,']=',a[i,j]:6); { }
writeln; { }
End;
Max:=-32768; M_str:=0; { Max M_str }
for i:=1 to 2 do
for j:=1 to 3 do
if(a[i,j]<0)and(a[i,j]> Max)then { Max }
begin Max:=a[i,j]; M_str:=i; M_stl:=j end; { Max, M_str M_stl }
if M_str=0 then writeln(' NO!') else {, Max }
writeln(' Max:=',Max,' M_str=',M_str,' M_stl=', M_stl); { }
End.
a, n, m. , , i j. , (n=m), . (4´4) .8.1. {m[1,1], m[2,2],..., m[n,n]}, . .8.1. : [1,1]=5, [2,2]=6, [3,3]=72, [4,4]=-27.
, . t. , , (n´m) (a[1..n,1..m]).
1. :
) r s:
for j:=1 to m do { 1 m }
begin t:=a[r,j];a[r,j]:=a[s,j];a[s,j]:=t end; { r,s }
) p q:
for i:=1 to n do { 1 n }
begin t:=a[i,p];a[i,p]:=a[i,q];a[i,q]:=t end; {. p,q }
.8.1 2 4 . 8.2, 1 2 - . 8.3.
2. :
) r c:
for j:=1 to m do a[r,j]:=a[r,j]*c; { 1- m, }
) p c:
for i:=1 to n do a[i,p]:=a[i,p]*c:= { 1- n, }
.8.1 2 1,5 . 8.4.
|
|
3. () , :
) r s, c:
for j:=1 to m do a[r,j]:=a[r,j]-a[s,j]*c; { 1- m, }
) + -.
.8.1 1 2, 3, . 8.5.
4. , :
a[1..n,1..m], - b[1.. m,1..n]:
for i:=1 to n do
for j:=1 to m do b[i,j]:= a[j,i];
.8.1 . 8.6.
5. () , () :
[1.. m,1..n] a[1..n,1..m] b[1..m,1..n]:
for i:=1 to n do
for j:=1 to m do [i,j]:= b[i,j]+a[j,i];
-11 | -23 | -29 | -59 | -4 | |||||||||
-6 | -15 | -68 | -27 | -11 | -14 | ||||||||
-14 | -84 | -14 | -84 | -23 | -68 | ||||||||
-68 | -27 | -4 | -10 | -10 | -84 | -27 |
.8.4 . 8.5 . 8.6
8. A[1..3,1..3] integer. A , , A, , A. , .
. A Str_max, - Stl_min, max, min. 7 , . A Str_max Stl_min. A .
var a,b:array[1..3,1..3] of integer;
i,j,max, min,Stl_min,Str_max,c:integer;
Begin
/// - 7
Str_max:=1; Stl_min:=1; max:=a[1,1]; min:=a[1,1]; { }
for i:=1 to 3 do { : Str_max- .. Stl_min . .}
for j:=1 to 3 do begin
if a[i,j]<min then
begin min:=a[i,j];Stl_min:=j end; { }
if a[i,j]>max then
begin max:=a[i,j];Str_max:=i end { }
End;
writeln(' Stl_min=',Stl_min,' Str_max=',Str_max); { }
:=A; { }
for i:=1 to 3 do
b[i,Stl_min]:=a[Str_max,i]; { }
for i:=1 to 3 do begin { }
for j:=1 to 3 do write(' b[',i,',',j,']=',b[i,j]:8); { }
writeln; { }
End;
End.
- , , , ..
.
1. ?
2. , (10´10), a[8,5]?
3. ?
4. ?
5. ?
6. ?
|
|
.
1. , :
) A[1..3,1..3],
) ,
) , ,
) .
. "", ( ) . 3. a ^ : ^ a. ( @ addr()), , , , ^.
, , . . . . , , .
, , . , , . , . , Delphi 4. , , , , .. . .
, , .
, ( ), - . , . .
1. :
typeT1DByteArray: Array of Byte; { } T1DIntArray = array of integer; { } T2DStringArray: Array of Array of string; { } var
B: T1DByteArray; { B T1DByteArray } StringMas: T2DStringArray; { StringMas T2DStringArray } Ar_Int:array of integer; { Ar_Int }
. (4 ) . 0 ( ), nil.
|
|
, 8 , 4- . ( -4) . ( -8) . , . 0 . , , 0 ( ).
Array_A:= Array_B , :
1) ,
2) Array_A ( ) Array_B, Array_A=nil.
. , , . , .
: Finalize .
, :
1) SetLength (mas, number) - mas number ( );
2) Length (mas) - mas;
3) Low (mas) _- mas ( 0 );
4) High (mas) - mas;
5) Copy(mas, start_imdex, number) - number mas, start_imdex;
6) Slice - (open arrays).
. SetLength. SetLength . , . , .
2. Ar_Int 1:
SetLength(Ar_Int,10);
10 - Ar_Int [0] Ar_Int [9].
Dyn_Ar Dyn_Ar[0] Dyn_Ar[Low (Dyn_Ar)].
3. Dyn_Ar integer: FillChar(Dyn_Ar [0],Length(Dyn_Ar)*sizeof(integer)); , , . .4 , :
var A,B: array of integer;
C: array[0..10] of integer;
Len, i: Integer;
Begin
Len:=4; SetLength (A,Len);// . (0,0,0,0)
for i:=0 to Len-1 do A[i]:=2*i;// . (0,2,4,6)
B:=A;// . (0,2,4,6)
for i:=0 to Len-1 do C[i]:=A[i];// . : C(0,2,4,6)
A[1]:=10;// : A[1]:=10
writeln (' Enter values of massiv elements:');
for i:=0 to Len-1 do
writeln (' A[',i,']=',A[i], ' B[',i,']=',B[i], ' C[',i,']=',C[i]);
A:=Copy(A,1,2);// 2 ([0],A[1]) [1], A[2]
|
|
writeln (' Finish values of massiv elements:');
for i:=0 to Len-3 do
writeln (' A[',i,']=',A[i],' B[',i,']=',B[i], ' C[',i,']=',C[i]);
SetLength(A,0); SetLength(B,0); //
End.
B :
, B:=A A B - A[1]:=10 [1]:=10. , A, .
, Copy A A B.
8.6.1.
() . , .
[1..n,1..m] L[0..n×m-1]. nm (i,j) ( 1≤ i ≤ n, 1≤ j ≤ m) Lk k L[0≤ k ≤n×m-1],
k = k (i, j, m) = (i-1)m +(j-1),
, (i,j) nm k. Lk , k. Lk (i,j) nm.
k = k (i, j, m) .
5. , :
1) M[1..n,1..n], - ,
2) M[1..n,1..n] ,
3) M[1..n,1..n] ,
4) M[1..n,1..n] , ,
5)) N[1..n,1..(n-1)] ,
6) , M N.
. i j, , , LM,LN. : n . LM LN n_elM n_elN.
var LM,LN: array of integer; { . LM,LN }
n,i,j,el,S,n_elM,n_elN: integer;
function k(i,j,m:integer):integer; { k = k (i, j, m) = (i-1)m +(j-1) }
begin k:= (i-1)*m + j -1; end;
Begin
writeln (' Vvedite razmernost:');read(n); { n }
SetLength (LM,n*n); { . LM M[1..n,1..n] }
for i:=1 to n do { }
for j:=1 to n do begin
writeln('vvedite element M[',i,',',j,']='); { M [i,j] }
read(el); LM[k(i,j,n)]:=el; { M [i,j] LM }
End;
for i:=1 to n do begin { M[1..n,1..n] }
for j:=1 to n do write(' M[',i,',',j,']=',LM[k(i,j,n)]:6); { }
writeln; { }
End;
S:=0; { S . - M[1..n,1..n]}
for i:=1 to n do S:=S+LM[k(i,i,n)];
writeln(' Sum of diagonal ejements=',S); { M}
SetLength (LN,n*(n-1)); { . LN N [1..n,1..(n-1)] }
n_elM:=-1;n_elN:=-1; { . LM,LN }
for i:=1 to n-1 do begin { . - }
n_elM:= n_elM+1; for j:=1 to n do begin n_elM:= n_elM+1; n_elN:=n_elN+1;
LN[n_elN]:=LM[n_elM] { N [1..n,1..(n-1)] }
End end;
for i:=1 to n do begin { N [1..n,1..(n-1)] }
for j:=1 to n-1 do write(' N[',i,',',j,']=',LN[k(i,j,n-1)]:6); { }
writeln; { }
End;
SetLength(LM,0); SetLength(LN,0); // LM LN
End.
k(i, j, m) = (i-1)m +(j-1), (i,j) ( [1..n,1..m]) Lk k L[0≤k≤n×m-1], . , [1..n,1..m,1..p] k(i, j, s, m,) (i,j,s) Lk k L[0≤ k ≤n×m×-1] :
k = k(i, j, s, m,) = (i-1)×m× + (j-1) × + (s-1).
.
1. , - ?
2. ?
3. ?
4. , ?
5. ?
6. ?
7. ?
.
1. , :
) n L[1..n] ,
) L[1..n] ,
) L[1..n].
2. , :
) M[1..n,1..n], - ,
) M[1..n,1..n] ,
) M[1..n,1..n] ,
) M [1..n,1..(n-1)] ,
) , M.