![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Vad |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 23.11.2004 Репутация: нет Всего: нет |
Как я понял тут надо юзать Парсинг, но вот как его юзать я понять не могу, плз кто имел дело с этим помогите.
Надо сделать так чтобы когда пользователь вводил функцию(она может быть обсолюьно любая) то она просчитывалась с пдоставлением чисел в место переменых например от 1 до 100. Или как там график чертиться Спасибо за внимание. |
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Во первых:
http://www.codenet.ru/ Раздел: компиляторы. Я бы ещё скачал какой-нибудь модуль или компонент с открытым исходным кодом, для расчета выражений и посмотрел бы там. У меня вроде где то калькулятор валялся, который выражения вычисляет. |
|||
|
||||
| Vad |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 23.11.2004 Репутация: нет Всего: нет |
Спасибо, и если найдешь калькулятор этот пришли на мыло мне плз. [email protected].
Только я не могу понять в разделе компиляторы что смотреть?? |
|||
|
||||
| Vad |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 23.11.2004 Репутация: нет Всего: нет |
Народ ну помогите плз
|
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Vad Ну как чего смотреть? смотреть нада как устроены компиляторы потому что у тебя задача сходная с тем что приходится делать компилятору при трансляции программ из кода языка в машинный код...
|
|||
|
||||
| Vad |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 23.11.2004 Репутация: нет Всего: нет |
Е мое, во тчо я ввязался, надо разобраться, наверняка времени много уйдет, а тут еще и 9 класс экзамены
За ранее благодарен! |
|||
|
||||
| Vad |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 23.11.2004 Репутация: нет Всего: нет |
ау люди добрые, помогите мне ламеру плз
|
|||
|
||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 6 Всего: 137 |
Из этой программы я выдирал модуль рассчёта выражения по формуле.
Принцип такой. Задаёшь формулу, задаёшь что чему равно и он выдаёт ответ. То, что тебе надо. Придётся 10 минут покопаться в чужих исходниках, у меня программа с использованием этого модуля пропала Не разберёшься - пиши Авторство неизвестно, качалось с delphimaster.ru. PS По какой-то причине Кладовка на delphimaster.ru закрыта, поэтому авторство восстановить не удастся PPS У автора особое чувство юмора, не забудь мессаги исправить, которые появляются при ошибках PPPS Поддерживаются функции: sin, cos, exp, ln, tg, lg, max, min, log, ctg, ^, %. Это сообщение отредактировал(а) dm9 - 24.11.2004, 15:12 Присоединённый файл ( Кол-во скачиваний: 13 )
Translator.zip |
|||
|
||||
| Vad |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 23.11.2004 Репутация: нет Всего: нет |
че то я не розабрался, не пойму че такое j ^( Да и ваще код не очеьн понятен
|
|||
|
||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 6 Всего: 137 |
А если посидеть часок и поразбираться?
|
|||
|
||||
| Vad |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 23.11.2004 Репутация: нет Всего: нет |
сидел , не очень то понятнО
|
|||
|
||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 6 Всего: 137 |
Эх, блин... курс молодого бойца. Как использовать чужой код.
Этап A. Разведка Запускаем программу. Смотрим, что она делает. Что-то считает, стопудово. Видим внизу циферки: N=6 000 000 000, A=40. Изображаем из себя дурачка - вводим в строку "Y" (без кавычек). И - надо же, какое чудо! Там появляется типа ответ: 150000000. А что, если ввести такое: "Y^2+500*Sin(d)". Ты смотри-ка, выдал ответ! Значит, эта штуковина действительно умеет считать формулы!!! КРУТО! Убедившись, что придурок из форума нас не обманул, и эта программа действительно делает что надо, приступаем к этапу B. Этап B. Погружение Открываем исходники. Программа для открывания - Delphi. Блокнот - это следующий этап. Файл cal.dpr. Тыкаем Ctrl+F12 и выделяем там все файлы. Enter. Исходники открыты. Тыкаем Shift+F12. Выделяем единственную строчку. Enter. Форма проекта открыта. Всё. Можно приступать к процессу. Замечаем, что вычисление происходит при нажатии на кнопку "Вычислить". Смотрим обработчик этого события (нажав на этот самый пункт меню). Видим код. Процедура из целых семи строчек. Подумать только, здесь и есть всё, что нам надо!!! Как я пришёл к этому выводу? А очень просто. Здесь есть строчка "c:=TCalculator.Create;". Это означает создание объекта. Каков тип объекта? Класс, если хотите? TCalculator, конечно! Процесс инициализации, или настройки, если по-деревенски, обычно происходит ПОСЛЕ создания объекта. Только после создания заполняются поля и вызываются методы. Поскольку создание объекта происходит здесь, значит, и инициализация здесь же. Смотрим, как происходит эта инициализация. АГА, НАШЛИ! Мы проходимся по строкам TMemo (цикл) и выполняем "c.AddParam(memo.Lines[i]);"! То есть строку из Memo добавляем методом AddParam! Хорошо, но так мы зададим только дополнительные правила для вычисления выражения. Например, "X=14", "R=4", "D=X+R". Но где само выражение, которое надо вычислить? А это не следующая строчка? А как начать вычисление и получить ответ? Наверное, это метод GetValue(value)? Этап C. Переносим чужой код в наше приложение Здесь надо посмотреть, какие используются модули. Намёк - основной модуль прописан после строчки "implementation" файла main.pas, а затем надо посмотреть, какие файлы использует этот модуль. Копируем файлы к себе, подключаем их (uses), затем пишем то, что мы узнали: c := TCalculator.Create; c.AddParam ('X=4'); c.AddParam ('Y=5'); c.Expression := 'X+Y'; b := c.getValue (value). c.Free; Контрольный вопрос - где будет ответ, в b или в value, и каких они типов (смотреть в модуле, содержащем класс TCalculator, то есть Calculator.pas)? Не забывай вызывать Free, хотя автор этого и не делает - хорошая привычка всегда освобождать за собой память. Домашее задание - добавить к списку поддерживаемых функций функцию ch(x), равную 0.5(exp(x)+exp(-x)) и sh(x), равную 0.5(exp(x)-exp(-x)) Если что непонятно - с удовольствием отвечу, но готовое решение выкладывать не буду, так как у меня правило: с 25 числа каждого месяца не выкладывать готовые решения... |
|||
|
||||
| Vad |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 23.11.2004 Репутация: нет Всего: нет |
Если не разберусь до 1 декабря выложишь??
|
|||
|
||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 6 Всего: 137 |
Ты разбирайся, разбирайся
Что непонятно - спрашивай, отвечу. Решение не выложу Добавлено @ 23:13 Если после моих указаний не разберёшься, будет странно Если, конечно, тебе это действительно надо. Добавлено @ 23:17 Вернее, не так. Готовое решение я УЖЕ выложил, тебе осталось только это понять |
|||
|
||||
| Гость_Vad |
|
|||
|
Unregistered |
Там функций много не понятных (
|
|||
|
||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 6 Всего: 137 |
Например?
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |