diff --git a/cmd/a.out b/cmd/a.out deleted file mode 100755 index 4ce4616..0000000 Binary files a/cmd/a.out and /dev/null differ diff --git a/cmd/main.go b/cmd/main.go index 750e520..6bee94e 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -1,7 +1,11 @@ package main -import "fmt" +import ( + "fmt" + "gowinter/internal" +) func main() { fmt.Println("Welcome to rise field!!") + internal.Run() } diff --git a/cmd/test.cpp b/cmd/test.cpp deleted file mode 100644 index cc492a3..0000000 --- a/cmd/test.cpp +++ /dev/null @@ -1,19 +0,0 @@ -// C++ Code to demonstrate getppid() -#include -#include -using namespace std; - -// Driver Code -int main() -{ - int pid; - pid = fork(); - if (pid == 0) - { - cout << "\nParent Process id : " - << getpid() << endl; - cout << "\nChild Process with parent id : " - << getppid() << endl; - } - return 0; -} diff --git a/internal/example.go b/internal/example.go new file mode 100644 index 0000000..6eebac6 --- /dev/null +++ b/internal/example.go @@ -0,0 +1,16 @@ +package internal + +import ( + "fmt" + "time" +) + +func Add(a, b int) { + time.Sleep(time.Second) + fmt.Println("Sum =", a+b) +} + +func Sub(a, b int) { + time.Sleep(time.Second) + fmt.Println("Sub =", a-b) +} diff --git a/internal/simple_caluculator.go b/internal/simple_caluculator.go new file mode 100644 index 0000000..7f46c96 --- /dev/null +++ b/internal/simple_caluculator.go @@ -0,0 +1,59 @@ +package internal + +import "fmt" + +var operators []string = []string{"+", "-", "*", "/"} + +func Run() { + var x, y int + var operator string + + fmt.Println("Введите первое число") + _, err := fmt.Scan(&x) + if err != nil { + fmt.Printf("Некорректное число.\n") + return + } + fmt.Println("Введите операцию (+,-,*,/)") + fmt.Scan(&operator) + if !isExistOperato(operator) { + fmt.Printf("Некоректная операция.\n") + return + } + fmt.Println("Введите второе число") + _, err = fmt.Scan(&y) + if err != nil { + fmt.Printf("Некорректное число.\n") + return + } + + calculate(x, y, operator) +} + +func isExistOperato(operatop string) bool { + for _, op := range operators { + if op == operatop { + return true + } + } + return false +} + +func calculate(x, y int, oprator string) { + + switch oprator { + case "+": + fmt.Printf("%d + %d = %d\n", x, y, x+y) + case "-": + fmt.Printf("%d - %d = %d\n", x, y, x-y) + case "*": + fmt.Printf("%d * %d = %d\n", x, y, x*y) + case "/": + if y == 0 { + fmt.Println("Ошибка: деление на 0 невозможно") + return + } + fmt.Printf("%d + %d = %f\n", x, y, float64(x)/float64(y)) + } + +}