Необходимо реализовать программу SmartCalc v1.0:
- **Арифметические операторы**:
| Название оператора | Инфиксная нотация <br /> (Классическая) | Префиксная нотация <br /> (Польская нотация) | Постфиксная нотация <br /> (Обратная польская нотация) |
| ------ | ------ | ------ | ------ |
| Скобки | (a + b) | (+ a b) | a b + |
| Сложение | a + b | + a b | a b + |
| Вычитание | a - b | - a b | a b - |
| Умножение | a * b | * a b | a b * |
| Деление | a / b | / a b | a b \ |
| Возведение в степень | a ^ b | ^ a b | a b ^ |
| Остаток от деления | a mod b | mod a b | a b mod |
| Унарный плюс | +a | +a | a+ |
| Унарный минус | -a | -a | a- |
>Обратите внимание, что оператор умножения содержит обязательный знак `*`. Обработка выражения с опущенным знаком `*` является необязательной и остается на усмотрение разработчика
- **Функции**:
| Описание функции | Функция |
| ---------------- | ------- |
| Вычисляет косинус | cos(x) |
| Вычисляет синус | sin(x) |
| Вычисляет тангенс | tan(x) |
| Вычисляет арккосинус | acos(x) |
| Вычисляет арксинус | asin(x) |
| Вычисляет арктангенс | atan(x) |
| Вычисляет квадратный корень | sqrt(x) |
| Вычисляет натуральный логарифм | ln(x) |
| Вычисляет десятичный логарифм | log(x) |
Предусмотреть специальный режим "кредитный калькулятор" (за образец можно взять сайты banki.ru и calcus.ru):
- Вход: общая сумма кредита, срок, процентная ставка, тип (аннуитетный, дифференцированный)
- Выход: ежемесячный платеж, переплата по кредиту, общая выплата