Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

VB 6.0, Считывание функции(уравнения) с текстового поля.

79K
24 января 2012 года
shalyapin
2 / / 24.01.2012
Дали такое задание, создать приложение, где при вводе 3 параметров выдается ответ. 1 и 2 параметр - это число. А 3 параметр - это уравнение(функция). Все хорошо решается если саму функцию прописывать в коде. Но необходимо сделать так, чтобы мы сами вводили произвольную функцию... Помогите, пожалуйста, кто чем сможет, много форумов облазил...ничего похожего по теме не нашел...Заодно кину мою заготовку(она маленькая). В неё я ввел функцию x*x... Заранее спасибо...

Код:
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
277
24 января 2012 года
arrjj
1.7K / / 26.01.2011
погугли :D

Вот например одно из решений:
Подключаем в зависимостях 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
79K
24 января 2012 года
shalyapin
2 / / 24.01.2012
arrjj, спасибо за ответ.... но это не совсем то что мне нужно... я гугглил... уже использовал метод Eval... этот метод же будет считать уже готовое выражение, без использования переменных... Мне же необходимо, чтобы любая произвольная функция использовалась.... Т.е... я ввожу в текстовое поле уравнение, например x+2*x ; и программа сама считала результат...


я почитал, погуглил....и мне предлагают использовать "обратную польскую нотацию"... но код ее достаточно сложный... а готового на Vb нигде не нашел.... может у Вас есть что подобное..?

Прошу прощения, если чтото непонятно излагаю...
80K
24 января 2012 года
f_ka
1 / / 24.01.2012
попробуй посмотреть здесь http://www.codenet.ru/progr/vbasic/formulas.php
277
24 января 2012 года
arrjj
1.7K / / 26.01.2011
Цитата: shalyapin
arrjj, спасибо за ответ.... но это не совсем то что мне нужно... я гугглил... уже использовал метод Eval... этот метод же будет считать уже готовое выражение, без использования переменных... Мне же необходимо, чтобы любая произвольная функция использовалась.... Т.е... я ввожу в текстовое поле уравнение, например x+2*x ; и программа сама считала результат...


:facepalm:
Размести на форме кнопочку с текстом 'Сделать всё'.

Что тебе мешает просто заменить x на значение в строке?

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог