From 4f696ced73b4c1fbef785693e63fdae03d4356dc Mon Sep 17 00:00:00 2001 From: Vladimir Marunin Date: Thu, 25 Jan 2024 23:52:03 +0300 Subject: [PATCH 1/5] hw4.1 --- ftracker.go | 80 ++++++++++++++++++++++++++--------------------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/ftracker.go b/ftracker.go index edf04d5..e37b6de 100644 --- a/ftracker.go +++ b/ftracker.go @@ -1,17 +1,16 @@ package ftracker import ( - "fmt" - "math" + "fmt" ) // Основные константы, необходимые для расчетов. const ( - lenStep = 0.65 // средняя длина шага. - mInKm = 1000 // количество метров в километре. - minInH = 60 // количество минут в часе. - kmhInMsec = 0.278 // коэффициент для преобразования км/ч в м/с. - cmInM = 100 // количество сантиметров в метре. + lenStep = 0.65 // средняя длина шага. + mInKm = 1000 // количество метров в километре. + minInH = 60 // количество минут в часе. + kmhInMsec = 0.278 // коэффициент для преобразования км/ч в м/с. + cmInM = 100 // количество сантиметров в метре. ) // distance возвращает дистанцию(в километрах), которую преодолел пользователь за время тренировки. @@ -20,7 +19,7 @@ const ( // // action int — количество совершенных действий (число шагов при ходьбе и беге, либо гребков при плавании). func distance(action int) float64 { - return float64(action) * lenStep / mInKm + return float64(action) * lenStep / mInKm } // meanSpeed возвращает значение средней скорости движения во время тренировки. @@ -30,11 +29,11 @@ func distance(action int) float64 { // action int — количество совершенных действий(число шагов при ходьбе и беге, либо гребков при плавании). // duration float64 — длительность тренировки в часах. func meanSpeed(action int, duration float64) float64 { - if duration == 0 { - return 0 - } - distance := distance(action) - return distance / duration + if duration == 0 { + return 0 + } + distance := distance(action) + return distance / duration } // ShowTrainingInfo возвращает строку с информацией о тренировке. @@ -45,22 +44,22 @@ func meanSpeed(action int, duration float64) float64 { // trainingType string — вид тренировки(Бег, Ходьба, Плавание). // duration float64 — длительность тренировки в часах. func ShowTrainingInfo(action int, trainingType string, duration, weight, height float64, lengthPool, countPool int) string { - // ваш код здесь - switch { + // ваш код здесь + switch { case trainingType == "Бег": - distance := ... // вызовите здесь необходимую функцию - speed := ... // вызовите здесь необходимую функцию - calories := ... // вызовите здесь необходимую функцию + distance := distance(action) // вызовите здесь необходимую функцию + speed := meanSpeed(action, duration) // вызовите здесь необходимую функцию + calories := RunningSpentCalories(action, weight, duration) // вызовите здесь необходимую функцию return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, distance, speed, calories) case trainingType == "Ходьба": - distance := ... // вызовите здесь необходимую функцию - speed := ... // вызовите здесь необходимую функцию - calories := ... // вызовите здесь необходимую функцию + distance := distance(action) // вызовите здесь необходимую функцию + speed := meanSpeed(action, duration) // вызовите здесь необходимую функцию + calories := WalkingSpentCalories(action, duration, weight, height) // вызовите здесь необходимую функцию return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, distance, speed, calories) case trainingType == "Плавание": - distance := ... // вызовите здесь необходимую функцию - speed := ... // вызовите здесь необходимую функцию - calories := ... // вызовите здесь необходимую функцию + distance := distance(action) // вызовите здесь необходимую функцию + speed := swimmingMeanSpeed(lengthPool, countPool, duration) // вызовите здесь необходимую функцию + calories := SwimmingSpentCalories(lengthPool, countPool, duration, weight) // вызовите здесь необходимую функцию return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, distance, speed, calories) default: return "неизвестный тип тренировки" @@ -69,8 +68,8 @@ func ShowTrainingInfo(action int, trainingType string, duration, weight, height // Константы для расчета калорий, расходуемых при беге. const ( - runningCaloriesMeanSpeedMultiplier = 18 // множитель средней скорости. - runningCaloriesMeanSpeedShift = 1.79 // среднее количество сжигаемых калорий при беге. + runningCaloriesMeanSpeedMultiplier = 18 // множитель средней скорости. + runningCaloriesMeanSpeedShift = 1.79 // среднее количество сжигаемых калорий при беге. ) // RunningSpentCalories возвращает количество потраченных колорий при беге. @@ -81,14 +80,14 @@ const ( // weight float64 — вес пользователя. // duration float64 — длительность тренировки в часах. func RunningSpentCalories(action int, weight, duration float64) float64 { - // ваш код здесь - ... + // ваш код здесь + return ((runningCaloriesMeanSpeedMultiplier * meanSpeed(action, duration) * runningCaloriesMeanSpeedShift) * weight / mInKm * duration * minInH) } // Константы для расчета калорий, расходуемых при ходьбе. const ( - walkingCaloriesWeightMultiplier = 0.035 // множитель массы тела. - walkingSpeedHeightMultiplier = 0.029 // множитель роста. + walkingCaloriesWeightMultiplier = 0.035 // множитель массы тела. + walkingSpeedHeightMultiplier = 0.029 // множитель роста. ) // WalkingSpentCalories возвращает количество потраченных калорий при ходьбе. @@ -100,14 +99,15 @@ const ( // weight float64 — вес пользователя. // height float64 — рост пользователя. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { - // ваш код здесь - ... + // ваш код здесь + meanSpeedMS := meanSpeed(action, duration) * kmhInMsec + return ((walkingCaloriesWeightMultiplier*weight + (meanSpeedMS*meanSpeedMS/height*cmInM)*walkingSpeedHeightMultiplier*weight) * duration * minInH) } // Константы для расчета калорий, расходуемых при плавании. const ( - swimmingCaloriesMeanSpeedShift = 1.1 // среднее количество сжигаемых колорий при плавании относительно скорости. - swimmingCaloriesWeightMultiplier = 2 // множитель веса при плавании. + swimmingCaloriesMeanSpeedShift = 1.1 // среднее количество сжигаемых колорий при плавании относительно скорости. + swimmingCaloriesWeightMultiplier = 2 // множитель веса при плавании. ) // swimmingMeanSpeed возвращает среднюю скорость при плавании. @@ -118,10 +118,10 @@ const ( // countPool int — сколько раз пользователь переплыл бассейн. // duration float64 — длительность тренировки в часах. func swimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 { - if duration == 0 { - return 0 - } - return float64(lengthPool) * float64(countPool) / mInKm / duration + if duration == 0 { + return 0 + } + return float64(lengthPool) * float64(countPool) / mInKm / duration } // SwimmingSpentCalories возвращает количество потраченных калорий при плавании. @@ -133,6 +133,6 @@ func swimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 { // duration float64 — длительность тренировки в часах. // weight float64 — вес пользователя. func SwimmingSpentCalories(lengthPool, countPool int, duration, weight float64) float64 { - // ваш код здесь - ... + // ваш код здесь + return (swimmingMeanSpeed(lengthPool, countPool, duration) + swimmingCaloriesMeanSpeedShift) * swimmingCaloriesWeightMultiplier * weight * duration } From 053a06448158065e1581ee7a62600e7174f4ed0c Mon Sep 17 00:00:00 2001 From: Vladimir Marunin Date: Fri, 26 Jan 2024 00:00:59 +0300 Subject: [PATCH 2/5] hw4.3 --- ftracker/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 ftracker/.keep diff --git a/ftracker/.keep b/ftracker/.keep new file mode 100644 index 0000000..e69de29 From 907e646f5d434fb9c3cf80b61c32eb97194cc6f9 Mon Sep 17 00:00:00 2001 From: Vladimir Marunin Date: Fri, 26 Jan 2024 00:02:43 +0300 Subject: [PATCH 3/5] hw4.4 --- ftracker/ftracker.go | 138 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 ftracker/ftracker.go diff --git a/ftracker/ftracker.go b/ftracker/ftracker.go new file mode 100644 index 0000000..e37b6de --- /dev/null +++ b/ftracker/ftracker.go @@ -0,0 +1,138 @@ +package ftracker + +import ( + "fmt" +) + +// Основные константы, необходимые для расчетов. +const ( + lenStep = 0.65 // средняя длина шага. + mInKm = 1000 // количество метров в километре. + minInH = 60 // количество минут в часе. + kmhInMsec = 0.278 // коэффициент для преобразования км/ч в м/с. + cmInM = 100 // количество сантиметров в метре. +) + +// distance возвращает дистанцию(в километрах), которую преодолел пользователь за время тренировки. +// +// Параметры: +// +// action int — количество совершенных действий (число шагов при ходьбе и беге, либо гребков при плавании). +func distance(action int) float64 { + return float64(action) * lenStep / mInKm +} + +// meanSpeed возвращает значение средней скорости движения во время тренировки. +// +// Параметры: +// +// action int — количество совершенных действий(число шагов при ходьбе и беге, либо гребков при плавании). +// duration float64 — длительность тренировки в часах. +func meanSpeed(action int, duration float64) float64 { + if duration == 0 { + return 0 + } + distance := distance(action) + return distance / duration +} + +// ShowTrainingInfo возвращает строку с информацией о тренировке. +// +// Параметры: +// +// action int — количество совершенных действий(число шагов при ходьбе и беге, либо гребков при плавании). +// trainingType string — вид тренировки(Бег, Ходьба, Плавание). +// duration float64 — длительность тренировки в часах. +func ShowTrainingInfo(action int, trainingType string, duration, weight, height float64, lengthPool, countPool int) string { + // ваш код здесь + switch { + case trainingType == "Бег": + distance := distance(action) // вызовите здесь необходимую функцию + speed := meanSpeed(action, duration) // вызовите здесь необходимую функцию + calories := RunningSpentCalories(action, weight, duration) // вызовите здесь необходимую функцию + return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, distance, speed, calories) + case trainingType == "Ходьба": + distance := distance(action) // вызовите здесь необходимую функцию + speed := meanSpeed(action, duration) // вызовите здесь необходимую функцию + calories := WalkingSpentCalories(action, duration, weight, height) // вызовите здесь необходимую функцию + return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, distance, speed, calories) + case trainingType == "Плавание": + distance := distance(action) // вызовите здесь необходимую функцию + speed := swimmingMeanSpeed(lengthPool, countPool, duration) // вызовите здесь необходимую функцию + calories := SwimmingSpentCalories(lengthPool, countPool, duration, weight) // вызовите здесь необходимую функцию + return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, distance, speed, calories) + default: + return "неизвестный тип тренировки" + } +} + +// Константы для расчета калорий, расходуемых при беге. +const ( + runningCaloriesMeanSpeedMultiplier = 18 // множитель средней скорости. + runningCaloriesMeanSpeedShift = 1.79 // среднее количество сжигаемых калорий при беге. +) + +// RunningSpentCalories возвращает количество потраченных колорий при беге. +// +// Параметры: +// +// action int — количество совершенных действий(число шагов при ходьбе и беге, либо гребков при плавании). +// weight float64 — вес пользователя. +// duration float64 — длительность тренировки в часах. +func RunningSpentCalories(action int, weight, duration float64) float64 { + // ваш код здесь + return ((runningCaloriesMeanSpeedMultiplier * meanSpeed(action, duration) * runningCaloriesMeanSpeedShift) * weight / mInKm * duration * minInH) +} + +// Константы для расчета калорий, расходуемых при ходьбе. +const ( + walkingCaloriesWeightMultiplier = 0.035 // множитель массы тела. + walkingSpeedHeightMultiplier = 0.029 // множитель роста. +) + +// WalkingSpentCalories возвращает количество потраченных калорий при ходьбе. +// +// Параметры: +// +// action int — количество совершенных действий(число шагов при ходьбе и беге, либо гребков при плавании). +// duration float64 — длительность тренировки в часах. +// weight float64 — вес пользователя. +// height float64 — рост пользователя. +func WalkingSpentCalories(action int, duration, weight, height float64) float64 { + // ваш код здесь + meanSpeedMS := meanSpeed(action, duration) * kmhInMsec + return ((walkingCaloriesWeightMultiplier*weight + (meanSpeedMS*meanSpeedMS/height*cmInM)*walkingSpeedHeightMultiplier*weight) * duration * minInH) +} + +// Константы для расчета калорий, расходуемых при плавании. +const ( + swimmingCaloriesMeanSpeedShift = 1.1 // среднее количество сжигаемых колорий при плавании относительно скорости. + swimmingCaloriesWeightMultiplier = 2 // множитель веса при плавании. +) + +// swimmingMeanSpeed возвращает среднюю скорость при плавании. +// +// Параметры: +// +// lengthPool int — длина бассейна в метрах. +// countPool int — сколько раз пользователь переплыл бассейн. +// duration float64 — длительность тренировки в часах. +func swimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 { + if duration == 0 { + return 0 + } + return float64(lengthPool) * float64(countPool) / mInKm / duration +} + +// SwimmingSpentCalories возвращает количество потраченных калорий при плавании. +// +// Параметры: +// +// lengthPool int — длина бассейна в метрах. +// countPool int — сколько раз пользователь переплыл бассейн. +// duration float64 — длительность тренировки в часах. +// weight float64 — вес пользователя. +func SwimmingSpentCalories(lengthPool, countPool int, duration, weight float64) float64 { + // ваш код здесь + return (swimmingMeanSpeed(lengthPool, countPool, duration) + swimmingCaloriesMeanSpeedShift) * swimmingCaloriesWeightMultiplier * weight * duration +} From 755c4f4fda9d1f933f7a76300429bf9ab10545a0 Mon Sep 17 00:00:00 2001 From: Vladimir Marunin Date: Fri, 26 Jan 2024 01:23:57 +0300 Subject: [PATCH 4/5] 111 --- ftracker/ftracker.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ftracker/ftracker.go b/ftracker/ftracker.go index e37b6de..85488ad 100644 --- a/ftracker/ftracker.go +++ b/ftracker/ftracker.go @@ -80,7 +80,7 @@ const ( // weight float64 — вес пользователя. // duration float64 — длительность тренировки в часах. func RunningSpentCalories(action int, weight, duration float64) float64 { - // ваш код здесь + // ваш код здесь, но не работает. return ((runningCaloriesMeanSpeedMultiplier * meanSpeed(action, duration) * runningCaloriesMeanSpeedShift) * weight / mInKm * duration * minInH) } From c8be39e34102ff16b930f1572d35172fff59f0bf Mon Sep 17 00:00:00 2001 From: Vladimir Marunin Date: Fri, 26 Jan 2024 08:41:01 +0300 Subject: [PATCH 5/5] 11111 --- ftracker/ftracker.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ftracker/ftracker.go b/ftracker/ftracker.go index 85488ad..bd6ba61 100644 --- a/ftracker/ftracker.go +++ b/ftracker/ftracker.go @@ -81,7 +81,7 @@ const ( // duration float64 — длительность тренировки в часах. func RunningSpentCalories(action int, weight, duration float64) float64 { // ваш код здесь, но не работает. - return ((runningCaloriesMeanSpeedMultiplier * meanSpeed(action, duration) * runningCaloriesMeanSpeedShift) * weight / mInKm * duration * minInH) + return ((runningCaloriesMeanSpeedMultiplier*meanSpeed(action, duration) + runningCaloriesMeanSpeedShift) * weight / mInKm * duration * minInH) } // Константы для расчета калорий, расходуемых при ходьбе.