Автор вопроса: GlooM | Web-сайт:newlc.info | ICQ: 348453688
Задача 1.
Необходимо найти минимальное значеие фун-ии y=sin(x)*x на отрезке CD (задаем сами) с шагом 0.001.
Решаю так:
Option Explicit
Const pi=3.1415
Public Sub L3Ex5()
Dim x, Xn, Xk, y, c As Double
Dim str As Integer
Xn = InputBox("Xn")
Xk = InputBox("Xk")
str = 1
Debug.Print "Y"
Cells(1, 1) = "Y"
For x = Xn To Xk Step 0.001
c = x*pi/180
y = sin(c)*x
str = str + 1
Debug.Print y
Cells(str, 1) = y
Next x
End Sub
Вопрос, как определить минимальное?
2. Вычислить значния фун-ии, представленной в виде ряда:
y = 1 + x + x^2/2! + x^3/3! + ... + x^n/n!
Option Explicit
Const pi = 3.14159265
Public Sub L3Ex3()
Dim x, Xn, Xk, y, c, b As Double
Dim str As Integer
Dim min As Double
Xn = InputBox("Xn"
Xk = InputBox("Xk"
str = 1
b = Xn * pi / 180
y = Sin(b) * Xn
min = y
For x = Xn To Xk Step 0.001
c = x * pi / 180
y = Sin(c) * x
str = str + 1
Debug.Print y
Cells(str - 1, 1) = y
If min > y Then min = y
Next x
Cells(1, 5) = "Min"
Cells(2, 5) = min
End Sub
Вроде все находит, а вот со второй что-то не получается...
Option Explicit
Public Sub L3Ex4()
Dim x As Double, y As Double
Dim F, i, n As Long
x = InputBox("x"
n = InputBox("n"
F = 1
For i = 1 To n
F = F * i
y = 1 + x ^ i / F
Next i
MsgBox y
End Sub
Когда ввожу х=3 и n=5, то все считает, а вот при х=2.5 - нет.. как сделать?! ))
Заранее спасибо!
- в ВБ6 все отмечать надо.. Но это не относится к проблеме.
2. Формат цифр зависит от региональных настроек - короче, у меня например разделитель чисел - это запятая, ввожу 2,5 - проглатывает, 2.5 - несоответствие типов. (В коде проблем нет у х=2.5 т.к. ВБ Английский и у них точка все разделяет ) - Думается что от этого, так что предупреждай пользователя о корректности ввода или пользуй VAL(InputBox("x") - у меня работает.
тоже и с n.
3. Проверять лучше, если вдруг пользователь нажмет отмену на вводе, то получишь 0 в переменную, т.е. я бы сделал еще вот что