Калькулятор с функциями.

Когда я ещё только начинал изучать языки программирования — мне нужно было реализовать калькулятор. Но калькулятор был простой, ну как Windows. Т.е. задаются одно число, оно записывается в переменную, потом задаётся операция, её номер тоже задаётся в переменную, потом второе число. Дальше операция производилась выдавался результат.

Но ещё тогда мне стало интересно, а как же обработать то, что если мы сразу напишем в строку a+b.

И тут совершенно случайно недавно я наткнулся на тестовое задание по C#.Net. В итоге стало опять интересно как же такое реализовать. Конечно уже были варианты реализации, но они смешные и не особо подходящие:

Первый вариант – перечислять элементы этой строки в цикле, пока не наткнёмся на знак операции(сначала ищем высшего порядка * и /, а потом + и -). Дальше разбиваем строку по этому знаку и начинаем вычислять цифры и путём переборки строки. Нашли, посчитали, заменили одну часть на полученое и опять начинаем перечислять элементы. И так до тех пор пока не останется знаков.
Короче вариант чисто такой – разбор строки по символьно. Но мне не кажется что это правильный выбор.

Второй вариант – попробовать через регулярное выражение. Но метод всё же требует знаний, а где требовали решить эту задачу – уровень ниже. Но всё же.
Сначала применяем регулярное выражение по поиску * и /. Там тоже самое находятся два этих числа. Считаются и опять записываются в строку. Потом регуляркой по + и т.д.

Попросил у свого приятеля, как такое реализовать. Он мне сказал две фразы: постфиксная запись и двоичное дерево. Конечно мне это особо много не сказало, но погуглив я нашёл много интересного. Как напишу программу обязательно выложу.

Давно дома сантехника уже доживает своё. Вот недавно узнал об очень качественной сантехнике jika, нужно обязательно проверить.


Интересные записи

Написать комментарий