dont stop
У меня есть функция f(x)=ax^2+bх+c
пользователь вводит свою функцию, потом при комплеляции выводятся коэфициенты a,b,c.
не представляюкак разбить функцию саму ax^2+bх+c на токены, чтобы определялись знаки цифры и т.д.
каждого оператора....(((
помогите

Делфи


Комментарии
11.02.2009 в 19:10

Псих
Пользователь вводит свою функцию строкой? (или выберает нужную из списка)

Что? Прям при компиляции выводятся? А зачем выводить а, б и ц?
11.02.2009 в 19:14

dont stop
да, вводится строкой там например:-4x^2+5x+3
потом нажимаем на кнопку и в Tlable расчитывается
а на выводе должно быть: а=-4 b=5 c=3
ну такое задание.
язык Делфи
11.02.2009 в 19:49

Жизнь это всего лишь игра теней
!!!Linkin Girl!!! Берешь, читаешь строку посимвольно и в зависимости от того что попадается сохраняешь нужные компоненты строки в переменные. Например если в строке попалось подряд x^2 значит перед ними стоит а. + это разделитель.....что тут непонятного? Нужно просто головой подумать. Можно конечно применить теорию конечных автоматов, но думаю это не тот случай :)
11.02.2009 в 20:10

dont stop
Виталькая в общем-то так и думала.осталось найти как посимвольно читать строку... давно это было
про теорию конечных автоматов нам сказали делать можно с помощью нее, но мы сами должны разбираться что-то.


Crazy Wizard нет, как раз смысл в том чтобы вывести а,б и с из строки
11.02.2009 в 20:27

"Да?" - сказал Волк и сломал ей ногу
Ну такая задача ты знаешь... Всё зависит от ограничений.

Можно ли написать -4*x + 2*x^2 + 3 ? Если нет - регэкспы в помощь. Для Delphi есть даже биндинги к PCRE.

Ежели нужно писать нормальный парсер - вариантов туча. Например, понаходить все чиселки, и посмотреть что после каждого из них стоит. По сути про это же и написал Виталька
11.02.2009 в 20:30

Жизнь это всего лишь игра теней
!!!Linkin Girl!!! Ну как работать со строками в Delphi это можно найти хотя бы в интернете. С такими элементарными вещами пора самим учиться разбираться, вы бы еще спросили как объявлять переменные....
Теория конечных автоматов универсальна и позволяет распознавать сложные последовательности, но если вы путаетесь в элементарном распознавании строки, то в эту область лучше пока не суйтесь. В вашем случае строка очень простая и легко распознается даже прямым чтением, нужно только мозги немного напряч.
11.02.2009 в 21:34

dont stop
спасибо.все сделаю)