62 lines
1.2 KiB
Go
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)
|
|
}
|