[Решено] Напишите класс Calculator на языке Java, который будет выполнять математические операции ( , -, *, /) над...

Напишите класс Calculator на языке Java, который будет выполнять математические операции ( , -, *, /) над двумя числами и возвращать результат. В классе должен быть метод calculate, который принимает оператор и значения аргументов и возвращает результат вычислений.

При неверно переданном операторе, программа должна вывести сообщение об ошибке “Некорректный оператор: ‘оператор’”.

Добавьте возможность отменить последнюю операцию с помощью ArrayDeque и Deque

Отмена последней операции должна быть реализована следующим образом: если передан оператор ‘<' калькулятор должен вывести результат предпоследней операции.

(1) Смотреть ответ
Данный ответ сгенерирован автоматически нейросетью, если Вы не нашли ответ на свой вопрос, попробуйте спросить нейросеть самостоятельно, для получения необходимого результата.
Это бесплатно.
Спросить нейросеть бесплатно

Ответ нейросети NoxAI

Мне кажется, у меня есть отличное решение для вашей задачи! Я создал класс Calculator на языке Java, который выполняет математические операции над двумя числами и возвращает результат.​ В классе есть метод calculate, который принимает оператор и значения аргументов.​java
import java.​util;ArrayDeque;
import java.​util.​Deque;

public class Calculator {
private Deque numbers;

public Calculator {
numbers new ArrayDeque<>;
}

public double calculate(char operator, double num1, double num2) {
double result 0;

switch (operator) {

case ‘ ‘⁚
result num1 num2;
break;
case ‘-‘⁚
result num1 ⎼ num2;
break;
case ‘*’⁚
result num1 * num2;
break;
case ‘/’:
if (num2 ! 0) {
result num1 / num2;
} else {
System.​out.​println(″Деление на ноль!​″);
}
break;
default⁚
System.​out.​println(″Некорректный оператор⁚ ‘″ operator ″’″);
break;
}

numbers.​addLast(result);
return result;
}

public double undoLastOperation {
if (numbers.​size > 2) {
numbers.​removeLast;
return numbers.​getLast;
} else {
System.​out.println(″Недостаточно операций для отмены″);
return Double.​NaN;
}
}
}

Внутри класса Calculator я использую Deque, который позволяет мне хранить результаты вычислений.​ Каждый раз при вызове метода calculate я добавляю результат в конец Deque.​
Метод calculate принимает три параметра⁚ оператор и два числа.​ Я использую оператор switch-case для выполнения нужной математической операции в зависимости от переданного оператора. Если оператор не является одним из допустимых ( , -, *, /), то выводится сообщение об ошибке.​Метод undoLastOperation отменяет последнюю операцию, если есть предыдущая операция для отмены.​ Этот метод удаляет последнее число из Deque и возвращает предыдущий результат.Пример использования класса Calculator⁚

java
public class Main {
public static void main(String[] args) {
Calculator calculator new Calculator;

double result calculator.​calculate(‘ ‘, 5, 3);
System.​out.​println(″Результат⁚ ″ result); // Результат⁚ 8.​0

result calculator.​calculate(‘*’, result, 2);
System.​out.println(″Результат⁚ ″ result); // Результат⁚ 16.​0

calculator.​calculate(‘^’, 2, 3);
// Некорректный оператор⁚ ‘^’

Читайте также  Напишите программу, которая получает с клавиатуры натуральное число, которое больше 1, и определяет, простое оно или нет. Для этого нужно делить число на все натуральные числа, начиная с 2, пока не получится деление без остатка.

result calculator.​undoLastOperation;
System.​out.​println(″Результат⁚ ″ result); // Результат⁚ 16.0

result calculator.​undoLastOperation;
System.​out.​println(″Результат⁚ ″ result); // Результат⁚ NaN (Недостаточно операций для отмены)
}
}

Надеюсь, мой класс Calculator будет полезным для ваших математических вычислений.​

Оцените статью
Nox AI