From fd11993b58393b032e2d905bb3d21b071efb7e3f Mon Sep 17 00:00:00 2001 From: Akim Kulbakin Date: Thu, 28 Dec 2023 13:37:34 +0300 Subject: [PATCH] lab5 --- golang/internal/lab5/lab5.go | 46 ++++++++++++++++++++++++++++++++++++ golang/main.go | 31 ++++++++++++++++++++---- 2 files changed, 73 insertions(+), 4 deletions(-) create mode 100644 golang/internal/lab5/lab5.go diff --git a/golang/internal/lab5/lab5.go b/golang/internal/lab5/lab5.go new file mode 100644 index 00000000..4999b705 --- /dev/null +++ b/golang/internal/lab5/lab5.go @@ -0,0 +1,46 @@ +package airplanestruct + +import "fmt" + +type airplane struct { + speed int + model string + manufcountry string +} + +func (a airplane) GetSpeed() int { + return a.speed +} + +func NewAirplane(speedVar int, modelVar, manufcountryVar string) (airplane, error) { + var a airplane = airplane{ + model: modelVar, + manufcountry: manufcountryVar, + } + var err = a.SetSpeed(speedVar) + return a, err +} + +func (a *airplane) SetSpeed(speed int) error { + if speed > 200 && speed < 10000 { + a.speed = speed + return nil + } + return fmt.Errorf("failed SetSpeed() for airplane model \"%s\" - invalid speed", a.GetModel()) +} + +func (a airplane) GetModel() string { + return a.model +} + +func (a *airplane) SetModel(model string) { + a.model = model +} + +func (a airplane) GetManufcountry() string { + return a.manufcountry +} + +func (a *airplane) SetManufcountry(manufcountry string) { + a.manufcountry = manufcountry +} diff --git a/golang/main.go b/golang/main.go index 5be403de..3840d0f7 100644 --- a/golang/main.go +++ b/golang/main.go @@ -2,11 +2,20 @@ package main import ( "fmt" + "log" - "isuct.ru/informatics2022/internal/lab4" + airplanestruct "isuct.ru/informatics2022/internal/lab5" + //"isuct.ru/informatics2022/internal/lab4" ) + +func checkForError(err error) { + if err != nil { + log.Fatal(err) + } +} + func main() { - fmt.Println("Кульбакин Аким Александрович") + /*fmt.Println("Кульбакин Аким Александрович") fmt.Println("Задача А") xn := 1.2 xk := 2.2 @@ -21,6 +30,20 @@ func main() { xarray := []float64{1.21, 1.76, 2.53, 3.48, 4.52} x, y = lab4.TaskB(xarray, a, b) for i := range y { - fmt.Println("при x =", x[i], "y =", y[i]) - } + fmt.Println("при x =", x[i], "y =", y[i])*/ + + //lab 5 + airplane, err := airplanestruct.NewAirplane(3000, "IL-62", "Russia") + checkForError(err) + aeroplane, err := airplanestruct.NewAirplane(853, "Some Airbus", "France") + checkForError(err) + lastairplane, err := airplanestruct.NewAirplane(968, "Boeing-747", "USA") + checkForError(err) + + airplane.SetModel("Il'ushin IL-62") + aeroplane.SetModel("Airbus A320") + + fmt.Println("Airplane model is", lastairplane.GetModel()) + fmt.Println("Airplane speed is", lastairplane.GetSpeed()) + fmt.Println("Airplane manufacturing country is", lastairplane.GetManufcountry()) }