go_winter_work/hw/calc/cmd/calc/calc.go
Dmitry Sirotkin 534d9fa583 init
2025-02-11 16:12:21 +03:00

62 lines
1.2 KiB
Go

package main
import (
"fmt"
"os"
"strconv"
c "calc/pkg"
)
func main() {
var x string
fmt.Println("Введите первое число:")
fmt.Scan(&x)
numx, errx := Validatenumber(x)
fmt.Println(numx)
if errx != nil {
fmt.Println("Некорректное число. Пожалуйста, введите числовое значение.")
os.Exit(1)
}
var o string
fmt.Println("Выберите операцию (+, -, *, /)")
fmt.Scan(&o)
if !Validateoperation(o) {
fmt.Println("Некорректная операция. Пожалуйста, используйте символы +, -, * или /.")
os.Exit(1)
}
var y string
fmt.Println("Введите второе число")
fmt.Scan(&y)
numy, erry := Validatenumber(y)
fmt.Println(numy)
if erry != nil {
fmt.Println("Некорректное число. Пожалуйста, введите числовое значение.")
os.Exit(1)
}
fmt.Println(c.Calc(numx, numy, o))
}
func Validateoperation(s string) bool {
opertions := [...]string{"+", "-", "*", "/"}
for _, o := range opertions {
if o == s {
return true
}
}
return false
}
func Validatenumber(s string) (float64, error){
return strconv.ParseFloat(s, 64)
}