Private Sub Command1_Click()
A = Val(Text1.Text)
B = Val(Text2.Text)
h = 0.01
N = (B - A) / h
S1 = 0
For i = 1 To N - 1
S1 = S1 + f(h * i + A)
Next i
S2 = 0
For i = 1 To N
S2 = S2 + f(h * (i + (i - 1)) / 2 + A)
Next i
S = h / 3 * (0.5 * f(A) + S1 + 2 * S2 + 0.5 * f(B))
MsgBox "Интеграл = " & S
End Sub
Function f(x) As Single
f = x * x
End Function
VB 6.0, Считывание функции(уравнения) с текстового поля.
Дали такое задание, создать приложение, где при вводе 3 параметров выдается ответ. 1 и 2 параметр - это число. А 3 параметр - это уравнение(функция). Все хорошо решается если саму функцию прописывать в коде. Но необходимо сделать так, чтобы мы сами вводили произвольную функцию... Помогите, пожалуйста, кто чем сможет, много форумов облазил...ничего похожего по теме не нашел...Заодно кину мою заготовку(она маленькая). В неё я ввел функцию x*x... Заранее спасибо...
погугли :D
Вот например одно из решений:
Подключаем в зависимостях Scripting library
Вот например одно из решений:
Подключаем в зависимостях Scripting library
Код:
Option Explicit
Private objScript As Object
Private Sub Command1_Click()
MsgBox objScript.Eval("(3 + 1) * (2 + 4)")
End Sub
Private Sub Form_Load()
Set objScript = CreateObject("MSScriptControl.ScriptControl")
objScript.Language = "VBScript"
End Sub
Private objScript As Object
Private Sub Command1_Click()
MsgBox objScript.Eval("(3 + 1) * (2 + 4)")
End Sub
Private Sub Form_Load()
Set objScript = CreateObject("MSScriptControl.ScriptControl")
objScript.Language = "VBScript"
End Sub
я почитал, погуглил....и мне предлагают использовать "обратную польскую нотацию"... но код ее достаточно сложный... а готового на Vb нигде не нашел.... может у Вас есть что подобное..?
Прошу прощения, если чтото непонятно излагаю...
попробуй посмотреть здесь
Цитата: shalyapin
arrjj, спасибо за ответ.... но это не совсем то что мне нужно... я гугглил... уже использовал метод Eval... этот метод же будет считать уже готовое выражение, без использования переменных... Мне же необходимо, чтобы любая произвольная функция использовалась.... Т.е... я ввожу в текстовое поле уравнение, например x+2*x ; и программа сама считала результат...
:facepalm:
Размести на форме кнопочку с текстом 'Сделать всё'.
Что тебе мешает просто заменить x на значение в строке?