Калькулятор для сайта, который эмулирует работу обычного кнопочного калькулятора.
Управлять калькулятором можнок как с клавиатуры:
0 - 9
,.
- клавиши ввода числаEnter
,=
- клавиши получния результатаEsc
- сброс калькулятора так и нажимая кнопки мышкой на самом калькуляторе.
В HTML файле подключить скрипт калькулятора и создать елемент.
<head>
<!-- Подкючение стилей в head -->
<link rel="stylesheet" href="./css/calculator.css">
</head>
<body>
<!-- Создайте элемент для калькуляьора -->
<section id="calc" class="calc_wrapper"></section>
</body>
<!-- Подключите скрипт в конце файла -->
<script type="module" defer src="./scripts/script.js"></script>
В подключенном скрипте произведите импорт и и вызовите конструктор.
import Calculator from './calculator.js';
const calc_wrapper = document.querySelector(`#calc`);
new Calculator(
calc_wrapper, // DOM элемент калькулятора
false, // вывод debug-информации
);
number_input(value)
operation_input(operation)
equal()
ac()
render()
-
null
init
v1 = 0; state = 'v1';
-
v1 Состояние после вкючения калькулятора, в котором еще нет первого числа.
number_input
вводим первое числоoperation_input
запоминаем операцию и переходим v1 => wait
-
v2 Состояние в котое попадаем если есть операция, первое число и начинаем вводить второе число
number_imput
запоминаем второе числоoperation_input
вводим операцию переходим v2 => calculationequal
переходим v2 => calculation
-
calculation выполняет дейстаия над v1 op v2. Результат выводится на дисплей и присваивается в переменную v1.
init
проверяем крайние случаи и выполняем расчетresult
присваиваем первому числу результат расчета переход calculatrion => waitto_error
если результата нет или он не конечное число переход calculation => error
-
wait состояние в котором ожидается ввод второго числа, чтобы убрать с дисалея результат
number_input
пользователь начал вводить второе число переход wait => v2operation_input
изменилась операция - запоминаем еёequal
выполняем расчет wait => calculationbackspace
второе число равно 0, переход wait => v2
-
error Выводит сообщение об ошибке пока не будет выполнен переход
ac
init
Выводит ссобщениеERROR
на дисплейac