Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Синтаксический анализатор |
Автор: kkkggg 28.4.2006, 20:36 |
int main (int argc,char *argv[]) Нужна элементарная прогграма калькулятор, выражения должны вводиться в виде аргументов, т.е #my-prog-calc 25+66 в своё время программа должна узнать, что 25 и 66 это числа и их нужно сложить!!! Напишите элементарный пример по анализу и вычислению подобных выражений (25+66). При условии, что выражения идут в виде оптимуса. Под словом оптимус я понимаю: НАЗВАНИЕ_ПРОГРАММЫ <ОПТИМУС> дальше жмём Enter и видим результат. |
Автор: LPBOY 28.4.2006, 21:00 |
А приоритет операторов, скобки должны обрабатываться? |
Автор: MAKCim 28.4.2006, 21:03 |
# my-prog-calc 25+16 или # my-prog-calc 25 + 16? |
Автор: kkkggg 28.4.2006, 21:51 |
LPBOY Не приоритет операторов не важет. MAKCim Не важно. |
Автор: DeadSoul 28.4.2006, 22:15 |
http://gzip.rsdn.ru/forum/Message.aspx?mid=1869497 |
Автор: Знак 29.4.2006, 01:46 | ||
# - это знак для прекомпиллера.. после него обычно идут дерективы и только потом имена с присваивываемым значением.. а программа типа без применения переменных среды
Это так типа делалось но эту программу надо несколько модифицировать и кое что усложнить.. в плане добавления нескольких функцийй |
Автор: MAKCim 29.4.2006, 11:00 | ||||||||
в данном случае это приглашение к вводу команд в командном интерпретаторе (скорее всего в *ix bash/sh/ksh/csh/sh... для root)
как раз важно в случае 25 + 16
а в случае 25+16
|
Автор: kkkggg 29.4.2006, 11:18 |
Нужно 25+16, хочется сделать что-то наподобие программы calc. calc линуксячая прога. |
Автор: MAKCim 29.4.2006, 11:40 | ||||||||
![]() ![]()
можно написать ф-ию для выделения из const char* числа
|
Автор: Знак 30.4.2006, 00:46 | ||||
а можно еще можно использовать atoi(); из библ. от 1994г. ![]()
вообще-то перевод строковых не очень хорошё определен иной раз в типа попутаться можно но если у тя 5.0 BCPP то соответственно все ОК. ну и на последок есть та функция isdigit() - так кажись кличат она проверяет char на пренадлежность к диапозону 0-99 |
Автор: kkkggg 30.4.2006, 01:31 |
Спосибо большое за ответы, то что мне нужно было мы с вами порвали. К сожалению не могу повысить репутацию из за недостатка постов, if могбы добавил MAKCim-у, он написал как раз то, что мне было нужно. Поэтому придётся ограничется отдельным ПАСИБА!! ![]() |