Skip to content

Commit

Permalink
first commit (#418)
Browse files Browse the repository at this point in the history
* first commit

* fixed

* fixed

* fixed

* fixed

* fixed

* fixed

* fixed

* fixed

* fixed

* fixed

* fixed

* fixed

* fixed

* fixed

* fixed

* fixed

* fixed

* fixed

* fixed

* fixed

* fixed

* fixed

* fixed

* fixed
  • Loading branch information
ruslan709 authored Dec 15, 2024
1 parent 751d9e1 commit 309e2f7
Show file tree
Hide file tree
Showing 13 changed files with 211 additions and 20 deletions.
15 changes: 11 additions & 4 deletions golang/labs/lab4.go → golang/labs/lab4/lab4.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package labs
package lab4

import (
"fmt"
"math"

"isuct.ru/informatics2022/labs/lab8"
)

func CalculateY(x float64, a float64, b float64) float64 {
Expand All @@ -29,13 +31,18 @@ func TaskB(a, b float64, values []float64) [][]float64 {
}

func RunLab4() {
resultsA := TaskA(0.05, 0.06, 0.2, 0.95, 0.15)
params, err := lab8.ReadDataFromFile("input.txt")
if err != nil {
fmt.Println("Ошибка:", err)
return
}

resultsA := TaskA(params.A, params.B, params.Xn, params.Xk, params.Deltax)
for _, result := range resultsA {
fmt.Printf("x: %.2f, y: %.2f\n", result[0], result[1])
}

arr := []float64{0.15, 0.26, 0.37, 0.48, 0.56}
resultsB := TaskB(0.2, 0.95, arr)
resultsB := TaskB(params.A, params.B, params.Slicex)
for _, result := range resultsB {
fmt.Printf("x: %.2f, y: %.2f\n", result[0], result[1])
}
Expand Down
2 changes: 1 addition & 1 deletion golang/labs/lab6.go → golang/labs/lab6/lab6.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package labs
package lab6

import (
"fmt"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package laba7
package lab7

import (
"fmt"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package laba7
package lab7

import (
"fmt"
Expand Down
2 changes: 1 addition & 1 deletion golang/labs/laba7/food.go → golang/labs/lab7/food.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package laba7
package lab7

import (
"fmt"
Expand Down
10 changes: 6 additions & 4 deletions golang/labs/laba7/lab7.go → golang/labs/lab7/lab7.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package laba7
package lab7

import (
"fmt"
Expand All @@ -15,17 +15,19 @@ func GetFinalPrice(products []Product) float64 {
func RunLab7() {
product1 := &Electronics{Name: "Телефон", Price: 20, Brand: "Iphone", Model: "5s"}
if err := product1.applyDiscount(25); err != nil {
fmt.Println(err)
fmt.Println("Ошибка при применении скидки к продукту 1:", err)
return
}

product2 := &Clothing{Name: "Рубашка", Price: 14.32, Size: "L", Color: "white"}
if err := product2.applyDiscount(10); err != nil {
fmt.Println(err)
fmt.Println("Ошибка при применении скидки к продукту 2:", err)
return
}

product3 := &Food{Name: "Яблоко", Price: 2.35, Weight: 1}
if err := product3.applyDiscount(15); err != nil {
fmt.Println(err)
fmt.Println("Ошибка при применении скидки к продукту 3:", err)
return
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package laba7
package lab7

import (
"errors"
Expand Down
10 changes: 10 additions & 0 deletions golang/labs/lab8/input.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
0.05
0.06
0.2
0.95
0.15
0.15
0.26
0.37
0.48
0.56
52 changes: 52 additions & 0 deletions golang/labs/lab8/lab8-1.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package lab8

import (
"bufio"
"fmt"
"os"
"strconv"
)

type Parameters struct {
A float64
B float64
Xn float64
Xk float64
Deltax float64
Slicex []float64
}

func ReadDataFromFile(filename string) (Parameters, error) {
file, err := os.Open(filename)
if err != nil {
return Parameters{}, fmt.Errorf("ошибка открытия файла: %w", err)
}
defer file.Close()

scanner := bufio.NewScanner(file)
var values []float64
for scanner.Scan() {
line := scanner.Text()
num, err := strconv.ParseFloat(line, 64)
if err != nil {
return Parameters{}, fmt.Errorf("ошибка парсинга float '%s': %w", line, err)
}
values = append(values, num)
}

if err := scanner.Err(); err != nil {
return Parameters{}, fmt.Errorf("ошибка чтения файла: %w", err)
}
if len(values) < 6 {
return Parameters{}, fmt.Errorf("нехватает значений! попробуй еще раз")
}
params := Parameters{
A: values[0],
B: values[1],
Xn: values[2],
Xk: values[3],
Deltax: values[4],
Slicex: values[5:],
}
return params, nil
}
116 changes: 116 additions & 0 deletions golang/labs/lab8/lab8-2.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
package lab8

import (
"bufio"
"fmt"
"os"
"strings"
)

func CreateFile(filename string) (string, error) {
if _, err := os.Stat(filename); err == nil {
return "", fmt.Errorf("файл %s уже существует", filename)
} else if !os.IsNotExist(err) {
return "", fmt.Errorf("ошибка проверки существования файла: %w", err)
}
file, err := os.Create(filename)
if err != nil {
return "", fmt.Errorf("ошибка создания файла: %w", err)
}
defer file.Close()
return filename, nil
}

func WriteToFile(filepath string, content string) error {
file, err := os.OpenFile(filepath, os.O_APPEND|os.O_WRONLY, 0644)
if err != nil {
return fmt.Errorf("ошибка открытия файла для записи: %w", err)
}
defer file.Close()

_, err = file.WriteString(content)
if err != nil {
return fmt.Errorf("ошибка записи в файл: %w", err)
}
return nil
}

func ReadFile(filepath string) (string, error) {
fileData, err := os.ReadFile(filepath)
if err != nil {
return "", fmt.Errorf("ошибка чтения файла: %w", err)
}
return string(fileData), nil
}

func SearchInFile(filedata string, searchText string) bool {
return strings.Contains(filedata, searchText)
}

func GetUserInput() (string, int, string, string, string) {
reader := bufio.NewReader(os.Stdin)

fmt.Print("Введите имя: ")
name, _ := reader.ReadString('\n')
name = strings.TrimSpace(name)

fmt.Print("Введите возраст: ")
var age int
fmt.Scanf("%d\n", &age)

fmt.Print("Введите город: ")
city, _ := reader.ReadString('\n')
city = strings.TrimSpace(city)

fmt.Print("Введите институт, в котором вы учитесь: ")
university, _ := reader.ReadString('\n')
university = strings.TrimSpace(university)

fmt.Print("Введите любой текст: ")
additionalText, _ := reader.ReadString('\n')
additionalText = strings.TrimSpace(additionalText)

return name, age, city, university, additionalText
}

func RunFileLab() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Введите имя файла: ")
filename, _ := reader.ReadString('\n')
filename = strings.TrimSpace(filename)

filePath, err := CreateFile(filename)
if err != nil {
fmt.Println(err)
os.Exit(1)
}

name, age, city, university, additionalText := GetUserInput()

content := fmt.Sprintf("Имя: %s\nВозраст: %d\nГород: %s\nУниверситет: %s\nДополнительный текст: %s\n", name, age, city, university, additionalText)
err = WriteToFile(filePath, content)
if err != nil {
fmt.Println(err)
os.Exit(1)
}

fmt.Println("Данные успешно записаны в файл", filename)

fileData, err := ReadFile(filePath)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
fmt.Println("Содержимое файла:", fileData)

var searchText string
fmt.Print("Введите текст для поиска: ")
searchText, _ = bufio.NewReader(os.Stdin).ReadString('\n')
searchText = strings.TrimSpace(searchText)

if SearchInFile(fileData, searchText) {
fmt.Println("Текст найден в файле")
} else {
fmt.Println("Текст не найден в файле")
}
}
13 changes: 8 additions & 5 deletions golang/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,16 @@ package main
import (
"fmt"

"isuct.ru/informatics2022/labs"
"isuct.ru/informatics2022/labs/laba7"
"isuct.ru/informatics2022/labs/lab4"
"isuct.ru/informatics2022/labs/lab6"
"isuct.ru/informatics2022/labs/lab7"
"isuct.ru/informatics2022/labs/lab8"
)

func main() {
fmt.Println("Kulikov Ruslan Igorevich")
labs.RunLab4()
labs.RunLab6()
laba7.RunLab7()
lab8.RunFileLab()
lab4.RunLab4()
lab6.RunLab6()
lab7.RunLab7()
}
4 changes: 2 additions & 2 deletions golang/tests/lab4_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"testing"

"github.com/stretchr/testify/assert"
"isuct.ru/informatics2022/labs"
"isuct.ru/informatics2022/labs/lab4"
)

func TestEquation(t *testing.T) {
Expand All @@ -31,7 +31,7 @@ func TestEquation(t *testing.T) {

for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result := labs.CalculateY(tt.x, a, b)
result := lab4.CalculateY(tt.x, a, b)
if math.IsNaN(tt.x) {
assert.True(t, math.IsNaN(result), "ожидалось NaN %f", result)
} else {
Expand Down
1 change: 1 addition & 0 deletions python/src/main.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

def summ(a: int, b: int) -> int:
return a + b

Expand Down

0 comments on commit 309e2f7

Please sign in to comment.