From 18d3ac9f39a6faad8b28ae967f0e37f424c239a4 Mon Sep 17 00:00:00 2001 From: sps35 Date: Mon, 8 Jan 2024 16:56:27 +0300 Subject: [PATCH 1/4] lab 5(var 24(2)) --- golang/lab5/lab5.go | 83 +++++++++++++++++++++++++++++++++++++++++++++ golang/main.go | 20 +++++++++++ 2 files changed, 103 insertions(+) create mode 100644 golang/lab5/lab5.go diff --git a/golang/lab5/lab5.go b/golang/lab5/lab5.go new file mode 100644 index 00000000..5dee046c --- /dev/null +++ b/golang/lab5/lab5.go @@ -0,0 +1,83 @@ +package lab5 + +import ( + "errors" + "fmt" +) + +// структура лисичка +type Fox struct { + name string + age int + color colors +} + +func (f Fox) GetView() string { + return ` + /\ /\ + //\\_//\\ ____ + \_ _/ / / + / * * \ /^^^] + \_\O/_/ [ ] + / \_ [ / + \ \_ / / + [ [ / \/ _/ + _[ [ \ /_/ +` +} +func (f Fox) GetName() string { + return f.name +} +func (f Fox) GetAge() int { + return f.age +} +func (f Fox) GetColor() colors { + return f.color +} + +// проверка возраста +func (f *Fox) SetAge(age int) error { + if age >= 0 && age < 33 { + f.age = age + return nil + } + ErrorAgeIsIncorrect := errors.New("foxes don't live so long") + return ErrorAgeIsIncorrect +} + +// тип colors - установка цвета и проверка +type colors string + +const ( + red colors = "red" + white colors = "white" + grey colors = "grey" + black colors = "black" +) + +// проверка цвета +func (f *Fox) SetColor(color colors) error { + switch color { + case red, white, grey, black: + f.color = color + return nil + } + ErrorColorIsIncorrect := errors.New("foxes don't have such color") + return ErrorColorIsIncorrect +} +func NewFox(name string, age int, color colors) (Fox, error) { + var f Fox = Fox{ + name: name, + age: age, + color: color} + var err = f.SetAge(age) + if err != nil { + return f, err + } else if err = f.SetColor(color); err != nil { + return f, err + } + return f, err +} +func (f Fox) DisplayFox() { + fmt.Printf(" Name - %s\n Age - %d\n Color - %s", f.name, f.age, f.color) +} diff --git a/golang/main.go b/golang/main.go index f7796c27..34acefec 100644 --- a/golang/main.go +++ b/golang/main.go @@ -2,8 +2,10 @@ package main import ( "fmt" + "log" "isuct.ru/informatics2022/lab4" + "isuct.ru/informatics2022/lab5" ) func main() { @@ -22,4 +24,22 @@ func main() { fmt.Println("Решение задачи под буквой B") answers = lab4.TaskB(a, b, []float64{2.4, 2.8, 3.9, 4.7, 3.16}) lab4.Output(answers) + + fmt.Printf("Структура\n") + foxy, err := lab5.NewFox("Felix", 5, "red") + if err != nil { + log.Fatal(err) + } + err = foxy.SetAge(5) + if err != nil { + log.Fatal(err) + } + + err = foxy.SetColor("red") + if err != nil { + log.Fatal(err) + } + image := foxy.GetView() + fmt.Printf(image) + foxy.DisplayFox() } From 1886761b0c7f88460c0ba76abaf6117eebdf6d74 Mon Sep 17 00:00:00 2001 From: sps35 Date: Tue, 9 Jan 2024 14:46:26 +0300 Subject: [PATCH 2/4] lab 5(var 2(24)) made structure privated --- golang/lab5/lab5.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/golang/lab5/lab5.go b/golang/lab5/lab5.go index 5dee046c..2df30695 100644 --- a/golang/lab5/lab5.go +++ b/golang/lab5/lab5.go @@ -6,13 +6,13 @@ import ( ) // структура лисичка -type Fox struct { +type fox struct { name string age int color colors } -func (f Fox) GetView() string { +func (f fox) GetView() string { return ` /\ /\ //\\_//\\ ____ @@ -25,18 +25,18 @@ func (f Fox) GetView() string { _[ [ \ /_/ ` } -func (f Fox) GetName() string { +func (f fox) GetName() string { return f.name } -func (f Fox) GetAge() int { +func (f fox) GetAge() int { return f.age } -func (f Fox) GetColor() colors { +func (f fox) GetColor() colors { return f.color } // проверка возраста -func (f *Fox) SetAge(age int) error { +func (f *fox) SetAge(age int) error { if age >= 0 && age < 33 { f.age = age return nil @@ -56,7 +56,7 @@ const ( ) // проверка цвета -func (f *Fox) SetColor(color colors) error { +func (f *fox) SetColor(color colors) error { switch color { case red, white, grey, black: f.color = color @@ -65,8 +65,8 @@ func (f *Fox) SetColor(color colors) error { ErrorColorIsIncorrect := errors.New("foxes don't have such color") return ErrorColorIsIncorrect } -func NewFox(name string, age int, color colors) (Fox, error) { - var f Fox = Fox{ +func NewFox(name string, age int, color colors) (fox, error) { + var f fox = fox{ name: name, age: age, color: color} @@ -78,6 +78,6 @@ func NewFox(name string, age int, color colors) (Fox, error) { } return f, err } -func (f Fox) DisplayFox() { +func (f fox) DisplayFox() { fmt.Printf(" Name - %s\n Age - %d\n Color - %s", f.name, f.age, f.color) } From 3f195db8acf2d0a81d7420670baa3a1e15bbe2d4 Mon Sep 17 00:00:00 2001 From: sps35 Date: Thu, 11 Jan 2024 22:13:21 +0300 Subject: [PATCH 3/4] lab5(var 2(24)) Foxy ver. --- golang/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/golang/main.go b/golang/main.go index 34acefec..34bae5c3 100644 --- a/golang/main.go +++ b/golang/main.go @@ -26,7 +26,7 @@ func main() { lab4.Output(answers) fmt.Printf("Структура\n") - foxy, err := lab5.NewFox("Felix", 5, "red") + foxy, err := lab5.NewFox("Foxy", 5, "red") if err != nil { log.Fatal(err) } From 0047e8b2f3e8f8f01be4f221620fe9b80da08260 Mon Sep 17 00:00:00 2001 From: sps35 Date: Thu, 11 Jan 2024 22:14:16 +0300 Subject: [PATCH 4/4] lab5(var 2(24)) Foxy ver. --- golang/lab5/lab5.go | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/golang/lab5/lab5.go b/golang/lab5/lab5.go index 2df30695..cb5e5264 100644 --- a/golang/lab5/lab5.go +++ b/golang/lab5/lab5.go @@ -14,15 +14,21 @@ type fox struct { func (f fox) GetView() string { return ` - /\ /\ - //\\_//\\ ____ - \_ _/ / / - / * * \ /^^^] - \_\O/_/ [ ] - / \_ [ / - \ \_ / / - [ [ / \/ _/ - _[ [ \ /_/ +⣿⣿⣿⣿⣿⡟⣦⣌⡙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠿⣿ +⣿⣿⣿⣿⣿⡇⣿⣿⣿⣦⠈⠻⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⢟⣩⣶⣶⡏⠀⣿ +⣿⣿⣿⣿⣿⣇⢻⣿⢹⣿⠇⢀⣿⡿⢿⠿⠮⠯⢾⣿⣿⡿⢡⣿⡿⣽⢿⡇⠀⣿ +⣿⣿⣿⣿⣿⣿⣌⠛⠛⣫⠜⠋⠁⢠⠁⠀⠀⠀⠀⠀⠛⣷⡈⢿⡿⣃⡾⠁⣸⣿ +⣿⣿⣿⣿⣿⣿⣿⣷⣾⠓⠚⠉⠓⡆⠦⠤⠖⣤⡀⠀⠀⢹⣿⣧⣉⣉⣠⣾⣿⣿ +⣿⣿⣿⣿⣿⣿⣿⣿⠇⣶⣶⣮⣂⢑⣬⣮⣔⢄⠀⠀⠀⠀⢿⠹⣿⣿⣿⣿⣿⣿ +⣿⣿⣿⣿⣿⣿⣿⣿⣴⣿⣥⣭⣿⣼⣿⣿⡙⣇⣂⣀⣀⣀⡈⠀⣿⣿⣿⣿⣿⣿ +⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠛⠉⠙⠻⢿⣛⠿⡻⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿ +⣿⣿⣿⣿⣿⣇⣸⠉⢠⢐⡄⠀⠀⠀⠀⠈⣿⠁⠈⣣⠀⠀⠀⠺⣿⣿⣿⣿⣿⣿ +⣿⣿⣿⣿⣿⣷⣿⣭⣵⢤⢤⣤⡤⣤⣶⣾⣿⣤⠴⠃⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿ +⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠃⢸⡀⣀⣀⣠⣴⣾⣶⣿⣿⣿⣿⣿⣿ +⣿⣿⣿⣿⣿⣿⣿⣿⢟⣿⣿⣿⢟⡟⠁⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ +⣿⣿⣿⣿⣿⡿⠣⣹⣻⣟⠿⠕⠁⢀⣠⣾⡟⠛⠋⠉⡟⠁⠀⠀⠙⣿⣿⣿⣿⣿ +⣿⣿⣿⣿⣿⣠⣶⢻⣷⣀⣠⣤⣖⣿⢏⡾⠀⠀⠀⠘⣇⣀⣤⣶⠟⠛⢻⣿⣿⣿ +⣿⣿⣿⣿⡿⠉⢸⣯⡴⠻⣋⣛⣛⣻⡏⠃⠀⠀⠀⠸⣿⣿⡟⠁⡠⠂⠁⠀⠉⠻ ` } func (f fox) GetName() string {