From a022a3eff364e3b1f8ae2b563d788d35717fbe5f Mon Sep 17 00:00:00 2001 From: Kirill Date: Sun, 17 Nov 2024 23:13:02 +0300 Subject: [PATCH 1/8] lab 6 7 --- golang/go.mod | 2 -- golang/go.sum | 17 --------------- golang/lab6/lab6.go | 41 ++++++++++++++++++++++++++++++++++++ golang/lab7/lab7.go | 51 +++++++++++++++++++++++++++++++++++++++++++++ golang/main.go | 12 +++++++++-- 5 files changed, 102 insertions(+), 21 deletions(-) create mode 100644 golang/lab6/lab6.go create mode 100644 golang/lab7/lab7.go diff --git a/golang/go.mod b/golang/go.mod index d1cc943c..5cecc1f3 100644 --- a/golang/go.mod +++ b/golang/go.mod @@ -1,5 +1,3 @@ module isuct.ru/informatics2022 go 1.16 - -require github.com/stretchr/testify v1.8.1 diff --git a/golang/go.sum b/golang/go.sum index 2ec90f70..e69de29b 100644 --- a/golang/go.sum +++ b/golang/go.sum @@ -1,17 +0,0 @@ -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/golang/lab6/lab6.go b/golang/lab6/lab6.go new file mode 100644 index 00000000..ada694d4 --- /dev/null +++ b/golang/lab6/lab6.go @@ -0,0 +1,41 @@ +package lab6 + +import ( + "fmt" +) + +// ship +type Ship struct { + Name string + Lenght int + Displacement int +} + +func NewShip(name string, lenght int, displacement int) Ship { + return Ship{ + Name: name, + Lenght: lenght, + Displacement: displacement, + } +} +func (f *Ship) GetLenght() int { + return f.Lenght +} +func (f *Ship) SetLenght(lenght int) { + f.Lenght = lenght +} +func (f *Ship) GetDisplacement() int { + return f.Displacement +} +func (f *Ship) SetDisplacement(displacement int) { + f.Displacement = displacement +} +func Lab6() { + ship1 := NewShip("Tight", 150, 3000) + fmt.Println("Ship Lenght:", ship1.GetLenght()) + ship1.SetLenght(250) + fmt.Println("New Lenght:", ship1.GetLenght()) + fmt.Println("Ship Displacement:", ship1.GetDisplacement()) + ship1.SetDisplacement(3500) + fmt.Println("New Displacement:", ship1.GetDisplacement()) +} diff --git a/golang/lab7/lab7.go b/golang/lab7/lab7.go new file mode 100644 index 00000000..be091311 --- /dev/null +++ b/golang/lab7/lab7.go @@ -0,0 +1,51 @@ +package lab7 + +import ( + "fmt" +) + +type Product interface { + GetName() string + GetPrice() float64 + SetPrice(price float64) + ApplyDiscount(discount float64) +} +type Item struct { + Name string + Price float64 + Category string +} + +func (i *Item) GetName() string { + return i.Name +} +func (i *Item) GetPrice() float64 { + return i.Price +} +func (i *Item) SetPrice(price float64) { + i.Price = price +} +func (i *Item) ApplyDiscount(discount float64) { + i.Price = i.Price * (1 - discount/100) +} +func CalculateTotal(products []Product) float64 { + total := 0.0 + for _, product := range products { + total += product.GetPrice() + } + return total +} +func Lab7() { + item1 := &Item{Name: "Laptop", Price: 1000, Category: "Electronics"} + item2 := &Item{Name: "Phone", Price: 500, Category: "Electronics"} + item3 := &Item{Name: "Book", Price: 20, Category: "Literature"} + item1.ApplyDiscount(10) // 10% скидка. + item2.ApplyDiscount(5) // 5% скидка + products := []Product{item1, item2, item3} + // стоимость до применения скидок + fmt.Println("Общая стоимость товаров:", CalculateTotal(products)) + // Изменяем цену товара + item3.SetPrice(15) // Изменяем цену книги + // стоимость после изменения цены + fmt.Println("Общая стоимость товаров после изменения цены: ", CalculateTotal(products)) +} diff --git a/golang/main.go b/golang/main.go index d2c4e91e..19cccaad 100644 --- a/golang/main.go +++ b/golang/main.go @@ -1,7 +1,15 @@ package main -import "fmt" +import ( + "fmt" + + "isuct.ru/informatics2022/lab6" + + "isuct.ru/informatics2022/lab7" +) func main() { - fmt.Println("Hello world") + lab6.Lab6() + lab7.Lab7() + fmt.Println("Нерабеев Кирилл Сергеевич.") } From 2fc4218c3692b7bb66bd39adebc019a88c161ba3 Mon Sep 17 00:00:00 2001 From: xsssvake Date: Mon, 25 Nov 2024 22:10:05 +0300 Subject: [PATCH 2/8] Update main.go --- golang/main.go | 1 - 1 file changed, 1 deletion(-) diff --git a/golang/main.go b/golang/main.go index 6bcbd1c6..19cccaad 100644 --- a/golang/main.go +++ b/golang/main.go @@ -12,5 +12,4 @@ func main() { lab6.Lab6() lab7.Lab7() fmt.Println("Нерабеев Кирилл Сергеевич.") - } From bda3f273eb8d98fe7ebad1dc0aada69e632a4d48 Mon Sep 17 00:00:00 2001 From: xsssvake Date: Sat, 30 Nov 2024 16:14:17 +0300 Subject: [PATCH 3/8] Update main.go --- golang/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/golang/main.go b/golang/main.go index 4ca765b8..7020e411 100644 --- a/golang/main.go +++ b/golang/main.go @@ -13,7 +13,7 @@ func main() { lab7.Lab7() fmt.Println("Нерабеев Кирилл Сергеевич.") "isuct.ru/informatics2022/lab4" -) +} func main() { lab4.Lab4() From 072726bfc1de2f17202c523d7680f60e9a701f42 Mon Sep 17 00:00:00 2001 From: xsssvake Date: Sat, 30 Nov 2024 16:17:11 +0300 Subject: [PATCH 4/8] Update main.go --- golang/main.go | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/golang/main.go b/golang/main.go index 7020e411..ee65d2de 100644 --- a/golang/main.go +++ b/golang/main.go @@ -3,19 +3,16 @@ package main import ( "fmt" + "isuct.ru/informatics2022/lab4" + "isuct.ru/informatics2022/lab6" "isuct.ru/informatics2022/lab7" ) func main() { + lab4.Lab4() lab6.Lab6() lab7.Lab7() fmt.Println("Нерабеев Кирилл Сергеевич.") - "isuct.ru/informatics2022/lab4" -} - -func main() { - lab4.Lab4() - fmt.Println("Нерабеев Кирилл Сергеевич") } From 07a16c06f9c8beb2b4bee05e4ded0d3a0e71519a Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 17 Dec 2024 20:53:54 +0300 Subject: [PATCH 5/8] new lab7 --- golang/lab7/lab7.go | 79 +++++++++++++--------------- golang/lab7/productinterface.go | 7 +++ golang/lab7/structs.go | 91 +++++++++++++++++++++++++++++++++ golang/main.go | 4 +- 4 files changed, 134 insertions(+), 47 deletions(-) create mode 100644 golang/lab7/productinterface.go create mode 100644 golang/lab7/structs.go diff --git a/golang/lab7/lab7.go b/golang/lab7/lab7.go index be091311..39170fde 100644 --- a/golang/lab7/lab7.go +++ b/golang/lab7/lab7.go @@ -1,51 +1,42 @@ package lab7 -import ( - "fmt" -) +import "fmt" -type Product interface { - GetName() string - GetPrice() float64 - SetPrice(price float64) - ApplyDiscount(discount float64) -} -type Item struct { - Name string - Price float64 - Category string -} +func Lab7() { + phone1 := Phone{ + Size: 100, + Model: "Iphone", + Price: 10000, + } + PC1 := PC{ + Model: "Model123", + Price: 5000, + RAM: 30, + } + Laptop1 := Laptop{ + Model: "ASUS", + Price: 3000, + ROM: 20, + } + ProductsList := []Product{&phone1, &PC1, &Laptop1} + defoultCost := GetTotalPrice(ProductsList) + fmt.Println("За товары вы заплатите:", defoultCost) + for _, product := range ProductsList { + product.SetDiscount(30) + } -func (i *Item) GetName() string { - return i.Name + defoultCost = GetTotalPrice(ProductsList) + fmt.Println("С учетом всех скидок вы заплатите:", defoultCost) + phone1.SetSize(660) + PC1.SetRAM(50) + Laptop1.SetROM(106) } -func (i *Item) GetPrice() float64 { - return i.Price -} -func (i *Item) SetPrice(price float64) { - i.Price = price -} -func (i *Item) ApplyDiscount(discount float64) { - i.Price = i.Price * (1 - discount/100) -} -func CalculateTotal(products []Product) float64 { - total := 0.0 - for _, product := range products { - total += product.GetPrice() + +func GetTotalPrice(ProductsList []Product) float64 { + var defoultCost float64 + + for _, product := range ProductsList { + defoultCost += product.GetPrice() } - return total -} -func Lab7() { - item1 := &Item{Name: "Laptop", Price: 1000, Category: "Electronics"} - item2 := &Item{Name: "Phone", Price: 500, Category: "Electronics"} - item3 := &Item{Name: "Book", Price: 20, Category: "Literature"} - item1.ApplyDiscount(10) // 10% скидка. - item2.ApplyDiscount(5) // 5% скидка - products := []Product{item1, item2, item3} - // стоимость до применения скидок - fmt.Println("Общая стоимость товаров:", CalculateTotal(products)) - // Изменяем цену товара - item3.SetPrice(15) // Изменяем цену книги - // стоимость после изменения цены - fmt.Println("Общая стоимость товаров после изменения цены: ", CalculateTotal(products)) + return defoultCost } diff --git a/golang/lab7/productinterface.go b/golang/lab7/productinterface.go new file mode 100644 index 00000000..e877e95e --- /dev/null +++ b/golang/lab7/productinterface.go @@ -0,0 +1,7 @@ +package lab7 + +type Product interface { + GetPrice() float64 + SetPrice(price float64) + SetDiscount(discount float64) +} diff --git a/golang/lab7/structs.go b/golang/lab7/structs.go new file mode 100644 index 00000000..a3400dd6 --- /dev/null +++ b/golang/lab7/structs.go @@ -0,0 +1,91 @@ +package lab7 + +type Phone struct { + Size float64 + Model string + Price float64 +} + +type PC struct { + Model string + Price float64 + RAM float64 +} + +type Laptop struct { + Model string + Price float64 + ROM float64 +} + +func (l *Laptop) SetModel(Model string) { + l.Model = Model +} +func (l *Laptop) GetModel() string { + return l.Model +} +func (l *Laptop) SetPrice(Price float64) { + l.Price = Price +} +func (l *Laptop) GetPrice() float64 { + return l.Price +} + +func (l *Laptop) SetROM(ROM float64) { + l.ROM = ROM +} + +func (l *Laptop) SetDiscount(percent float64) { + l.Price -= (l.Price / 100) * percent +} + +func (p *Phone) SetSize(Size float64) { + p.Size = Size +} + +func (p *Phone) GetSize() float64 { + return p.Size +} +func (p *Phone) SetModel(Model string) { + p.Model = Model +} + +func (p *Phone) SetPrice(Price float64) { + p.Price = Price +} + +func (p *Phone) GetPrice() float64 { + return p.Price +} + +func (p *Phone) SetDiscount(percent float64) { + p.Price -= (p.Price / 100) * percent +} + +func (c *PC) SetModel(Model string) { + c.Model = Model +} + +func (c *PC) SetPrice(Price float64) { + c.Price = Price +} + +func (c *PC) GetPrice() float64 { + return c.Price +} + +func (c *PC) GetModel() string { + return c.Model +} + +func (c *PC) SetDiscount(percent float64) { + c.Price -= (c.Price / 100) * percent +} + +func (c *PC) SetRAM(RAM float64) { + c.RAM = RAM +} + +func (c *PC) GetRAM() float64 { + return c.RAM +} diff --git a/golang/main.go b/golang/main.go index ee65d2de..c9e95e8c 100644 --- a/golang/main.go +++ b/golang/main.go @@ -4,15 +4,13 @@ import ( "fmt" "isuct.ru/informatics2022/lab4" - "isuct.ru/informatics2022/lab6" - "isuct.ru/informatics2022/lab7" ) func main() { + fmt.Println("Нерабеев Кирилл Сергеевич") lab4.Lab4() lab6.Lab6() lab7.Lab7() - fmt.Println("Нерабеев Кирилл Сергеевич.") } From 4d102ca487f90764c491c5bc022de34b702c8efc Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 24 Dec 2024 21:45:01 +0300 Subject: [PATCH 6/8] lab7 fix --- golang/lab7/laptop.go | 28 +++++++++++++ golang/lab7/pc.go | 35 ++++++++++++++++ golang/lab7/phone.go | 30 ++++++++++++++ golang/lab7/structs.go | 91 ------------------------------------------ 4 files changed, 93 insertions(+), 91 deletions(-) create mode 100644 golang/lab7/laptop.go create mode 100644 golang/lab7/pc.go create mode 100644 golang/lab7/phone.go delete mode 100644 golang/lab7/structs.go diff --git a/golang/lab7/laptop.go b/golang/lab7/laptop.go new file mode 100644 index 00000000..59dbf55c --- /dev/null +++ b/golang/lab7/laptop.go @@ -0,0 +1,28 @@ +package lab7 + +type Laptop struct { + Model string + Price float64 + ROM float64 +} + +func (l *Laptop) SetModel(Model string) { + l.Model = Model +} +func (l *Laptop) GetModel() string { + return l.Model +} +func (l *Laptop) SetPrice(Price float64) { + l.Price = Price +} +func (l *Laptop) GetPrice() float64 { + return l.Price +} + +func (l *Laptop) SetROM(ROM float64) { + l.ROM = ROM +} + +func (l *Laptop) SetDiscount(percent float64) { + l.Price -= (l.Price / 100) * percent +} diff --git a/golang/lab7/pc.go b/golang/lab7/pc.go new file mode 100644 index 00000000..14cb7ae4 --- /dev/null +++ b/golang/lab7/pc.go @@ -0,0 +1,35 @@ +package lab7 + +type PC struct { + Model string + Price float64 + RAM float64 +} + +func (c *PC) SetModel(Model string) { + c.Model = Model +} + +func (c *PC) SetPrice(Price float64) { + c.Price = Price +} + +func (c *PC) GetPrice() float64 { + return c.Price +} + +func (c *PC) GetModel() string { + return c.Model +} + +func (c *PC) SetDiscount(percent float64) { + c.Price -= (c.Price / 100) * percent +} + +func (c *PC) SetRAM(RAM float64) { + c.RAM = RAM +} + +func (c *PC) GetRAM() float64 { + return c.RAM +} diff --git a/golang/lab7/phone.go b/golang/lab7/phone.go new file mode 100644 index 00000000..da2a681b --- /dev/null +++ b/golang/lab7/phone.go @@ -0,0 +1,30 @@ +package lab7 + +type Phone struct { + Size float64 + Model string + Price float64 +} + +func (p *Phone) SetSize(Size float64) { + p.Size = Size +} + +func (p *Phone) GetSize() float64 { + return p.Size +} +func (p *Phone) SetModel(Model string) { + p.Model = Model +} + +func (p *Phone) SetPrice(Price float64) { + p.Price = Price +} + +func (p *Phone) GetPrice() float64 { + return p.Price +} + +func (p *Phone) SetDiscount(percent float64) { + p.Price -= (p.Price / 100) * percent +} diff --git a/golang/lab7/structs.go b/golang/lab7/structs.go deleted file mode 100644 index a3400dd6..00000000 --- a/golang/lab7/structs.go +++ /dev/null @@ -1,91 +0,0 @@ -package lab7 - -type Phone struct { - Size float64 - Model string - Price float64 -} - -type PC struct { - Model string - Price float64 - RAM float64 -} - -type Laptop struct { - Model string - Price float64 - ROM float64 -} - -func (l *Laptop) SetModel(Model string) { - l.Model = Model -} -func (l *Laptop) GetModel() string { - return l.Model -} -func (l *Laptop) SetPrice(Price float64) { - l.Price = Price -} -func (l *Laptop) GetPrice() float64 { - return l.Price -} - -func (l *Laptop) SetROM(ROM float64) { - l.ROM = ROM -} - -func (l *Laptop) SetDiscount(percent float64) { - l.Price -= (l.Price / 100) * percent -} - -func (p *Phone) SetSize(Size float64) { - p.Size = Size -} - -func (p *Phone) GetSize() float64 { - return p.Size -} -func (p *Phone) SetModel(Model string) { - p.Model = Model -} - -func (p *Phone) SetPrice(Price float64) { - p.Price = Price -} - -func (p *Phone) GetPrice() float64 { - return p.Price -} - -func (p *Phone) SetDiscount(percent float64) { - p.Price -= (p.Price / 100) * percent -} - -func (c *PC) SetModel(Model string) { - c.Model = Model -} - -func (c *PC) SetPrice(Price float64) { - c.Price = Price -} - -func (c *PC) GetPrice() float64 { - return c.Price -} - -func (c *PC) GetModel() string { - return c.Model -} - -func (c *PC) SetDiscount(percent float64) { - c.Price -= (c.Price / 100) * percent -} - -func (c *PC) SetRAM(RAM float64) { - c.RAM = RAM -} - -func (c *PC) GetRAM() float64 { - return c.RAM -} From eb4a23f6de58700569634a42b294fa68b04dfd7c Mon Sep 17 00:00:00 2001 From: xsssvake Date: Sat, 28 Dec 2024 14:05:26 +0300 Subject: [PATCH 7/8] Delete lab6 --- golang/lab6/lab6.go | 41 ----------------------------------------- 1 file changed, 41 deletions(-) delete mode 100644 golang/lab6/lab6.go diff --git a/golang/lab6/lab6.go b/golang/lab6/lab6.go deleted file mode 100644 index ada694d4..00000000 --- a/golang/lab6/lab6.go +++ /dev/null @@ -1,41 +0,0 @@ -package lab6 - -import ( - "fmt" -) - -// ship -type Ship struct { - Name string - Lenght int - Displacement int -} - -func NewShip(name string, lenght int, displacement int) Ship { - return Ship{ - Name: name, - Lenght: lenght, - Displacement: displacement, - } -} -func (f *Ship) GetLenght() int { - return f.Lenght -} -func (f *Ship) SetLenght(lenght int) { - f.Lenght = lenght -} -func (f *Ship) GetDisplacement() int { - return f.Displacement -} -func (f *Ship) SetDisplacement(displacement int) { - f.Displacement = displacement -} -func Lab6() { - ship1 := NewShip("Tight", 150, 3000) - fmt.Println("Ship Lenght:", ship1.GetLenght()) - ship1.SetLenght(250) - fmt.Println("New Lenght:", ship1.GetLenght()) - fmt.Println("Ship Displacement:", ship1.GetDisplacement()) - ship1.SetDisplacement(3500) - fmt.Println("New Displacement:", ship1.GetDisplacement()) -} From 8c8aa59fcd5382d72db3c8eb41a2f8d4e8d03534 Mon Sep 17 00:00:00 2001 From: xsssvake Date: Sat, 28 Dec 2024 14:47:28 +0300 Subject: [PATCH 8/8] Update main.go --- golang/main.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/golang/main.go b/golang/main.go index c9e95e8c..9c57b040 100644 --- a/golang/main.go +++ b/golang/main.go @@ -4,13 +4,11 @@ import ( "fmt" "isuct.ru/informatics2022/lab4" - "isuct.ru/informatics2022/lab6" "isuct.ru/informatics2022/lab7" ) func main() { fmt.Println("Нерабеев Кирилл Сергеевич") lab4.Lab4() - lab6.Lab6() lab7.Lab7() }