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

Программа должна уметь распознавать функции, записанные в TextBox

08.12.2012, 14:36. Показов 2933. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При запуске формы выводится пустой picturebox, кнопка и textbox. Вводим в textbox функцию, например sin(x), нажимаем кнопку, появляется синусоида. Я знаю всё, кроме как сделать так, что бы VB считывал функцию из textbox.
вот кусок кода
Visual Basic
1
2
3
For x = -10 To 10 Step 0.001
If Text1.Text <> "" Then Picture1.PSet (x, ?), vbRred
Next x
Что вставить вместо "?"?
Заранее благодарен!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.12.2012, 14:36
Ответы с готовыми решениями:

Программа должна уметь по команде создать односвязный список, добавить элемент в начало, середину или конец
Доброго времени суток всем читающим. Поступил на мехмат, но больше всего мозги делают с программированием. Задача состоит в том, чтобы...

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

Пользователь вводит 10 чисел программа должна выдать 2 максимальных(берём от 1 до 10,если выпадает 2 10,то программа должна выдать 2 10,а не 10,9)
#include &lt;iostream&gt; using namespace std; int main () { int number, largest_1, largest_2, counter = 1; cout«&quot;Vvedite 1oe...

11
 Аватар для Апострофф
9908 / 3919 / 742
Регистрация: 11.10.2011
Сообщений: 5,902
08.12.2012, 16:09
Как написать калькулятор, вычисляющий выражение в TextBox
Visual Basic
1
2
3
4
5
6
7
Private Sub Command1_Click()
Set objScript = CreateObject("MSScriptControl.ScriptControl")
objScript.Language = "VBScript"
For x = -10 To 10 Step 0.001
  If Text1.Text <> "" Then Picture1.PSet (x * 1000, 2000 + 1000 * objScript.eval(Replace(Text1.Text, "x", Str(x), , , vbTextCompare))), vbRred
Next x
End Sub
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,680
Записей в блоге: 14
08.12.2012, 22:49
Цитата Сообщение от girya24kg Посмотреть сообщение
Я знаю всё, кроме как
- т.е. проблема только в том, чтобы взять строку из текстбокса? Ну, это просто:

Visual Basic
1
Stri$=Text1.Text
А остальное (пропарсить строку, вычислить значение рекурсивным спуском или с двумя стеками) ты знаешь... Удачи!

Добавлено через 6 часов 29 минут
Апострфф, это хороший прием, но с неприятной ошибкой. Она проявится, если пользователь захочет воспользоваться функцией exp. Так что без парсера все равно не обойтись...
1
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
09.12.2012, 00:13
Лучший ответ Сообщение было отмечено как решение

Решение

ScriptControl - это не только ценный мех вычислитель выражений, но и интерактивная программная среда, в которой можно создавать процедуры и функции, а потом вызывать их:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Command1_Click()
Set objScript = CreateObject("MSScriptControl.ScriptControl")
objScript.Language = "VBScript"
On Error Resume Next
objScript.AddCode ("Function UserFunc(x)" & _
                "UserFunc = " & Text1.Text & _
                "End Function")
If Err Then MsgBox "Неверный синтаксис функции!": Exit Sub
For x = -10 To 10 Step 0.001
'    Debug.Print x, objScript.Run("UserFunc", x)
    Picture1.PSet (x * 1000, 2000 + 1000 * objScript.Run("UserFunc", x)), vbRred
Next x
End Sub
Соответственно, с exp(x) никаких проблем
5
 Аватар для Denri
179 / 57 / 0
Регистрация: 10.07.2012
Сообщений: 347
Записей в блоге: 2
09.12.2012, 02:19
Цитата Сообщение от girya24kg Посмотреть сообщение
Я знаю всё, кроме как сделать так, что бы VB считывал функцию из textbox.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Option Compare Text
Option Explicit
Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Foo1 As Long, ByVal Foo2 As Long, ByVal fCheckOnly As Long) As Long
 
 
Private Sub Command1_Click()
If Len(Text1.Text) <> 0 Then
Dim Result As Boolean, Code As String
Code = Text1.Text
Result = EbExecuteLine(StrPtr(Code), 0&, 0&, False) = 0
txtCode.SetFocus
End Sub
НЕ ОФИЦАЛЬНАЯ функция(aip)
Пишешь код в Text1 на VB6 и он обрабатывает его (там напиши как тебе надо чтобы синусоиду на рисовал на picturebox прям в Text1 и все)
PS подходит тока к VB6
2
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 4
09.12.2012, 11:05  [ТС]
Ничего не вышло...VB так и не может понять что я ему пишу в текстбоксе...
Вместо ? я поставил переменную fun.
Visual Basic
1
2
3
4
fun=text1.text
For x = -10 To 10 Step 0.001
If Text1.Text <> "" Then Picture1.PSet (x, fun), Str(Form2.Text1)
Next x
При вводе чисел, график рисуется, соответвенно в виде прямой. Как только я ввожу какую-либо функцию сразу вылазиет ошибка несовпадения типов и в отладке указывается эта строка:
Visual Basic
1
If Text1.Text <> "" Then Picture1.PSet (x, fun), Str(Form2.Text1)
Навожу на x - он равен -10, навожу на fun он равен x. Но он не понимает что это за x. Помогите всё же решить эту проблему.

