Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия, Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки
Здравствуйте, уважаемые участники форума! Мне нужен ваш совет в написании программы калькулятора выражений.
Выражения сложные: есть функции, пять бинарных операций + - * / ^, скобки и унарный минус. Как раз последний и побудил меня обратиться к вам. Поясню: калькулятор я почти написал, пользуясь бесхитростным алгоритмом замены в строке, однако из-за унарного минуса логика алгоритма стабильно "горит".
У меня есть месяц и я хотел бы переписать эту программу на более толковую. Однако знаний по соответствующим алгоритмам для этого мне явно недостает. Поэтому и прошу мне подсказать хороший способ реализации и быть может подкинуть пару идей. Язык программирования - С.
Pphantom
Re: Нужен совет в написании программы на С
03.04.2014, 14:57
Можно предварительно преобразовать унарный минус в "функцию" с другим обозначением (поскольку унарный минус может находиться только в самом начале выражения или после открывающей скобки, это несложно сделать). Однако правильнее было бы не возиться с преобразованиями строк, а написать парсер, преобразующий выражение в т.н. "обратную польскую запись".
Ну и, вообще говоря, язык для этой цели Вы выбрали не самый подходящий. Это критично?
Да вообще от унарного минуса откажитесь. И пишите вместо и вместо
shukshin
Re: Нужен совет в написании программы на С
03.04.2014, 15:11
Pphantom, критика выбора языка не принимается по той причине, что это единственный язык, который я знаю , вообще говоря, изучаю.
_Ivana
Re: Нужен совет в написании программы на С
03.04.2014, 15:16
вот так (то есть, вот так) это надо делать и никак, имхо, иначе. ЗЫ а вообще-то, пора бы и самому научиться пользоваться гуглом. ЗЗЫ критика выбора языка имхо неуместна.