0 / 0 / 0
Регистрация: 14.12.2010
Сообщений: 26
|
||||||
1 | ||||||
Распознавание формулы со сложными математическими функциями в строке14.12.2010, 13:28. Показов 8675. Ответов 9
Метки нет (Все метки)
Задание курсовика - распознать формулу функции введенную с клавиатуры и построить ее график (прикручу графику позже, сам код уже написан мной для лабы, да и мелочи буду вылизывать в конце), нашел превосходный способ распознавания, допилил и модифицировал его под себя, так что остался только один не решенный вопрос о том, как можно реализовать распознавание матем. функций, на подобии sin, cos, log и других, на мой взгляд основная сложность заключается в том что бы распознать то что находиться у этих функций в скобках, не представляю как это можно реализовать, да и к тому же надо будет учитывать одз, хотя возможно есть и другие подводные камни о которых я и не ведаю (пока), хотелось бы услышать практических советов или примерчика какого нибудь, заранее благодарю)
До этого начинал с работать с польской записью, но этот метод, в плане вычисления показался мне несколько проще - проще реализация вычисления "сложных" выражений содержащих в перемешку разные по приоритету операции. Пишу на чистом Си, в BorlandC 3.1 Сам код, избавленный от моих попыток научить программу понимать мат. функции:
0
|
14.12.2010, 13:28 | |
Ответы с готовыми решениями:
9
Организация программы со сложными математическими расчетами Циклы со сложными математическими выражениям, как правильно записать?! Задача с математическими функциями Работа с математическими функциями sin и cos |
510 / 272 / 60
Регистрация: 14.12.2010
Сообщений: 548
|
||||||
14.12.2010, 22:05 | 2 | |||||
1 + ( 2 - 1 ) * 3 даёт правильные 4. А строка: 1+(2-1)*3 неправильные 7 Следует доработать разбор числа..
1
|
0 / 0 / 0
Регистрация: 14.12.2010
Сообщений: 26
|
|
14.12.2010, 23:00 [ТС] | 3 |
спасибо огроменное, а то уже кучу вариаций перебрал, но так и не сделал рабочий вариант, который бы понимал формулу в функциях, максимум число
за ошибку отдельное спасибо, преподаватель бы заметил, он всегда все замечает) буду поправлять как защищу выложу то что выйдет здесь, тема как я понял актуальная
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
||||||
15.12.2010, 00:30 | 4 | |||||
Вот, недавно писал распознаватель выражений любой сложности, понимает все стандартные функции библиотеки cmath, прикрутить другие проблем не составит. Правда получилось несколько громоздко:
5
|
0 / 0 / 0
Регистрация: 14.12.2010
Сообщений: 26
|
||||||
27.12.2010, 21:40 [ТС] | 5 | |||||
Спасибо всем за помощь, защитился на отлично
Как и обещал:
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
28.12.2010, 11:44 | 6 |
silent_1991, Красиво. Будет время - попробую тоже написать
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
28.12.2010, 13:45 | 7 |
ForEveR, да там главное грамматику составить - а дальше всё по ней прогается. Чем мне этот способ и нравится (я вроде уже в подобной теме это говорил) - несколько строк грамматики - подробный план для будущей программы. Можно даже не понимать (это, конечно, плохо, но как вариант), как всё это в программе происходит, и всё равно правильно её написать, и всё, опять же, благодаря грамматике.
0
|
25 / 9 / 17
Регистрация: 22.12.2015
Сообщений: 2,097
|
|
08.05.2016, 15:49 | 8 |
у меня ошибки выдает при компиляции на ваш код(27.12.2010, 22:40 [ТС] Распознавание формулы со сложными математическими функциями в строке).
0
|
25 / 9 / 17
Регистрация: 22.12.2015
Сообщений: 2,097
|
|
08.05.2016, 15:51 | 9 |
0
|
25 / 9 / 17
Регистрация: 22.12.2015
Сообщений: 2,097
|
|
08.05.2016, 16:06 | 10 |
silent_1991,хороший рабочий код.
Как сделать его что бы он понимал например 1/х вводим с клавиатуры или с файла строка,а сам х в цикле от -10 до 10 с шагом 0.1,то есть 200 значений получаем у. Ведь по 200 значениям график построим.А вот с одним никак 1/(-10)
0
|
08.05.2016, 16:06 | |
08.05.2016, 16:06 | |
Помогаю со студенческими работами здесь
10
Генерация исключительных ситуаций математическими функциями Что импортировать, чтобы пользоваться математическими функциями? Распознавание типа данных в строке Распознавание в строке только чисел(игнор символов) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |