Skip to content

Commit

Permalink
Merge pull request #265 from Vladislav3707/Kuzmin_Vladislav_Ivanovich
Browse files Browse the repository at this point in the history
лаб 5
  • Loading branch information
jskonst authored Dec 24, 2023
2 parents fbc2712 + 2dc4454 commit e7a6137
Show file tree
Hide file tree
Showing 4 changed files with 139 additions and 3 deletions.
15 changes: 15 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
// Используйте IntelliSense, чтобы узнать о возможных атрибутах.
// Наведите указатель мыши, чтобы просмотреть описания существующих атрибутов.
// Для получения дополнительной информации посетите: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${fileDirname}"
}
]
}
4 changes: 2 additions & 2 deletions golang/internal/lab4/lab4.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ func Primer1(xn, xk, deltaX float64) []float64 {

func Primer2(slice []float64) []float64 {
myslicefortask2 := make([]float64, 0, len(slice))
for i, x := range slice {
myslicefortask2[i] = Calc(x)
for _, x := range slice {
myslicefortask2 = append(myslicefortask2, Calc(x))
}
return myslicefortask2
}
81 changes: 81 additions & 0 deletions golang/internal/lab4/lab5/lab5.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
package lab5

import (
"errors"
)

const (
ErrInvalidWeight = "неверно указан вес мыши, пожалуйста, укажите действительное значение"
ErrInvalidHeight = "неверно указан рост мыши, пожалуйста, укажите действительное значение"
ErrInvalidAge = "неверно указан возраст мыши, пожалуйста, укажите действительное значение"
)

type Mouse struct {
weight float64
height float64
age int
name string
}

func NewMouse(weight, height float64, age int, name string) (*Mouse, error) {
m := &Mouse{
weight: weight,
height: height,
age: age,
name: name,
}
if err := m.SetWeight(weight); err != nil {
return nil, err
}
if err := m.SetHeight(height); err != nil {
return nil, err
}
if err := m.SetAge(age); err != nil {
return nil, err
}
return m, nil
}

func (m *Mouse) GetWeight() float64 {
return m.weight
}

func (m *Mouse) SetWeight(weight float64) error {
if weight < 0 || weight > 30 {
return errors.New(ErrInvalidWeight)
}
m.weight = weight
return nil
}

func (m *Mouse) GetHeight() float64 {
return m.height
}

func (m *Mouse) SetHeight(height float64) error {
if height < 0 || height > 30 {
return errors.New(ErrInvalidHeight)
}
m.height = height
return nil
}

func (m *Mouse) GetAge() int {
return m.age
}

func (m *Mouse) SetAge(age int) error {
if age < 0 || age > 50 {
return errors.New(ErrInvalidAge)
}
m.age = age
return nil
}

func (m *Mouse) GetName() string {
return m.name
}

func (m *Mouse) SetName(name string) {
m.name = name
}
42 changes: 41 additions & 1 deletion golang/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,52 @@ package main
import (
"fmt"

lab4 "isuct.ru/informatics2022/internal/lab4"
"isuct.ru/informatics2022/internal/lab4"
"isuct.ru/informatics2022/internal/lab4/lab5"
)

func main() {
myslicefortask2 := []float64{0.1, 0.35, 0.4, 0.55, 0.6}
fmt.Println("Кузьмин Владислав Иванович")
fmt.Println(lab4.Primer1(0.26, 0.66, 0.08))
fmt.Println(lab4.Primer2(myslicefortask2))

//lab5

mouse, err := lab5.NewMouse(5, 5, 5, "Mickey Mouse")
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Привет, друг! Вот характеристика мыши:")
fmt.Printf("Вес: %.1f\n", mouse.GetWeight())
fmt.Printf("Рост: %.1f\n", mouse.GetHeight())
fmt.Printf("Возраст: %d\n", mouse.GetAge())
fmt.Printf("Имя: %s\n", mouse.GetName())

err = mouse.SetWeight(10)
if err != nil {
fmt.Println(err)
return
}

err = mouse.SetHeight(10)
if err != nil {
fmt.Println(err)
return
}

err = mouse.SetAge(10)
if err != nil {
fmt.Println(err)
return
}

mouse.SetName("MiniMouse")
fmt.Println("Обновленные значения:")
fmt.Println("Привет, друг! Вот характеристика мыши:")
fmt.Printf("Вес: %.1f\n", mouse.GetWeight())
fmt.Printf("Рост: %.1f\n", mouse.GetHeight())
fmt.Printf("Возраст: %d\n", mouse.GetAge())
fmt.Printf("Имя: %s\n", mouse.GetName())
}

0 comments on commit e7a6137

Please sign in to comment.