Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> График функции, необходимо вывести график ф-ии 
:(
    Опции темы
Гость_NikoLLa
Дата 11.10.2005, 16:04 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Народ. Есть такая проблема: необходимо вывести на экран график функции. Функция задаётся пользователем. Как это сделать???

  Вверх
Spawn™Production®
Дата 11.10.2005, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Тестер ПО, VB.NET Developer
**


Профиль
Группа: Участник
Сообщений: 398
Регистрация: 12.4.2005
Где: Зеленоград

Репутация: нет
Всего: 12



Построение графиков функций

Это сообщение отредактировал(а) Spawn™Production® - 11.10.2005, 16:12


--------------------
ОС: WinXP SP2 Rus
Frameworks: v1.0.3705, v1.1.4322, v2.0.50215, v2.0.50727
Сам кодю на VB (6.0 (почти забросил), 7.1, 8.0)
PM WWW   Вверх
boevik
Дата 11.10.2005, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



использовать объэкт MSChart и вычисляя точки X и Y.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Kergan
Дата 11.10.2005, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.8.2005

Репутация: 3
Всего: 5



Но с ПРОИЗВОЛЬНЫМ графиком (когда пользовотель задает ф-ию) - отдельная песня.
Я решал эту задачу ф-ией EbExecuteLine из библиотеки vba6.dll
Код

private Declare Function EbExecuteLine Lib "vba5.dll" (ByVal pStringToExec As Long, _
ByVal Foo1 As Long, ByVal Foo2 As Long, ByVal fCheckOnly As Long) As Long

Тут ведь в чем проблема - тебе задана ф-ия f(x)=log(cos(sin(x)))
Ты, значит, должен АНАЛИЗИРОВАТЬ выражение. А это почти так же сложно, как написать компилятор. Но есть выход. Забиваешь выражение в строку, и каждый проход заменяешь x ф-ией Replace на какое-то числовое значение.
А... теперь что? Теперь у нас в строке то же арифметическое выражение, но с числом.... Теперь:
Код

dim s as string
s = "log(sin(cos(2)))"
s = Ima_globalnoi_peremennoi_v_strokovom_vide & "=" & s &":"
EbExecuteLine StrPtr(s), 0&, 0&, False

и в глобальной переменной будет нужно тебе значение. Потом можешь забить все это в цикл и построить график ПРОИЗВОЛЬНОЙ функции!
ЗЫ Если надо подробнее, пиши, расскажу.
ЗЗЫ
Ima_globalnoi_peremennoi_v_strokovom_vide - например, у тебя ГЛОБАЛЬНАЯ переменная GLB. Тогда Ima_globalnoi_peremennoi_v_strokovom_vide = "GLB".

Это сообщение отредактировал(а) Kergan - 11.10.2005, 17:58
--------------------
Была у меня дурацкая подпись...Я ее убрал, а новую еще не придумал. :(
PM MAIL ICQ   Вверх
Exception
Дата 11.10.2005, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Цитата(Kergan @ 11.10.2005, 18:53)
Я решал эту задачу ф-ией EbExecuteLine из библиотеки vba6.dll

она вроде вне среды не работает...
PM   Вверх
зашедший_на_свет
Дата 11.10.2005, 19:43 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











почему же? Ebexecuteline Очень даже работает, я пробовал.
To kergan: и такой алгоритм реально функционирует?
  Вверх
Exception
Дата 11.10.2005, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



у меня не работала..
проверю.
PM   Вверх
Guest
Дата 12.10.2005, 09:21 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Kergan @ 11.10.2005, 17:53)
А это почти так же сложно, как написать компилятор.
- Ерунда, делать нечего! Я такую программку использую в учебных целях. Можешь взять и посмотреть ее на suwor.narod.ru, а если надо код то кинь мне свой мэйл на [email protected]

  Вверх
NikoLLa
Дата 13.10.2005, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 13.9.2005
Где: Челябинск

Репутация: нет
Всего: нет



Kergan Не объяснишь, что это за ф-ия EbExecuteLine? А по подробней бы не помешало, а то мало понятно если честно. smile
[email protected] Я вам оставил свой мэйл([email protected])
PM MAIL   Вверх
Exception
Дата 13.10.2005, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Цитата(NikoLLa @ 13.10.2005, 17:37)
Не объяснишь, что это за ф-ия EbExecuteLine?

она динамически исполняет строку-программу на VB - он ведь интерпретатор smile
PM   Вверх
Kergan
Дата 15.10.2005, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.8.2005

Репутация: 3
Всего: 5



Здрасте, люди. Про EbExecuteLine - вот хорошая статья.
Пишем интерпретатор на VB
Только там не сказано, или не акцентировано внимание, на том, что EbExecuteLine может работать с глобальными переменными и вызывать глобальные функции. Очевидно, что это открывает принципиально новые возможности!
--------------------
Была у меня дурацкая подпись...Я ее убрал, а новую еще не придумал. :(
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0508 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.