Стековый калькулятор
Куда указывают указатели
Видеокурс для начинающих программистов. Вы узнаете, что такое динамические и статические структуры данных. Узнаете, что такое указатели и как с ними работать. Узнаете, как использовать память компьютера в своих программах, и как избежать ошибок, таких как утечки памяти. Кроме того, увидите реальные примеры, как и где применяются эти знания на практике. Подробнее... |
Стековый калькулятор - это калькулятор, который накапливает последовательность операндов и операций в стеке, а затем поочерёдно извлекает их из стека и вычисляет результат выражения.
Такой калькулятор удобно использовать, когда надо выполнить операцию не с двумя числами, а вычислить выражение, которое может содержать несколько знаков операций (+, -, *, / и т.п.), а также скобки, которые определяют очерёдность вычисления математических операций.
Например, такое выражение:
(2+3)-(7+2*4)
человек вычислит без труда в уме. А вот если он захочет вычислить это выражение с помощью обычного калькулятора, то у него на это уйдёт, пожалуй, больше времени, чем на вычисление в уме.
К тому же при работе с обычным калькулятором человек не видит выражение целиком, следовательно, он может допустить ошибку при вводе данных. Другое дело, если в калькулятор можно вводить выражения:
Но ошибочно думать, что любой калькулятор, способный вычислять математические выражения, является стековым. На самом деле стековый калькулятор - это калькулятор, который использует стек для временного хранения данных и вычисляет выражения по особому алгоритму.
Вычислять подобные выражения можно и другими способом. Первое, что напрашивается - это получить строку с выражением и обработать её. Но это проще сказать, чем сделать. Потому что такая обработка потребует у программиста немало усилий: надо будет разобрать строку на числа, знаки операций, да ещё и учесть скобки (то есть последовательность выполнения операций). Я уж молчу про то, что пользователь может ввести ошибочные данные, например, букву вместо числа.
Так что для создания калькулятора, умеющего вычислять выражения, лучше использовать стек и специальный алгоритм помещения данных в стек и извлечения данных из стека, который позволит без особых умственных усилий и сложных способов разбора выражения-строки получить нужный результат, то есть вычислить выражение независимо от того, сколько в этом выражении будет скобок, знаков операций, и в какой последовательности пользователь всё это будет вводить.
Пример стекового калькулятора, а также подробнейший разбор алгоритма вычисления введённого пользователем выражения рассмотрен в моём курсе Куда указывают указатели. Там же очень подробно и доступно рассказано, что такое стек и как с ним работать.
Подписаться на канал в YouTube
Вступить в группу "Основы программирования" Подписаться на рассылки по программированию |
Директивы компилятора
Как это ни странно, но даже многие опытные программисты не используют директивы компилятора, считая их чем-то ненужным и бесполезным. А между тем, директивы компилятора - это очень классная штука. Если их умело применять в своих программах, то можно существенно сократить время на разработку и уменьшить количество рутинных операций. Подробнее... |