![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
oleeg |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 27.11.2006 Репутация: нет Всего: нет |
Все привет! Я пишу программу, строящую график функции. В целях самообучения. Как можно сделать так, чтобы читать из текстбокса информацию o функции, которую ввел пользователь? Скажем, при нажатии кнопки. Пробовал так:
Выводит
Почему так? Так все нормально строиться
Т е как распознать функцию, грубо говоря? Это сообщение отредактировал(а) oleeg - 18.7.2008, 01:18 |
||||||
|
|||||||
SKrivosein |
|
||||
![]() Идущий в даль ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 9.6.2007 Где: Praha - Прага Репутация: нет Всего: 8 |
Не понял чо делает твой код(первый и второй) ,ну ладно, может так...
Хотя этот делает тоже.
Это сообщение отредактировал(а) SKrivosein - 18.7.2008, 02:49 |
||||
|
|||||
nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: нет Всего: 26 |
а зачем нужен x ?
![]() -------------------- Жизнь - печальная штука. |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
вопрос просто шедевральный
![]() -------------------- СУВ, Partizan. |
|||
|
||||
oleeg |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 27.11.2006 Репутация: нет Всего: нет |
какой есть
![]() смысл в том, что пользователь вводит функцию в текстбокс, а мне нужно ее прочитать. как это можно реализовать? |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
oleeg, что значит прочитать функцию?))))
я так подозреваю, что пользователь вводит например "x*2+21" а вы хотите чтобы текстбокс вам всё почситал и выдал результат - так?))) -------------------- СУВ, Partizan. |
|||
|
||||
oleeg |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 27.11.2006 Репутация: нет Всего: нет |
))
не, не так. Пользователь вводит "x*2+21", из текстбокса извлекаеться text, распознаеться, так сказать, преобразовываеться и по этому строиться график )) Добавлено через 1 минуту и 28 секунд я не знаю, как это лучше объяснить. типа разбор строки из текстбокса. |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
oleeg, )))
1. текст из текстбокса выдрать не проблема... 2. кем распознаётся? что должно быть результатом распознавания? 3. опять же кем преобразовывается? во что преобразовывается? вы хотите чтобы вам Convert.ToInt32("x*2+21"); выдал массив точек для построения графика? ![]() -------------------- СУВ, Partizan. |
|||
|
||||
oleeg |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 27.11.2006 Репутация: нет Всего: нет |
Понятно, что так не получиться ) пробовал я )) а как еще можно распознать? есть какой-нибудь алгоритм? |
|||
|
||||
Rififi |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: нет Всего: 36 |
oleeg,
если бы нужно было сделать быстро, я бы сделал так - подключил бы к проекту Microsoft <что-то там> Script Control (выполнение скрпитов) - полученную из TextBox строку преобразовал к виду "function f(x) { return x*2 + 21; }" - в цикле вызвал ScriptControl для всех x из заданного диапазона - полученные от ScriptControl значения собрал бы в массив List<int> кривовато, зато выражение самому парсить не придётся (а оно может быть и посложнее...) |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
Rififi, зато для мозга полезнее )
з.ы. oleeg, если всё-таки захочешь парсить руками, то ищи алгоритм "Обратная польская нотация". В своё время писал разбор сложных выражений на основе ОПН...не раз пригодилось в жизни -------------------- СУВ, Partizan. |
|||
|
||||
oleeg |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 27.11.2006 Репутация: нет Всего: нет |
Rififi, Partizan
Спасибо. Думаю, буду руками парсить все-таки. |
|||
|
||||
mihryak |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 2 Всего: 36 |
можно сборку скомпилить, содержащую функцию
для функции одной переменной (на досуге для себя написал)
использование:
имя переменной - x, в TextBox'е текст должен быть в правильном c# формате (для вычисления синусов, например, надо писать Math.Sin(x)) ![]() Это сообщение отредактировал(а) mihryak - 20.7.2008, 01:38 |
||||
|
|||||
oleeg |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 27.11.2006 Репутация: нет Всего: нет |
mihryak
Благодарю. Буду разбираться. Я все-таки решил использовать ZedGraph, а в нем введу все стандартные функции в таком виде a*Sin(b*x+c) + d, вручную задаються кооэфициэнты. Так, думаю, будет проще. |
|||
|
||||
oleeg |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 27.11.2006 Репутация: нет Всего: нет |
mihryak Вы это приложение для себя писали, на досуге? Если не трудно, не могли бы Вы выложить исходники. Будет с чем сравнить)
А то я че-то такого намутил в своей программе, строящей график функции, там можно аж настроить 3 цвета и угол заливки символа ( это точка на графике). ![]() |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |