Согласие на обработку персональных данных.

18.07.2018
Новая задача: Как определить простое число.

07.07.2018
Новые видео и статья Что такое тэги HTML.

01.07.2018
Новый выпуск журнала Автоматизация и программирование.

25.06.2018
Новые видео и статья Шаблон проекта программы.

17.06.2018
Новая статья Преобразование десятичного числа в шестнадцатеричное.



Раздел: Курсы / Указатели /

Стековый калькулятор

Куда указывают указатели Куда указывают указатели

Видеокурс для начинающих программистов. Вы узнаете, что такое динамические и статические структуры данных. Узнаете, что такое указатели и как с ними работать. Узнаете, как использовать память компьютера в своих программах, и как избежать ошибок, таких как утечки памяти. Кроме того, увидите реальные примеры, как и где применяются эти знания на практике. Подробнее...

Стековый калькулятор - это калькулятор, который накапливает последовательность операндов и операций в стеке, а затем поочерёдно извлекает их из стека и вычисляет результат выражения.

Такой калькулятор удобно использовать, когда надо выполнить операцию не с двумя числами, а вычислить выражение, которое может содержать несколько знаков операций (+, -, *, / и т.п.), а также скобки, которые определяют очерёдность вычисления математических операций.

Например, такое выражение:

(2+3)-(7+2*4)

человек вычислит без труда в уме. А вот если он захочет вычислить это выражение с помощью обычного калькулятора, то у него на это уйдёт, пожалуй, больше времени, чем на вычисление в уме.

К тому же при работе с обычным калькулятором человек не видит выражение целиком, следовательно, он может допустить ошибку при вводе данных. Другое дело, если в калькулятор можно вводить выражения:

Стековый калькулятор

Но ошибочно думать, что любой калькулятор, способный вычислять математические выражения, является стековым. На самом деле стековый калькулятор - это калькулятор, который использует стек для временного хранения данных и вычисляет выражения по особому алгоритму.

Вычислять подобные выражения можно и другими способом. Первое, что напрашивается - это получить строку с выражением и обработать её. Но это проще сказать, чем сделать. Потому что такая обработка потребует у программиста немало усилий: надо будет разобрать строку на числа, знаки операций, да ещё и учесть скобки (то есть последовательность выполнения операций). Я уж молчу про то, что пользователь может ввести ошибочные данные, например, букву вместо числа.

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

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


Директивы компилятора Директивы компилятора
Как это ни странно, но даже многие опытные программисты не используют директивы компилятора, считая их чем-то ненужным и бесполезным. А между тем, директивы компилятора - это очень классная штука. Если их умело применять в своих программах, то можно существенно сократить время на разработку и уменьшить количество рутинных операций. Подробнее...
Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика