2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Нужен совет в написании программы на С
Сообщение03.04.2014, 14:43 
Здравствуйте, уважаемые участники форума!
Мне нужен ваш совет в написании программы калькулятора выражений.

Выражения сложные: есть функции, пять бинарных операций + - * / ^, скобки и унарный минус. Как раз последний и побудил меня обратиться к вам.
Поясню: калькулятор я почти написал, пользуясь бесхитростным алгоритмом замены в строке, однако из-за унарного минуса логика алгоритма стабильно "горит".

У меня есть месяц и я хотел бы переписать эту программу на более толковую. Однако знаний по соответствующим алгоритмам для этого мне явно недостает. Поэтому и прошу мне подсказать хороший способ реализации и быть может подкинуть пару идей. Язык программирования - С.

 
 
 
 Re: Нужен совет в написании программы на С
Сообщение03.04.2014, 14:57 
Можно предварительно преобразовать унарный минус в "функцию" с другим обозначением (поскольку унарный минус может находиться только в самом начале выражения или после открывающей скобки, это несложно сделать). Однако правильнее было бы не возиться с преобразованиями строк, а написать парсер, преобразующий выражение в т.н. "обратную польскую запись".

Ну и, вообще говоря, язык для этой цели Вы выбрали не самый подходящий. Это критично?

 
 
 
 Re: Нужен совет в написании программы на С
Сообщение03.04.2014, 15:05 
Вот так это надо делать и никак, имхо, иначе.

 
 
 
 Re: Нужен совет в написании программы на С
Сообщение03.04.2014, 15:08 
Да вообще от унарного минуса откажитесь. И пишите $0-5$ вместо $-5$ и $4\cdot(0-3)$ вместо $4\cdot(-3)$

 
 
 
 Re: Нужен совет в написании программы на С
Сообщение03.04.2014, 15:11 
Pphantom, критика выбора языка не принимается по той причине, что это единственный язык, который я знаю :D , вообще говоря, изучаю.

 
 
 
 Re: Нужен совет в написании программы на С
Сообщение03.04.2014, 15:16 
вот так (то есть, вот так) это надо делать и никак, имхо, иначе.
ЗЫ а вообще-то, пора бы и самому научиться пользоваться гуглом.
ЗЗЫ критика выбора языка имхо неуместна.

 
 
 
 Re: Нужен совет в написании программы на С
Сообщение03.04.2014, 15:19 
_Ivana,iifat, спасибо, буду осваивать.

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group