5 , , , =0.548 | |
, =0.833 | |
, , , , , =1.18, b=2.44, =0.564 |
2.12
VBA . . . .
(, , ..), , .
1.
, , - .
, 0 | -10 | -9 | -11 | -5 | +3 | -1 | +4 |
1 , [1] = -10; [2] = -9 .. , ().
2.
, , , 1 5.
.
, , .
, .
, , .
.
, , , n n-.
(), (, ). .
:
1 ;
2 ;
3 ;
4 .
3.
xi (5, 6, 7) → 3
1
integer
1..3
( ) . . . , , , (), . . , . .
|
|
2.12.1
.
:
Dim | Public | Private _ (_) As _
Dim | Public | Private ,
;
_ , ;
_
() .
60 .
As ,
;
_ , VBA
( ).
1.
Dim A (7) As Integer
() 8 , (0), (7).
.
2.
Dim B (4, 5) As Single
4 5 (), 5 6 .
. , 0 . , (General Declarations) Option Base 1. .
To .
3.
Dim A (1 To 7) As Integer
Dim B (1 To 4, 1 To 5) As Single
1.
,
4.
Dim Z (-3 To 7) As Single.
2.12.2
. . .
1.
Dim R () As Single.
, n, ReDim.
2.
ReDim R (1 To 3).
:
ReDim [Preserve] _ (_) As _
ReDim , , ;
Preserve , . , .
_ , ;
_ - () ( 60). Option Base, 0.
_ .
3.
Dim A () As Integer
|
|
Dim n As Integer ,
N = 9
ReDim A (n) 10
ReDim A (3 To n, 1 To n)
. ReDim , .
2.12.3
. . , , , .
1.
Dim A (1 To 2) As Byte, B (1 To 2) As Byte,
:
A = B | . |
2.
.
Sub primer ()
Dim A (1 To 2) As Byte, B (1 To 2) As Byte
Dim I As Byte
B(1) = 2
B(2) = 4
For I = 1 To 2
A(i) = B(i)
Debug.Print A(i), B(i)
Next i
End Sub
2.12.4
, () .
1.
Mas (2), VectorZ (10)
Mas VectorZ.
, . , , , ; , .
2.12.5
1 .
.
1.
Dim B (1 To 2, 1 To 3) As Single
B (1,1) = 2: B (1,2) = 4: B (1,3) = 6
B (2,1) = 1: B (2,2) = 6: B (2,3) = 2
2 .
.
2.
Sub primer ()
Dim A(1 To 12) As Variant
Randomize
For i = 1 To 10
A(i) = Rnd (40)
Debug.Print A(i)
Next i
End Sub
3
.
For.
3.
Dim M (1 To 9, 1 To 9) As Integer
Dim i As Integer
Dim j As Integer
For i = 1 To 9
For j = 1 To 9
M(i, j) = i * j
Next j
Next i
4
Array ()
Array, , , , Variant.
4.
Sub ShowArray ()
Dim A As Variant
A = Array (10, 20, 30)
Debug.Print A(0) : 10
Debug.Print A(2) : 30
End Sub
Array ()
Array , . Array.
5.
Option Base 1
Sub MultiDim ()
Dim A As Variant
A = Array (Array(-, ), Array (, ))
Debug.Print A (1) (1) : -
Debug.Print A (1) (2) :
End Sub
Array , , .
6.
Private Sub VarArray ()
Dim M As Variant
M = Array(Array(1,2), Array (3,4,5))
Debug.Print M (0) (0), M (1) (2) : 1 5
End Sub
2.12.6
1.
|
|
.
. VBA .
:
1 :
Sub primer()
Const n = 10
Dim N_max As Integer
Dim i As Integer
Dim Max As Single
Dim B(1 To n) As Single
B(1) = 0.2: B(2) = 1.4: B(3) = 0.6
B(4) = 0.121: B(5) = 0.77: B(6) = 9.45
B(7) = 8.21: B(8) = 0.4: B(9) = 0.3
B(10) = 4.11
Max = B(1)
N_max = 1
For i = 2 To n
If B(i) > Max Then
Max = B(i)
N_max = i
End If
Next i
Debug.Print "Max= " & Max & " N_max= " & N_max
End Sub
2 .
2.
Array () .
. .
:
1 :
Option Base 1
Sub primer()
Dim i As Integer
Dim Max As Single
Dim N_Max As Integer
Dim B As Variant
B = Array(0.1, 1.12, 3.12, 0.45, 101.47, 12.4, 10.12, 10.11, 6.47, 13.4)
Max = B(1)
N_Max = 1
For i = 2 To 10
If B(i) > Max Then
Max = B(i)
N_Max = i
End If
Next i
Debug.Print "Max= " & Max & " N_max= " & N_Max
End Sub
2 .
6
: -. 6 22 (2 ).
22
n, a1, a2, ,an. ak a1,a2,,an | |
n, a1, a2, ,an. ak a1,a2,,an 3 5. | |
n, a1, a2, ,an. ak a1,a2,,an . | |
n, a1, a2, ,an. ak a1,a2,,an . | |
n, a1, a2, ,an. ak a1,a2,,an . | |
n, q1, q2,, qn. qi q1, q2,, qn . | |
n, q1, q2,, qn. qi q1, q2,, qn 7 1.2 5. | |
n, q1, q2,, qn. qi q1, q2,, qn , . |
22
, | |
n. , . . | |
1,,50. , 5. | |
1,,50. , . | |
1,,50. , . | |
n, a1, a2, ,an. a1, a2, ,an 0.5, 0.1. | |
, | |
a, n, x1,,xn (n>0). , x1,,xn , . , 0. | |
n, a1, a2, ,an. a1, a2,,an . | |
n, a1, a2, ,an. a1, a2, ,an 7. . | |
a1, a2, ,a45. a1, a2, ,a35 a1, a2, ,a45. | |
+1 (1, 2, , 50), -1 . |
|
|
2.12.7 . .
1.
. n, n x 3. .
:
1 :
Sub primer()
Const n = 3
Const m = 3
Dim S As Single
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim A(1 To n, 1 To m) As Single
A(1, 1) = -11: A(1, 2) = 0: A(1, 3) = 2
A(2, 1) = 5: A(2, 2) = 45: A(2, 3) = 32
A(3, 1) = -3: A(3, 2) = 14: A(3, 3) = -25
S = 0
k = 0
For i = 1 To n
For j = 1 To m
If A(i, j) >= 0 Then S = S + A(i, j) Else k = k + 1
Next j
Next i
Debug.Print "S= " & S & " k= " & k
End Sub
2 .
2.
. m x n. b1, , bm, .
:
1 :
Option Base 1
Sub primer()
Dim i As Integer
Dim j As Integer
Dim M(1 To 3, 1 To 3) As Variant
Randomize
For i = 1 To 3
For j = 1 To 3
M(i, j) = Rnd(20)
Debug.Print ("M(" & i & j & ")=" & M(i, j))
Next j
Next i
For i = 1 To 3
Min = M(i, 1)
For j = 2 To 3
If M(i, j) < Min Then Min = M(i, j)
Next j
Debug.Print ("Min(" & i & ")= " & Min)
Next i
End Sub
2 .
3.
. n, n x 3. , .
:
1 :
Option Base 1
Sub primer()
Const m = 3: Const n = 4
Dim i As Integer
Dim j As Integer
Dim s As Single
Dim A(1 To m, 1 To n) As Integer
For i = 1 To m
For j = 1 To n
A(i, j) = i * j
Debug.Print "A(" & i & j & ")=" & A(i, j)
Next j
Next i
For j = 1 To n
s = 0
For i = 1 To m
s = s + A(i, j) / m
Next i
Debug.Print "s= " & s
Next j
End Sub
2 .
7
.
: -. 7 23, 24 (4 )
23
m´n. b1,,bm . | |
m´n. b1,,bm . | |
1, ,20 . , . | |
m´n. b1,,bm . | |
m´n. b1,,bm . | |
m´n. b1,,bm . | |
n, n´9. : ) ; ) , . | |
1, 2, 3. , . | |
, ,; b, ,b. , . | |
n. , | |
- . |
|
|
23
, , , . | |
n. , . | |
n´m, . . | |
12. , . | |
1,,8. 8: | |
n, . 11, 22,, nn. | |
6´9. . | |
20 , i- , =0.225. . | |
1, ,20 . , . |
24
, (1 ) ( , ..) 500 . =-/- - 1 ; C/ - 1 (); - .. | |||||||||||||||
, 1 .. | |||||||||||||||
4 . , , . [i,j]=c[i,j]+a[i,l]*b[l,j]. | |||||||||||||||
, . = / *100 ( - ). | |||||||||||||||
(..): 1993 : - 4500; - 4300 1994 : - 4460; - 4390 . | |||||||||||||||
($) 7 (). , $ . 1 2 3 4 5 6 7 4500 4520 4600 4750 5000 5120 5100 | |||||||||||||||
1990 1993 (111.4; 100.0; 67.7; 64.8). . | |||||||||||||||
, . , . |
24