Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 3

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

24.01.2012, 09:23. Показов 3528. Ответов 5
Метки нет (Все метки)

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

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.01.2012, 09:23
Ответы с готовыми решениями:

Считывание текстового файла
Коллеги! Уперся в стену непонимания. Есть файл с данными, такого вида: 2015.11.02 00:05:01,1.10307,1.10329 2015.11.02...

Точное считывание с текстового файла
здравствуйте, на j:\ лежат файлы С_помощью_ADO_и_SQL_опрашивать_текстовые_файлы.txt ID;Name;Price; 1 ;Chairs ;$40.00 ; ...

Считывание значение из текстового поля
Здравствуйте php-прогарммисты (я новичёк), находил на форуме темы похожие на то что мне нужно но толкового всё равно ничего не нашёл....

5
118 / 118 / 10
Регистрация: 12.05.2010
Сообщений: 1,207
24.01.2012, 12:32
Функция Eval позволяет найти значение выражения, сводящегося к строковому или числовому значению.
Строка, которая собирается в результате определенных действий, обрабатывается функцией Eval как реальное выражение. Функция Eval сначала находит значение строкового выражения, а потом возвращает соответствующее значение. Например, Eval("1 + 1") возвращает 2.
Если передать в функцию Eval строку, содержащую имя и аргументы функции, то функция Eval возвращает значение функции. Например, Eval("Chr$(65)") возвращает «A».

Синтаксис

Eval(строковоеВыражение)

Аргумент строковоеВыражение представляет выражение, задаваемое строкой. Например, строковоеВыражение может задавать функцию, возвращающую строку или число, или являться ссылкой на элемент управления в форме. Необходимо, чтобы значением аргумента строковоеВыражение были строка или число; значением этого аргумента не может быть объект Microsoft Access.

Примечание При передаче имени функции в качестве аргумента строковоеВыражение в функцию Eval необходимо заключить это имя в кавычки. Например:

Debug.Print Eval("СписокИмен()") ' СписокИмен - функция, определенная пользователем.

Debug.Print Eval("StrComp(""Joe"",""joe"", 1)")

Debug.Print Eval("Date()")
0
 Аватар для SlavaRus
1124 / 237 / 37
Регистрация: 15.03.2010
Сообщений: 728
24.01.2012, 12:57
Пример
Visual Basic
1
2
3
4
5
6
7
8
Public Function EvalFunc(Func As String, X_Val As Double) As Double
Func = Replace(Func, "x", Str(X_Val))
EvalFunc = Application.Evaluate(Func)
End Function
 
Public Sub test()
MsgBox EvalFunc("x*x+1", 2.5)
End Sub
0
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 3
24.01.2012, 17:00  [ТС]
Спасибо за ответ...! но это не совсем то.... я уже пытался осуществить это с помощью Eval... но этот метод же будет считать уже готовое выражение, без использования переменных... Мне же необходимо, чтобы любая произвольная функция использовалась.... Т.е... я ввожу в текстовое поле уравнение, например x+2*x ; и программа сама считала результат...
я почитал, погуглил....и мне предлагают использовать "обратную польскую нотацию"... но код ее достаточно сложный... а готового на Vb нигде не нашел.... может у Вас есть что подобное..?

Прошу прощения, если чтото непонятно излагаю...
0
 Аватар для SlavaRus
1124 / 237 / 37
Регистрация: 15.03.2010
Сообщений: 728
24.01.2012, 17:16
Код как раз и считает введенную функцию ("x*x+1", 2.5) , а 2.5 это значение x(переменная). Правда есть ограничение, в названии функции не должно быть латинской буквы x. Я написал код просто для идеи. Вам надо взять из текст-бокса введенную функцию в виде строки, и передать ее как параметр. В Ёкселе все работает.
Visual Basic
1
2
3
4
5
6
7
8
9
Public Function EvalFunc(Func As String, X_Val As Double) As Double
Func = Replace(Func, "x", Str(X_Val))
EvalFunc = Application.Evaluate(Func)
End Function
 
Public Sub test()
MsgBox EvalFunc("x*x+1", 2.5)
MsgBox EvalFunc("sin(x)^2", 3.14 / 2)
End Sub
Для примера добавил sin(x)^2. Или стоит задача написать свой анализатор кода?
0
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 3
25.01.2012, 08:42  [ТС]
SlavaRus.... Спасибо за идею....сейчас попробую что нибудь сделать...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.01.2012, 08:42
Помогаю со студенческими работами здесь

Считывание из текстового поля и приобразование в инт
Есть текстовое поле jTextField1, в него печатаю число. Как его преобразовать в инт и записать в переменную? Делал вот так: int num =...

Считывание функции из поля edit
Доброго дня) Для решения задачи в общем виде нужно, чтобы пользователь мог сам вводить функцию с клавиатуры, а дальше пойдут простейшие...

Считывание функции из поля edit - Scilab
Добрый день. Нужно реализовать метод Рунге-Кутта с графическим интерфейсом, пользователь в поле edit вводит функцию, а дальше идут...

Считывание пар чисел из текстового документа и подстановка значений в график функции
Здравствуйте, уважаемые форумчане! Столкнулся с проблемой, нужно написать программу для построения графика функций, заданной парой чисел в...

При изменении содержимого 1-го поля изменяется содержимое 2-го текстового поля.
На Web-форме имеются два текстовых поля. При изменении содержимого 1-го поля изменяется содержимое 2-го текстового поля. Private Sub...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных выбран регистр накопления, в. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru