daniil_im
30-05-2018, 20:59
Есть программа генерирующая массивы из N действительных чисел вводимых пользователем, которые необходимы для вычисления формулы: yi=a*xi^2+b*xi+c
Вот ее код:
A = 10
B = 5
C = 1
InDann = "A=" + CStr(A) + " B=" + CStr(B) + " C=" + CStr(C) + vbCrLf
do
N = InputBox(InDannX + "Введите количество элементов массива", "Y(i)=AX(i)^2+BX(i)+C")
If Not IsNumeric(N) Then exit do
N = CInt(N) - 1
If N < 0 Then exit do
ReDim X(N)
For i = 0 To N
X(i) = Rnd
Next
For Each xi In X
Y = A * xi ^ 2 + B * xi + C
MsgBox InDann + "X(i)=" + CStr(xi) + vbCrLf + "Y(i)=AX(i)^2+BX(i)+C= " + CStr(Y)
next
loop
Нужно реализовать вычисление через процедуру пользователя. Процедура не должна содержать глобальных переменных.
Вот что у меня получилось, правильно ли?
N= InputBox("Введите количество элементов массива")
ReDim x(N)
For i = 0 To N
x(i) = Rnd
Next
Call ForYi(N, x,yi)
MsgBox yi & vblf
Sub ForYi(ByVal N1,x(),yi)
a= 10
b= 5
c= 1
For i = 1 To N1
e = x(i)
z = a * e^2 + b * e + c
yi = yi & i & "ответ: " & z & vblf
Next
End Sub
Вот ее код:
A = 10
B = 5
C = 1
InDann = "A=" + CStr(A) + " B=" + CStr(B) + " C=" + CStr(C) + vbCrLf
do
N = InputBox(InDannX + "Введите количество элементов массива", "Y(i)=AX(i)^2+BX(i)+C")
If Not IsNumeric(N) Then exit do
N = CInt(N) - 1
If N < 0 Then exit do
ReDim X(N)
For i = 0 To N
X(i) = Rnd
Next
For Each xi In X
Y = A * xi ^ 2 + B * xi + C
MsgBox InDann + "X(i)=" + CStr(xi) + vbCrLf + "Y(i)=AX(i)^2+BX(i)+C= " + CStr(Y)
next
loop
Нужно реализовать вычисление через процедуру пользователя. Процедура не должна содержать глобальных переменных.
Вот что у меня получилось, правильно ли?
N= InputBox("Введите количество элементов массива")
ReDim x(N)
For i = 0 To N
x(i) = Rnd
Next
Call ForYi(N, x,yi)
MsgBox yi & vblf
Sub ForYi(ByVal N1,x(),yi)
a= 10
b= 5
c= 1
For i = 1 To N1
e = x(i)
z = a * e^2 + b * e + c
yi = yi & i & "ответ: " & z & vblf
Next
End Sub