From a98e51897af1b86831f13ef1097ef7005b93aa8c Mon Sep 17 00:00:00 2001 From: moreqqq Date: Tue, 24 Dec 2024 00:04:27 +0300 Subject: [PATCH 1/3] =?UTF-8?q?added=20lab=20=E2=84=968?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- golang/laba8/CreateFIle.go | 13 +++++++++ golang/laba8/Input.txt | 10 +++++++ golang/laba8/ReaderFile.go | 18 ++++++++++++ golang/laba8/SearchingString.go | 15 ++++++++++ golang/laba8/WriterFile.go | 19 ++++++++++++ golang/laba8/laba8.go | 34 +++++++++++++++++++++ golang/laba8/laba8tolaba4.go | 52 +++++++++++++++++++++++++++++++++ golang/main.go | 16 +++++----- 8 files changed, 168 insertions(+), 9 deletions(-) create mode 100644 golang/laba8/CreateFIle.go create mode 100644 golang/laba8/Input.txt create mode 100644 golang/laba8/ReaderFile.go create mode 100644 golang/laba8/SearchingString.go create mode 100644 golang/laba8/WriterFile.go create mode 100644 golang/laba8/laba8.go create mode 100644 golang/laba8/laba8tolaba4.go diff --git a/golang/laba8/CreateFIle.go b/golang/laba8/CreateFIle.go new file mode 100644 index 00000000..4d6ec17a --- /dev/null +++ b/golang/laba8/CreateFIle.go @@ -0,0 +1,13 @@ +package laba8 + +import ( + "os" +) + +func CreateFile(filename string) (string, error) { + _, _ = os.Stat(filePath + filename) + f, _ := os.Create(filePath + filename) + + defer f.Close() + return filename, nil +} diff --git a/golang/laba8/Input.txt b/golang/laba8/Input.txt new file mode 100644 index 00000000..98c66ef8 --- /dev/null +++ b/golang/laba8/Input.txt @@ -0,0 +1,10 @@ +7.2 +4.2 +1.81 +5.31 +0.7 +2.4 +2.8 +3.9 +4.7 +3.16 \ No newline at end of file diff --git a/golang/laba8/ReaderFile.go b/golang/laba8/ReaderFile.go new file mode 100644 index 00000000..09407b6c --- /dev/null +++ b/golang/laba8/ReaderFile.go @@ -0,0 +1,18 @@ +package laba8 + +import ( + "bufio" + "os" +) + +func ReadDataFromFile(filename string) []string { + var textSlice []string + f, _ := os.OpenFile(filePath+filename, os.O_RDONLY, 0600) + defer f.Close() + fileScanner := bufio.NewScanner(f) + for fileScanner.Scan() { + textSlice = append(textSlice, fileScanner.Text()) + } + + return textSlice +} diff --git a/golang/laba8/SearchingString.go b/golang/laba8/SearchingString.go new file mode 100644 index 00000000..e9563858 --- /dev/null +++ b/golang/laba8/SearchingString.go @@ -0,0 +1,15 @@ +package laba8 + +func SearchingString(filename, valueForSearch string) (int, bool) { + if valueForSearch == "" { + return 0, false + } + values := ReadDataFromFile(filename) + + for _, value := range values { + if value == valueForSearch { + return 1, true + } + } + return 0, false +} diff --git a/golang/laba8/WriterFile.go b/golang/laba8/WriterFile.go new file mode 100644 index 00000000..9a10fd02 --- /dev/null +++ b/golang/laba8/WriterFile.go @@ -0,0 +1,19 @@ +package laba8 + +import ( + "fmt" + "os" +) + +func WriteDataToFile(filename string) { + f, _ := os.OpenFile(filePath+filename, os.O_WRONLY, 0600) + defer f.Close() + var name string + fmt.Scan(&name) + var surname string + fmt.Scan(&surname) + + f.WriteString(name) + f.WriteString(surname) + +} diff --git a/golang/laba8/laba8.go b/golang/laba8/laba8.go new file mode 100644 index 00000000..76f93bff --- /dev/null +++ b/golang/laba8/laba8.go @@ -0,0 +1,34 @@ +package laba8 + +import ( + "fmt" +) + +var filePath string = "../golang/laba8/" + +func RunLab8() { + var filename string + fmt.Println("Введите имя файла, в который вы хотите записать данные:") + fmt.Scan(&filename) + name, _ := CreateFile(filename) + + fmt.Println("Введите данные в файл (для завершения ввода введите q):") + WriteDataToFile(name) + + slice := ReadDataFromFile(name) + + fmt.Printf("Чтение файла %s завершено\n", filename) + for _, str := range slice { + fmt.Println(str) + } + + fmt.Println("Введите строку, которую хотите найти в файле: ") + var StringForFind string + fmt.Scan(&StringForFind) + n, _ := SearchingString(name, StringForFind) + if n == 1 { + fmt.Printf("Слово найденно на строке %d", n) + } else { + fmt.Println("Слово не найденно") + } +} diff --git a/golang/laba8/laba8tolaba4.go b/golang/laba8/laba8tolaba4.go new file mode 100644 index 00000000..f7fe47de --- /dev/null +++ b/golang/laba8/laba8tolaba4.go @@ -0,0 +1,52 @@ +package laba8 + +import ( + "bufio" + "fmt" + "os" + "strconv" + + "isuct.ru/informatics2022/laba4" +) + +func ReadDataFromFileForLab4(filename string) ([]float64, error) { + f, err := os.Open(filePath + filename) + fmt.Println(err) + if err != nil { + return nil, fmt.Errorf("ошибка открытия файла") + } + fileScanner := bufio.NewScanner(f) + var values []float64 + for fileScanner.Scan() { + chislo, err := strconv.ParseFloat(fileScanner.Text(), 64) + if err != nil { + return nil, fmt.Errorf("ошибка при переводе числа") + } + values = append(values, chislo) + } + return values, nil +} + +func RunLab8forLab4() { + values, _ := ReadDataFromFileForLab4("Input.txt") + + var a float64 = values[0] + var b float64 = values[1] + var taskBslice = values[5:] + fmt.Println("Задача А") + var xn float64 = values[2] + var xk float64 = values[3] + var deltax float64 = values[4] + for _, pair := range laba4.TaskA(a, b, xn, xk, deltax) { + x := pair[0] + y := pair[1] + fmt.Printf("x = %.2f\ty = %f\n", x, y) + } + fmt.Println() + fmt.Println("Задание B") + for _, pair := range laba4.TaskB(a, b, taskBslice) { + x := pair[0] + y := pair[1] + fmt.Printf("x = %.2f\ty = %f\n", x, y) + } +} diff --git a/golang/main.go b/golang/main.go index 60c07d58..b935df4d 100644 --- a/golang/main.go +++ b/golang/main.go @@ -1,16 +1,14 @@ package main import ( - "fmt" - - "isuct.ru/informatics2022/laba4" - "isuct.ru/informatics2022/laba6" - "isuct.ru/informatics2022/laba7" + "isuct.ru/informatics2022/laba8" ) func main() { - fmt.Println("Морев Дмитрий Михайлович") - laba4.Runlab4() - laba6.Runlaba6() - laba7.RunLaba7() + // fmt.Println("Морев Дмитрий Михайлович") + // laba4.Runlab4() + // laba6.Runlaba6() + // laba7.RunLaba7() + laba8.RunLab8forLab4() + laba8.RunLab8() } From 641a6a987d04e47b642f77ca5700aeacbf2ab84e Mon Sep 17 00:00:00 2001 From: moreqqq Date: Tue, 24 Dec 2024 00:13:41 +0300 Subject: [PATCH 2/3] fixed linter --- golang/laba8/WriterFile.go | 1 - 1 file changed, 1 deletion(-) diff --git a/golang/laba8/WriterFile.go b/golang/laba8/WriterFile.go index 9a10fd02..9d83705d 100644 --- a/golang/laba8/WriterFile.go +++ b/golang/laba8/WriterFile.go @@ -15,5 +15,4 @@ func WriteDataToFile(filename string) { f.WriteString(name) f.WriteString(surname) - } From 73b04a219434beeb759f9f21130a3aec4594f1fe Mon Sep 17 00:00:00 2001 From: moreqqq Date: Sat, 28 Dec 2024 19:10:13 +0300 Subject: [PATCH 3/3] Fixed Mistakes --- golang/laba8/SearchingString.go | 8 ++++---- golang/laba8/laba8.go | 12 ++++++------ golang/main.go | 13 +++++++++---- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/golang/laba8/SearchingString.go b/golang/laba8/SearchingString.go index e9563858..e6335d0d 100644 --- a/golang/laba8/SearchingString.go +++ b/golang/laba8/SearchingString.go @@ -1,15 +1,15 @@ package laba8 -func SearchingString(filename, valueForSearch string) (int, bool) { +func SearchingString(filename, valueForSearch string) bool { if valueForSearch == "" { - return 0, false + return false } values := ReadDataFromFile(filename) for _, value := range values { if value == valueForSearch { - return 1, true + return true } } - return 0, false + return false } diff --git a/golang/laba8/laba8.go b/golang/laba8/laba8.go index 76f93bff..3b4734e0 100644 --- a/golang/laba8/laba8.go +++ b/golang/laba8/laba8.go @@ -23,12 +23,12 @@ func RunLab8() { } fmt.Println("Введите строку, которую хотите найти в файле: ") - var StringForFind string - fmt.Scan(&StringForFind) - n, _ := SearchingString(name, StringForFind) - if n == 1 { - fmt.Printf("Слово найденно на строке %d", n) + var SearchString string + fmt.Scan(&SearchString) + isFind := SearchingString(name, SearchString) + if isFind { + fmt.Printf("Слово найдено на строке %t", isFind) } else { - fmt.Println("Слово не найденно") + fmt.Println("Слово не найдено") } } diff --git a/golang/main.go b/golang/main.go index b935df4d..058ad2f5 100644 --- a/golang/main.go +++ b/golang/main.go @@ -1,14 +1,19 @@ package main import ( + "fmt" + + "isuct.ru/informatics2022/laba4" + "isuct.ru/informatics2022/laba6" + "isuct.ru/informatics2022/laba7" "isuct.ru/informatics2022/laba8" ) func main() { - // fmt.Println("Морев Дмитрий Михайлович") - // laba4.Runlab4() - // laba6.Runlaba6() - // laba7.RunLaba7() + fmt.Println("Морев Дмитрий Михайлович") + laba4.Runlab4() + laba6.Runlaba6() + laba7.RunLaba7() laba8.RunLab8forLab4() laba8.RunLab8() }