From 3badb562b9061fa9203095437821b5747a1f4d94 Mon Sep 17 00:00:00 2001 From: Sergey Mozhnov Date: Wed, 7 Aug 2024 10:47:21 +0300 Subject: [PATCH 01/12] first check --- ftracker.go | 84 ++++++++++++++++++++++++++--------------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/ftracker.go b/ftracker.go index edf04d5..8e2cdec 100644 --- a/ftracker.go +++ b/ftracker.go @@ -1,17 +1,17 @@ package ftracker import ( - "fmt" - "math" + "fmt" + "math" ) // Основные константы, необходимые для расчетов. 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 +20,7 @@ const ( // // action int — количество совершенных действий (число шагов при ходьбе и беге, либо гребков при плавании). func distance(action int) float64 { - return float64(action) * lenStep / mInKm + return float64(action) * lenStep / mInKm } // meanSpeed возвращает значение средней скорости движения во время тренировки. @@ -30,11 +30,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 +45,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 +69,8 @@ func ShowTrainingInfo(action int, trainingType string, duration, weight, height // Константы для расчета калорий, расходуемых при беге. const ( - runningCaloriesMeanSpeedMultiplier = 18 // множитель средней скорости. - runningCaloriesMeanSpeedShift = 1.79 // среднее количество сжигаемых калорий при беге. + runningCaloriesMeanSpeedMultiplier = 18 // множитель средней скорости. + runningCaloriesMeanSpeedShift = 1.79 // среднее количество сжигаемых калорий при беге. ) // RunningSpentCalories возвращает количество потраченных колорий при беге. @@ -81,14 +81,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,28 +100,28 @@ const ( // weight float64 — вес пользователя. // height float64 — рост пользователя. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { - // ваш код здесь - ... + // ваш код здесь + return ((walkingCaloriesWeightMultiplier*weight + (math.Pow((meanSpeed(action, duration)*kmhInMsec), 2)/height)*walkingSpeedHeightMultiplier*weight) * duration * minInH) } // Константы для расчета калорий, расходуемых при плавании. const ( - swimmingCaloriesMeanSpeedShift = 1.1 // среднее количество сжигаемых колорий при плавании относительно скорости. - swimmingCaloriesWeightMultiplier = 2 // множитель веса при плавании. + swimmingCaloriesMeanSpeedShift = 1.1 // среднее количество сжигаемых колорий при плавании относительно скорости. + swimmingCaloriesWeightMultiplier = 2 // множитель веса при плавании. ) -// swimmingMeanSpeed возвращает среднюю скорость при плавании. +// 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 +func SwimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 { + 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) * 2 * weight * duration } From 34a8879f6e0cc6a17ecb60a31cd0796dce6278cf Mon Sep 17 00:00:00 2001 From: Sergey Mozhnov Date: Wed, 7 Aug 2024 10:53:13 +0300 Subject: [PATCH 02/12] second check --- ftracker.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ftracker.go b/ftracker.go index 8e2cdec..47864c4 100644 --- a/ftracker.go +++ b/ftracker.go @@ -82,7 +82,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) } // Константы для расчета калорий, расходуемых при ходьбе. From f176a6d3a1a70520bbe17161a032f288d9e5011c Mon Sep 17 00:00:00 2001 From: Sergey Mozhnov Date: Wed, 7 Aug 2024 11:22:00 +0300 Subject: [PATCH 03/12] 3check --- ftracker.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ftracker.go b/ftracker.go index 47864c4..dd0563b 100644 --- a/ftracker.go +++ b/ftracker.go @@ -59,7 +59,7 @@ func ShowTrainingInfo(action int, trainingType string, 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) // вызовите здесь необходимую функцию + 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: @@ -110,14 +110,14 @@ const ( swimmingCaloriesWeightMultiplier = 2 // множитель веса при плавании. ) -// SwimmingMeanSpeed возвращает среднюю скорость при плавании. +// swimmingMeanSpeed возвращает среднюю скорость при плавании. // // Параметры: // // lengthPool int — длина бассейна в метрах. // countPool int — сколько раз пользователь переплыл бассейн. // duration float64 — длительность тренировки в часах. -func SwimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 { +func swimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 { if duration == 0 { return 0 } @@ -134,5 +134,5 @@ func SwimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 { // weight float64 — вес пользователя. func SwimmingSpentCalories(lengthPool, countPool int, duration, weight float64) float64 { // ваш код здесь - return (SwimmingMeanSpeed(lengthPool, countPool, duration) + swimmingCaloriesMeanSpeedShift) * 2 * weight * duration + return (swimmingMeanSpeed(lengthPool, countPool, duration) + swimmingCaloriesMeanSpeedShift) * 2 * weight * duration } From 3e04fa9881e383f4e655ab3a38a73a0118810d3d Mon Sep 17 00:00:00 2001 From: Sergey Mozhnov Date: Wed, 7 Aug 2024 11:34:21 +0300 Subject: [PATCH 04/12] 4check --- ftracker.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ftracker.go b/ftracker.go index dd0563b..cced75f 100644 --- a/ftracker.go +++ b/ftracker.go @@ -101,7 +101,7 @@ const ( // height float64 — рост пользователя. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { // ваш код здесь - return ((walkingCaloriesWeightMultiplier*weight + (math.Pow((meanSpeed(action, duration)*kmhInMsec), 2)/height)*walkingSpeedHeightMultiplier*weight) * duration * minInH) + return ((walkingCaloriesWeightMultiplier*weight + (math.Pow((meanSpeed(action, duration)*kmhInMsec), 2) / height)) * walkingSpeedHeightMultiplier * weight) * duration * minInH } // Константы для расчета калорий, расходуемых при плавании. From 416359dc42425841b0e96169764f22bf081b2759 Mon Sep 17 00:00:00 2001 From: Sergey Mozhnov Date: Wed, 7 Aug 2024 11:54:26 +0300 Subject: [PATCH 05/12] 5check --- ftracker.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ftracker.go b/ftracker.go index cced75f..032dc7f 100644 --- a/ftracker.go +++ b/ftracker.go @@ -100,8 +100,8 @@ const ( // weight float64 — вес пользователя. // height float64 — рост пользователя. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { - // ваш код здесь - return ((walkingCaloriesWeightMultiplier*weight + (math.Pow((meanSpeed(action, duration)*kmhInMsec), 2) / height)) * walkingSpeedHeightMultiplier * weight) * duration * minInH + // ваш код здесь (math.Pow((meanSpeed(action, duration)*kmhInMsec), 2)) + return ((walkingCaloriesWeightMultiplier*weight + ((math.Pow((meanSpeed(action, duration)*kmhInMsec), 2))/height)*walkingSpeedHeightMultiplier*weight) * duration * minInH) } // Константы для расчета калорий, расходуемых при плавании. From 5d389b8ad558d8f5c4ed09410cc1966d8ec43b69 Mon Sep 17 00:00:00 2001 From: Sergey Mozhnov Date: Wed, 7 Aug 2024 12:13:43 +0300 Subject: [PATCH 06/12] 6check --- ftracker.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ftracker.go b/ftracker.go index 032dc7f..bd4e6e8 100644 --- a/ftracker.go +++ b/ftracker.go @@ -100,8 +100,9 @@ const ( // weight float64 — вес пользователя. // height float64 — рост пользователя. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { - // ваш код здесь (math.Pow((meanSpeed(action, duration)*kmhInMsec), 2)) - return ((walkingCaloriesWeightMultiplier*weight + ((math.Pow((meanSpeed(action, duration)*kmhInMsec), 2))/height)*walkingSpeedHeightMultiplier*weight) * duration * minInH) + // ваш код здесь + meanSpeedKh := meanSpeed(action, duration) * kmhInMsec + return ((walkingCaloriesWeightMultiplier*weight + (math.Pow(meanSpeedKh, 2)/height)*walkingSpeedHeightMultiplier*weight) * duration * minInH) } // Константы для расчета калорий, расходуемых при плавании. From 7e981da8d23be6ee06bb91e8d0c3e9c0f66f5855 Mon Sep 17 00:00:00 2001 From: Sergey Mozhnov Date: Wed, 7 Aug 2024 12:50:40 +0300 Subject: [PATCH 07/12] 7check --- ftracker.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ftracker.go b/ftracker.go index bd4e6e8..b8f0f12 100644 --- a/ftracker.go +++ b/ftracker.go @@ -2,7 +2,6 @@ package ftracker import ( "fmt" - "math" ) // Основные константы, необходимые для расчетов. @@ -102,7 +101,7 @@ const ( func WalkingSpentCalories(action int, duration, weight, height float64) float64 { // ваш код здесь meanSpeedKh := meanSpeed(action, duration) * kmhInMsec - return ((walkingCaloriesWeightMultiplier*weight + (math.Pow(meanSpeedKh, 2)/height)*walkingSpeedHeightMultiplier*weight) * duration * minInH) + return ((walkingCaloriesWeightMultiplier*weight + (meanSpeedKh*meanSpeedKh/height)*walkingSpeedHeightMultiplier*weight) * duration * minInH) } // Константы для расчета калорий, расходуемых при плавании. From 69a52edec00446dec1c04be26002760d26cd679d Mon Sep 17 00:00:00 2001 From: Sergey Mozhnov Date: Wed, 7 Aug 2024 13:05:57 +0300 Subject: [PATCH 08/12] 8check --- ftracker.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ftracker.go b/ftracker.go index b8f0f12..d4be57c 100644 --- a/ftracker.go +++ b/ftracker.go @@ -100,8 +100,8 @@ const ( // height float64 — рост пользователя. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { // ваш код здесь - meanSpeedKh := meanSpeed(action, duration) * kmhInMsec - return ((walkingCaloriesWeightMultiplier*weight + (meanSpeedKh*meanSpeedKh/height)*walkingSpeedHeightMultiplier*weight) * duration * minInH) + meanSpeedMs := meanSpeed(action, duration) * kmhInMsec + return (walkingCaloriesWeightMultiplier*weight + (meanSpeedMs*meanSpeedMs/height)*walkingSpeedHeightMultiplier*weight*(duration*minInH)) } // Константы для расчета калорий, расходуемых при плавании. From c32c1d9df6f1108db31f0ea4ffcff5162c1271e0 Mon Sep 17 00:00:00 2001 From: Sergey Mozhnov Date: Wed, 7 Aug 2024 13:15:25 +0300 Subject: [PATCH 09/12] 9check --- ftracker.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ftracker.go b/ftracker.go index d4be57c..6a6bac5 100644 --- a/ftracker.go +++ b/ftracker.go @@ -2,6 +2,7 @@ package ftracker import ( "fmt" + "math" ) // Основные константы, необходимые для расчетов. @@ -101,7 +102,7 @@ const ( func WalkingSpentCalories(action int, duration, weight, height float64) float64 { // ваш код здесь meanSpeedMs := meanSpeed(action, duration) * kmhInMsec - return (walkingCaloriesWeightMultiplier*weight + (meanSpeedMs*meanSpeedMs/height)*walkingSpeedHeightMultiplier*weight*(duration*minInH)) + return walkingCaloriesWeightMultiplier*weight + ((math.Pow(meanSpeedMs, 2))/height)*walkingSpeedHeightMultiplier*weight/mInKm*duration*minInH } // Константы для расчета калорий, расходуемых при плавании. From 1b092565b933df53e3d15445fbbdd06f1608a103 Mon Sep 17 00:00:00 2001 From: Sergey Mozhnov Date: Wed, 7 Aug 2024 13:18:09 +0300 Subject: [PATCH 10/12] 10check --- ftracker.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ftracker.go b/ftracker.go index 6a6bac5..ce07b67 100644 --- a/ftracker.go +++ b/ftracker.go @@ -102,7 +102,7 @@ const ( func WalkingSpentCalories(action int, duration, weight, height float64) float64 { // ваш код здесь meanSpeedMs := meanSpeed(action, duration) * kmhInMsec - return walkingCaloriesWeightMultiplier*weight + ((math.Pow(meanSpeedMs, 2))/height)*walkingSpeedHeightMultiplier*weight/mInKm*duration*minInH + return (walkingCaloriesWeightMultiplier*weight + ((math.Pow(meanSpeedMs, 2))/height)*walkingSpeedHeightMultiplier*weight*duration*minInH) } // Константы для расчета калорий, расходуемых при плавании. From 8c6b500a236a85f3e9a9463c434e75a987889438 Mon Sep 17 00:00:00 2001 From: Sergey Mozhnov Date: Wed, 7 Aug 2024 14:58:29 +0300 Subject: [PATCH 11/12] 11check --- ftracker.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ftracker.go b/ftracker.go index ce07b67..c714ed9 100644 --- a/ftracker.go +++ b/ftracker.go @@ -97,12 +97,13 @@ const ( // // action int — количество совершенных действий(число шагов при ходьбе и беге, либо гребков при плавании). // duration float64 — длительность тренировки в часах. -// weight float64 — вес пользователя. -// height float64 — рост пользователя. +// weight float64 — вес пользователя в кг. +// height float64 — рост пользователя в сантиметрах, необходимо перевести в метры. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { // ваш код здесь meanSpeedMs := meanSpeed(action, duration) * kmhInMsec - return (walkingCaloriesWeightMultiplier*weight + ((math.Pow(meanSpeedMs, 2))/height)*walkingSpeedHeightMultiplier*weight*duration*minInH) + heightM := height / 100 + return ((walkingCaloriesWeightMultiplier*weight + ((math.Pow(meanSpeedMs, 2))/heightM)*walkingSpeedHeightMultiplier*weight) * duration * minInH) } // Константы для расчета калорий, расходуемых при плавании. From 1d87280a116ba9bae2973e307145ef9f171084ef Mon Sep 17 00:00:00 2001 From: Sergey Mozhnov Date: Wed, 7 Aug 2024 16:55:01 +0300 Subject: [PATCH 12/12] 12check --- ftracker.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ftracker.go b/ftracker.go index c714ed9..ef0f563 100644 --- a/ftracker.go +++ b/ftracker.go @@ -101,8 +101,8 @@ const ( // height float64 — рост пользователя в сантиметрах, необходимо перевести в метры. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { // ваш код здесь - meanSpeedMs := meanSpeed(action, duration) * kmhInMsec - heightM := height / 100 + meanSpeedMs := meanSpeed(action, duration) * kmhInMsec // перевод скорости в м/с + heightM := height / cmInM //перевод роста из сантиметров в метры return ((walkingCaloriesWeightMultiplier*weight + ((math.Pow(meanSpeedMs, 2))/heightM)*walkingSpeedHeightMultiplier*weight) * duration * minInH) }