Создай самостоятельно калькулятор на языке go
Калькулятор умеет выполнять операции сложения, вычитания, умножения и деления с двумя числами. Данные передаются в одну строку. Решения, в которых каждое число и арифметическая операция передаются с новой строки, считаются неверными.
Калькулятор должен принимать на вход числа от 1 до 10 включительно, не более. На выходе числа не ограничиваются по величине и могут быть любыми.
go
package main
import (
"fmt"
"strconv"
"strings"
)
func main() {
expression := getInput()
result := calculate(expression)
fmt.Println("Результат:", result)
}
func getInput() string {
fmt.Print("Введите выражение: ")
var input string
fmt.Scanln(&input)
return input
}
func calculate(expression string) float64 {
operands, operator := parseExpression(expression)
switch operator {
case "+":
return operands[0] + operands[1]
case "-":
return operands[0] - operands[1]
case "*":
return operands[0] * operands[1]
case "/":
return operands[0] / operands[1]
default:
fmt.Println("Оператор не поддерживается")
return 0
}
}
func parseExpression(expression string) ([]float64, string) {
splits := strings.Split(expression, " ")
operator := splits[1]
operand1, _ := strconv.ParseFloat(splits[0], 64)
operand2, _ := strconv.ParseFloat(splits[2], 64)
return []float64{operand1, operand2}, operator
}
Калькулятор принимает входное выражение в виде строки, в которой операнды и оператор разделены пробелом. Например, "2 + 3".
Функция `getInput` считывает ввод пользователя с помощью `fmt.Scanln` и возвращает введенное выражение.
Функция `calculate` вызывает функцию `parseExpression` для разбора введенного выражения. Затем, в зависимости от оператора, выполняется соответствующая операция сложения, вычитания, умножения или деления.
Функция `parseExpression` разбивает входную строку на операнды и оператор с помощью `strings.Split`. Затем операнды преобразуются в числа с помощью `strconv.ParseFloat` и возвращаются в виде массива соответствующих типов данных, а также оператор.
Результат вычисления выводится на экран с помощью `fmt.Println`.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет