PDA

Просмотр полной версии : Проверка кода VBA



7772014
16.01.2015, 21:22
Задание:Дан массив A = {28, 5.6, 3.67, 4.8, 1.5, 2.7, 7.18, 3.15}. Сформировать новый массив Z(8) по правилу:
если {X}_{i}<=0.5*(m+k)
то {Z}_{i}=3.6 * X(j) + 4.8
если X (j) > 0.5 * (m + k)
то Z(l) = 4.8 * X(j) ^ 2 - 3.16
где m и k - соответственно максимальный и минимальный элементы массива X(8), сформированного по правилу: xi = sin (ai).
Код:
Private Sub CommandButton1_Click()
Dim N As Byte, A(1 To 8) As Integer, X(1 To 8) As Integer, Z(1 To 8) As Integer
Dim j As Byte, i As Byte, l As Byte
N = InputBox(8)
For i = 1 To 8
A(1) = InputBox(28)
A(2) = InputBox(5.6)
A(3) = InputBox(3.67)
A(4) = InputBox(4.8)
A(5) = InputBox(1.5)
A(6) = InputBox(2.7)
A(7) = InputBox(7.18)
A(8) = InputBox(3.15)
Next i
Cells(1, 1) = "Исходный массив"
For i = 1 To 8
Cells(2, 1 + i) = A(i)
Next i
j = 0
For i = 1 To 8
j = j + 1
X(j) = Sin(A(i))
Next i
m = Max = 0
For i = 1 To 8
If X(j) > Max Then Max = X(j)
Next
k = Min = 9999999
For i = 1 To 8
If X(j) < Min Then Min = X(j)
Next i
l = 0
For i = 1 To 8
If X(j) <= 0.5 * (m + k) Then
l = l + 1
Z(l) = 3.6 * X(j) + 4.8
Else
X (j) > 0.5 * (m + k)
l = l + 1
Z(l) = 4.8 * X(j) ^ 2 - 3.16
End If
Next i
Cells(4, 1) = "Сформированный массив"
For j = 1 To l
Cells(5, 1 + i) = Z(i)
End Sub
Исправте ошибку в коде пожалуйста и составте алгоритм если не трудно.