Создай калькулятор на языке go
Калькулятор умеет выполнять операции сложения, вычитания, умножения и деления с двумя числами. Данные передаются в одну строку. Решения, в которых каждое число и арифметическая операция передаются с новой строки, считаются неверными.
Калькулятор должен принимать на вход числа от 1 до 10 включительно, не более. На выходе числа не ограничиваются по величине и могут быть любыми.
Калькулятор умеет работать только с целыми числами.
При вводе пользователем не подходящих чисел приложение выводит ошибку в терминал и завершает работу.
go
import "fmt"
func getUserInput() (int, int, string) {
var num1, num2 int
var op string
fmt.Print("Введите первое число: ")
fmt.Scanln(&num1)
fmt.Print("Введите второе число: ")
fmt.Scanln(&num2)
fmt.Print("Введите операцию (+, -, *, /): ")
fmt.Scanln(&op)
return num1, num2, op
}
Затем нам потребуется функция, которая будет выполнять операции калькулятора на основе введенной операции:
go
func calculate(num1, num2 int, op string) (int, error) {
switch op {
case "+":
return num1 + num2, nil
case "-":
return num1 - num2, nil
case "*":
return num1 * num2, nil
case "/":
if num2 != 0 {
return num1 / num2, nil
} else {
return 0, fmt.Errorf("Ошибка: деление на ноль!")
}
default:
return 0, fmt.Errorf("Ошибка: недопустимая операция!")
}
}
Наконец, мы можем совместить эти две функции в главной функции, которая будет вызывать пользовательский ввод, вызывать функцию калькулятора и выводить результаты:
go
func main() {
num1, num2, op := getUserInput()
result, err := calculate(num1, num2, op)
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Результат:", result)
}
Теперь мы можем запустить программу и ввести два числа и операцию, и она посчитает результат. Если число введено неправильно или выбрана недопустимая операция, программа выведет ошибку.
Пример работы программы:
Введите первое число: 5
Введите второе число: 2
Введите операцию (+, -, *, /): *
Результат: 10
Введите первое число: 8
Введите второе число: 0
Введите операцию (+, -, *, /): /
Ошибка: деление на ноль!
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет