Предмет: Информатика,
автор: SemAl18
VBA.Нужно составить алгоритм расчета функции y=3x^2-6x+5 при x∈[-5;5] с шагом (h) равным 0.1. Я составил, но алгоритм не работает должным способом. Где ошибся?
Sub Alg_1()
Dim xN, xK, x As Integer
Dim y, h As Single
xN = -5
xK = 5
h = 0.1
x = xN
Do While x <= xK
y = 3 * x ^ 2 - 6 * x + 5
MsgBox (y)
x = x + h
Loop
End Sub
Ответы
Автор ответа:
0
Sub Alg_1()
xN = -5: xK = 5: h = 0.1
x = xN: i = 1
Do While x <= xK
y = 3 * x ^ 2 - 6 * x + 5
Cells(i, 1) = x: Cells(i, 2) = y
x = x + h: i = i + 1
Loop
End Sub
Во вложении файл с рабочей книгой MS Excel 2003. Макрос на листе 1.
Теперь о Вашей ошибке
Dim xN, xK, x As Integer
Dim y, h As Single
xN = -5
...
h = 0.1
x = xN
...
x = x + h
Такое описание означает, что xN, xK будут типа Variant, х - типа Integer.
y тоже будет типа Variant, h - типа Single.
При выполнении опeратора x=x+h целочисленное x сначала увеличится на 0.1, а затем дробная часть будет отброшена. Поэтому х постоянно будет равен xN и цикл станет бесконечным.
xN = -5: xK = 5: h = 0.1
x = xN: i = 1
Do While x <= xK
y = 3 * x ^ 2 - 6 * x + 5
Cells(i, 1) = x: Cells(i, 2) = y
x = x + h: i = i + 1
Loop
End Sub
Во вложении файл с рабочей книгой MS Excel 2003. Макрос на листе 1.
Теперь о Вашей ошибке
Dim xN, xK, x As Integer
Dim y, h As Single
xN = -5
...
h = 0.1
x = xN
...
x = x + h
Такое описание означает, что xN, xK будут типа Variant, х - типа Integer.
y тоже будет типа Variant, h - типа Single.
При выполнении опeратора x=x+h целочисленное x сначала увеличится на 0.1, а затем дробная часть будет отброшена. Поэтому х постоянно будет равен xN и цикл станет бесконечным.
Приложения:
Похожие вопросы
Предмет: География,
автор: kovsarovatatana39
Предмет: Обществознание,
автор: djamb98
Предмет: Математика,
автор: chehovskavaleria09
Предмет: Математика,
автор: alenaza1
Предмет: Физика,
автор: BlackAlyona