Блок задач

5. Проекты

Темы
Сложность 8

Проект «Инфиксный калькулятор»

реализовать обычный калькулятор (инфиксный):

  • ввод с stdin или командной строки
  • умножение, сложение, деление, целое деление, остаток, вычитание, степень
  • инфиксная нотация (оператор между операндов)
  • скобки
  • переменные (присваивание, использование)
  • набор предопределенных функций (sin, cos, sqrt, log, exp, abs, mod)
  • набор предопределенных констант (M_PI, M_E, EPSILON)
  • разумная обработка исключительных ситуаций (1/0 ; log(-1) и т.д.)
  • список выражений (;)
  • условный (тернарный) оператор (или условная функция IF(условие, в1, в2) )

лямбда-выражение с замыканием и первоклассные функции, пожалуй, не требуются...