P.S. Под словами "я знаю всё, кроме как" я имел в виду, что в данной программе мне непонятно, пока, только как вытащить это значение из текстового поля.
0
 Аватар для Апострофф
9908 / 3919 / 742
Регистрация: 11.10.2011
Сообщений: 5,902
09.12.2012, 11:28
girya24kg, а ты пробовал то, что тебе предлагали
Вложения
Тип файла: zip SinX.zip (1.3 Кб, 53 просмотров)
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,680
Записей в блоге: 14
09.12.2012, 12:35
Цитата Сообщение от Казанский Посмотреть сообщение
Соответственно, с exp(x) никаких проблем
- это вариант. Но то, что я писал про exp, относилось к коду Апостроффа.
0
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 4
09.12.2012, 12:47  [ТС]
Спасибо!

Добавлено через 11 минут
Цитата Сообщение от Казанский Посмотреть сообщение
ScriptControl - это не только ценный мех вычислитель выражений, но и интерактивная программная среда, в которой можно создавать процедуры и функции, а потом вызывать их:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Command1_Click()
Set objScript = CreateObject("MSScriptControl.ScriptControl")
objScript.Language = "VBScript"
On Error Resume Next
objScript.AddCode ("Function UserFunc(x)" & _
                "UserFunc = " & Text1.Text & _
                "End Function")
If Err Then MsgBox "Неверный синтаксис функции!": Exit Sub
For x = -10 To 10 Step 0.001
'    Debug.Print x, objScript.Run("UserFunc", x)
    Picture1.PSet (x * 1000, 2000 + 1000 * objScript.Run("UserFunc", x)), vbRred
Next x
End Sub
Соответственно, с exp(x) никаких проблем
На функции работает, а на числа нет...как так?. На x тоже не работает...
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,680
Записей в блоге: 14
09.12.2012, 13:05
Цитата Сообщение от girya24kg Посмотреть сообщение
На x тоже не работает.
- не могу удержаться... Классная формулировка!
0
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 4
09.12.2012, 13:29  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
- не могу удержаться... Классная формулировка!
ахахха
Главное - смысл понятен

Быть может вы сможете мне помочь?

Добавлено через 17 минут
Хммм...Программа казанского считает оказывается
Нужно только функцию в скобках вводить
0
1548 / 1521 / 325
Регистрация: 03.10.2012
Сообщений: 1,551
09.12.2012, 14:42
Попробуй вот это. Делал когда то для сына. Немного сыровато, но если захочешь, сам доработаешь.
Вложения
Тип файла: rar График.rar (3.1 Кб, 62 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.12.2012, 14:42
Помогаю со студенческими работами здесь

Сохранить в TextBox записанные в него цифры
Как сделать, чтобы при нажатии кнопки Save(кнопка на форме) в нескольких TextBox сохранились бы последние значения и, чтобы в дальнейшем...

Какие функции должна выполнять программа «файловый сервер»?
Подскажите какие функции должна выполнять программа из задания и как это реализовать в WindowsForm? Возможно есть примеры подобных...

Программа должна считать производную,более менее точно от функции.
Привет помогите разобраться.Программа должна считать производную,более менее точно от функции.У меня считает но,параметр r не влияет на...

Программа должна вычислять значение функции cos(x) действительного аргумента x
Написать программу для вычисления значения функции cos(x) действительного аргумента x с точностью ε с использованием рекурсии. Если...

Как перенести данные записанные в multiline textbox в excel?
Добрый вечер! Никак не могу найти ответ как перенести данные записанные в multiline textbox в excel, но так чтоб в каждой ячейке было...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru