Написать полную программу — простой целочисленный калькулятор с обработкой ошибок ввода, деления и переполнения.
- Работа калькулятора:
- Ввод первого числа
- Ввод знака арифметической операции
- Ввод второго числа
- Вывод результата (применение операции к первому и второму числу). Результат выводится, даже если была ошибка.
- Результат становится первым числом для следующей операции
- Переход на п. 2
- Поддерживаемые действия: "+", "-", "*", "/"
- Дополнительно (обязательно с использованием обработчика исключений) отслеживаются:
- Ввод нечислового значения вместо числа (исключение 8). В этом случае:
- выводится сообщение "Invalid input"
- число вводится заново (и так до тех пор, пока не будет введено число)
Деление на 0 (в Mars — исключение 9; обратите внимание на то, как разворачивается псевдоинструкция div $t0 $t1 %t2, и только она). В этом случае
- выводится сообщение "Division by zero"
- результат операции должен быть равен 0
- Знаковое переполнение (исключение 12). В этом случае
- выводится сообщение "Error"
- результат операции равен второму слагаемому
- Ввод нечислового значения вместо числа (исключение 8). В этом случае:
- Ввод заканчивается, если введённый знак действия не поддерживается (пустая строка, точка, пробел и т п.)
22 * lll 3 / 0 + 43545 + 2147483647 .
Invalid input 66 Division by zero 0 43545 Error 2147483647
Вот тот же ввод-вывод в виде диалога, в котором ввод чисел помечен зелёным, ввод операций — синим, а вывод программы — красным (ошибки) и белым.
22
*
ttt
Invalid input
3
- 66
/
0
Division by zero
- 0
+
43545
- 43545
+
2147483647
Error
- 2147483647
- .