Обновить
13
Умар Нурматов@UmarNur

Начинающий линуксоид и любитель железок

8
Подписчики
Отправить сообщение

Инженерный калькулятор на C++. Часть 2: Алгоритм сортировочной станции

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели12K

Всем маткульт-привет! В этой статье мы продолжаем и заканчиваем написание консольного инженерного калькулятора.

В прошлой части мы научились разбивать исходное математическое выражение формата (log2(18)/3.14)*sqrt(0.11^(-3)/0.02)на токены. На выходе мы получаем массив токенов, каждый их которых содержит информацию о типе (оператор, скобка, число, ...) и об ассоциативности, если он таковую имеет.

Теперь мы хотим привести выражение к виду обратной польской записи (RPN), чтобы затем удобно его посчитать. Это нам позволяет сделать изобретенный Эдсгером Дейкстрой алгоритм сортировочной станции.

Читать далее

Инженерный калькулятор на C++. Часть 1: Токенизатор математических выражений

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели24K

Всем привет! Сегодня хочу поделиться опытом написания консольного инженерного калькулятора, который может посчитать выражение вроде (log2(18)/3.14)*sqrt(0.1*10^(-3)/0.02)

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

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Специалист
Linux
C++
Программирование микроконтроллеров
OpenGL
GLSL
Алгоритмы и структуры данных
ООП