2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Нужен совет в написании программы на С
Сообщение03.04.2014, 14:43 


20/10/12
235
Здравствуйте, уважаемые участники форума!
Мне нужен ваш совет в написании программы калькулятора выражений.

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

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

 Профиль  
                  
 
 Re: Нужен совет в написании программы на С
Сообщение03.04.2014, 14:57 
Заслуженный участник


09/05/12
25179
Можно предварительно преобразовать унарный минус в "функцию" с другим обозначением (поскольку унарный минус может находиться только в самом начале выражения или после открывающей скобки, это несложно сделать). Однако правильнее было бы не возиться с преобразованиями строк, а написать парсер, преобразующий выражение в т.н. "обратную польскую запись".

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

 Профиль  
                  
 
 Re: Нужен совет в написании программы на С
Сообщение03.04.2014, 15:05 
Заслуженный участник


16/02/13
4196
Владивосток
Вот так это надо делать и никак, имхо, иначе.

 Профиль  
                  
 
 Re: Нужен совет в написании программы на С
Сообщение03.04.2014, 15:08 
Заслуженный участник


09/09/10
3729
Да вообще от унарного минуса откажитесь. И пишите $0-5$ вместо $-5$ и $4\cdot(0-3)$ вместо $4\cdot(-3)$

 Профиль  
                  
 
 Re: Нужен совет в написании программы на С
Сообщение03.04.2014, 15:11 


20/10/12
235
Pphantom, критика выбора языка не принимается по той причине, что это единственный язык, который я знаю :D , вообще говоря, изучаю.

 Профиль  
                  
 
 Re: Нужен совет в написании программы на С
Сообщение03.04.2014, 15:16 


05/09/12
2587
вот так (то есть, вот так) это надо делать и никак, имхо, иначе.
ЗЫ а вообще-то, пора бы и самому научиться пользоваться гуглом.
ЗЗЫ критика выбора языка имхо неуместна.

 Профиль  
                  
 
 Re: Нужен совет в написании программы на С
Сообщение03.04.2014, 15:19 


20/10/12
235
_Ivana,iifat, спасибо, буду осваивать.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group