Консольный калькулятор
Учебный проект 1 из 12: Парсер команд, арифметические операции, деление на ноль и unit-тесты.
Консольный калькуляторПостановка
Парсер команд, арифметические операции, деление на ноль и unit-тесты.
Архитектура
Отделите разбор строки команды от арифметики: tokenizer создаёт значения и оператор, Calculator выполняет разрешённую операцию, CLI‑адаптер отвечает только за ввод и вывод.
Этапы
Начните с двух целых и сложения, затем добавьте decimal‑контракт, приоритет операций и диагностические сообщения с позицией неверного токена.
Безопасность
Не передавайте выражение в eval и shell. Разрешайте только известные токены, ограничьте длину команды и число операций до разбора.
Чек-лист
Проверьте отрицательные числа, деление на ноль, пробелы, неизвестный оператор, слишком длинное выражение и одинаковый результат unit‑теста и CLI.
Закрепите материал
Отметка, заметка, чек-лист и ответы остаются в localStorage этого браузера и не отправляются в аналитику.
Связанные материалы
Источники и проверка
- PHP Documentation Group — структурный источник, без внешней ссылки
Последняя содержательная проверка: . Автор-разработчик Михаил Каржин. Методика качества контента.