ПроектПроверено 2026Локальный прогресс

Консольный калькулятор

Учебный проект 1 из 12: Парсер команд, арифметические операции, деление на ноль и unit-тесты.

Консольный калькулятор

Постановка

Парсер команд, арифметические операции, деление на ноль и unit-тесты.

Архитектура

Отделите разбор строки команды от арифметики: tokenizer создаёт значения и оператор, Calculator выполняет разрешённую операцию, CLI‑адаптер отвечает только за ввод и вывод.

Этапы

Начните с двух целых и сложения, затем добавьте decimal‑контракт, приоритет операций и диагностические сообщения с позицией неверного токена.

Безопасность

Не передавайте выражение в eval и shell. Разрешайте только известные токены, ограничьте длину команды и число операций до разбора.

Чек-лист

Проверьте отрицательные числа, деление на ноль, пробелы, неизвестный оператор, слишком длинное выражение и одинаковый результат unit‑теста и CLI.

Локальный прогресс

Закрепите материал

Отметка, заметка, чек-лист и ответы остаются в localStorage этого браузера и не отправляются в аналитику.

Связанные материалы

Источники и проверка

  • PHP Documentation Group — структурный источник, без внешней ссылки

Последняя содержательная проверка: . Автор-разработчик Михаил Каржин. Методика качества контента.

Данные этого сервиса

Настройки cookie и локальных данных

Аналитика

Текущий статус: не выбран. До согласия обе аналитические системы не загружаются.

Локальные данные

Удаление затрагивает только ключи PHP-сервиса в этом браузере и требует подтверждения.

Политики

Политика конфиденциальности · Политика использования файлов cookie