From 6e2057556d7640127e3948499d0dfc1aba440cbc Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Wed, 18 Dec 2024 00:20:37 +0300 Subject: [PATCH 01/29] first commit --- ftracker.go | 151 ++++++++++++++++------------------------------------ 1 file changed, 47 insertions(+), 104 deletions(-) diff --git a/ftracker.go b/ftracker.go index edf04d5..95e0fec 100644 --- a/ftracker.go +++ b/ftracker.go @@ -1,138 +1,81 @@ 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 // количество сантиметров в метре + + runningCaloriesMeanSpeedMultiplier = 18 // множитель средней скорости + runningCaloriesMeanSpeedShift = 1.79 // среднее количество сжигаемых калорий при беге + + walkingCaloriesWeightMultiplier = 0.035 // множитель массы тела + walkingSpeedHeightMultiplier = 0.029 // множитель роста + + swimmingCaloriesMeanSpeedShift = 1.1 // среднее количество сжигаемых калорий при плавании относительно скорости + swimmingCaloriesWeightMultiplier = 2 // множитель веса при плавании ) -// distance возвращает дистанцию(в километрах), которую преодолел пользователь за время тренировки. -// -// Параметры: -// -// action int — количество совершенных действий (число шагов при ходьбе и беге, либо гребков при плавании). +// distance возвращает дистанцию(в километрах), которую преодолел пользователь за время тренировки func distance(action int) float64 { - return float64(action) * lenStep / mInKm + return float64(action) * lenStep / mInKm } -// meanSpeed возвращает значение средней скорости движения во время тренировки. -// -// Параметры: -// -// action int — количество совершенных действий(число шагов при ходьбе и беге, либо гребков при плавании). -// duration float64 — длительность тренировки в часах. +// meanSpeed возвращает значение средней скорости движения во время тренировки func meanSpeed(action int, duration float64) float64 { - if duration == 0 { - return 0 - } - distance := distance(action) - return distance / duration + if duration == 0 { + return 0 + } + return distance(action) / duration } -// ShowTrainingInfo возвращает строку с информацией о тренировке. -// -// Параметры: -// -// action int — количество совершенных действий(число шагов при ходьбе и беге, либо гребков при плавании). -// trainingType string — вид тренировки(Бег, Ходьба, Плавание). -// duration float64 — длительность тренировки в часах. +// ShowTrainingInfo возвращает строку с информацией о тренировке func ShowTrainingInfo(action int, trainingType string, duration, weight, height float64, lengthPool, countPool int) string { - // ваш код здесь - switch { - case trainingType == "Бег": - distance := ... // вызовите здесь необходимую функцию - speed := ... // вызовите здесь необходимую функцию - calories := ... // вызовите здесь необходимую функцию + switch trainingType { + case "Бег": + 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 := ... // вызовите здесь необходимую функцию + case "Ходьба": + 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 := ... // вызовите здесь необходимую функцию + case "Плавание": + distance := float64(lengthPool*countPool) / mInKm + 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 { - // ваш код здесь - ... + speed := meanSpeed(action, duration) + return (speed*runningCaloriesMeanSpeedMultiplier + runningCaloriesMeanSpeedShift) * weight * duration } -// Константы для расчета калорий, расходуемых при ходьбе. -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 { - // ваш код здесь - ... + speed := meanSpeed(action, duration) + return (walkingCaloriesWeightMultiplier + walkingSpeedHeightMultiplier*speed) * weight * duration } -// Константы для расчета калорий, расходуемых при плавании. -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 + if duration == 0 { + return 0 + } + return float64(lengthPool*countPool) / mInKm / duration } -// SwimmingSpentCalories возвращает количество потраченных калорий при плавании. -// -// Параметры: -// -// lengthPool int — длина бассейна в метрах. -// countPool int — сколько раз пользователь переплыл бассейн. -// duration float64 — длительность тренировки в часах. -// weight float64 — вес пользователя. func SwimmingSpentCalories(lengthPool, countPool int, duration, weight float64) float64 { - // ваш код здесь - ... + speed := swimmingMeanSpeed(lengthPool, countPool, duration) + return (speed*swimmingCaloriesMeanSpeedShift + swimmingCaloriesWeightMultiplier) * weight * duration } From f517a79834a6d46642375812aed82dc2ee75d0d6 Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Wed, 18 Dec 2024 00:26:50 +0300 Subject: [PATCH 02/29] second commit --- ftracker.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ftracker.go b/ftracker.go index 95e0fec..d89df52 100644 --- a/ftracker.go +++ b/ftracker.go @@ -2,7 +2,6 @@ package ftracker import ( "fmt" - "math" ) const ( @@ -22,12 +21,10 @@ const ( swimmingCaloriesWeightMultiplier = 2 // множитель веса при плавании ) -// distance возвращает дистанцию(в километрах), которую преодолел пользователь за время тренировки func distance(action int) float64 { return float64(action) * lenStep / mInKm } -// meanSpeed возвращает значение средней скорости движения во время тренировки func meanSpeed(action int, duration float64) float64 { if duration == 0 { return 0 @@ -35,7 +32,6 @@ func meanSpeed(action int, duration float64) float64 { return distance(action) / duration } -// ShowTrainingInfo возвращает строку с информацией о тренировке func ShowTrainingInfo(action int, trainingType string, duration, weight, height float64, lengthPool, countPool int) string { switch trainingType { case "Бег": From 0ffe03c4563475b6fd5c9e2f4e1ac2370ad785a9 Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Wed, 18 Dec 2024 00:34:23 +0300 Subject: [PATCH 03/29] third commit --- ftracker.go | 47 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/ftracker.go b/ftracker.go index d89df52..b5b2908 100644 --- a/ftracker.go +++ b/ftracker.go @@ -2,8 +2,10 @@ package ftracker import ( "fmt" + "math" ) +// Основные константы, необходимые для расчетов. const ( lenStep = 0.65 // средняя длина шага mInKm = 1000 // количество метров в километре @@ -21,10 +23,12 @@ const ( swimmingCaloriesWeightMultiplier = 2 // множитель веса при плавании ) +// distance возвращает дистанцию (в километрах), которую преодолел пользователь за время тренировки. func distance(action int) float64 { return float64(action) * lenStep / mInKm } +// meanSpeed возвращает значение средней скорости движения во время тренировки. func meanSpeed(action int, duration float64) float64 { if duration == 0 { return 0 @@ -32,38 +36,49 @@ func meanSpeed(action int, duration float64) float64 { return distance(action) / duration } +// ShowTrainingInfo возвращает строку с информацией о тренировке. func ShowTrainingInfo(action int, trainingType string, duration, weight, height float64, lengthPool, countPool int) string { + var dist float64 + var speed float64 + var calories float64 + switch trainingType { case "Бег": - 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) + dist = 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, dist, speed, calories) case "Ходьба": - 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) + dist = 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, dist, speed, calories) case "Плавание": - distance := float64(lengthPool*countPool) / mInKm - 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) + dist = float64(lengthPool*countPool) / mInKm // Преобразуем метры в километры + 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, dist, speed, calories) default: return "неизвестный тип тренировки" } } +// RunningSpentCalories возвращает количество потраченных калорий при беге. func RunningSpentCalories(action int, weight, duration float64) float64 { speed := meanSpeed(action, duration) - return (speed*runningCaloriesMeanSpeedMultiplier + runningCaloriesMeanSpeedShift) * weight * duration + // Формула для расчета калорий при беге + return ((18 * speed * runningCaloriesMeanSpeedShift) * weight / mInKm * duration * minInH) } +// WalkingSpentCalories возвращает количество потраченных калорий при ходьбе. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { speed := meanSpeed(action, duration) - return (walkingCaloriesWeightMultiplier + walkingSpeedHeightMultiplier*speed) * weight * duration + speedInMetersPerSecond := speed * mInKm / minInH / 60 // переводим скорость в метры в секунду + // Формула для расчета калорий при ходьбе + return ((walkingCaloriesWeightMultiplier * weight) + (math.Pow(speedInMetersPerSecond, 2) / height * walkingSpeedHeightMultiplier * weight)) * duration * minInH } +// swimmingMeanSpeed возвращает среднюю скорость при плавании. func swimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 { if duration == 0 { return 0 @@ -71,7 +86,9 @@ func swimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 { return float64(lengthPool*countPool) / mInKm / duration } +// SwimmingSpentCalories возвращает количество потраченных калорий при плавании. func SwimmingSpentCalories(lengthPool, countPool int, duration, weight float64) float64 { speed := swimmingMeanSpeed(lengthPool, countPool, duration) - return (speed*swimmingCaloriesMeanSpeedShift + swimmingCaloriesWeightMultiplier) * weight * duration + // Формула для расчета калорий при плавании + return (speed + swimmingCaloriesMeanSpeedShift) * swimmingCaloriesWeightMultiplier * weight * duration } From df04bb03cf9133b4c97a8e60c5106f9870d71fef Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Wed, 18 Dec 2024 00:38:01 +0300 Subject: [PATCH 04/29] fourth commit --- ftracker.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ftracker.go b/ftracker.go index b5b2908..43d4cc0 100644 --- a/ftracker.go +++ b/ftracker.go @@ -73,7 +73,7 @@ func RunningSpentCalories(action int, weight, duration float64) float64 { // WalkingSpentCalories возвращает количество потраченных калорий при ходьбе. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { speed := meanSpeed(action, duration) - speedInMetersPerSecond := speed * mInKm / minInH / 60 // переводим скорость в метры в секунду + speedInMetersPerSecond := speed * mInKm / (minInH * 60) // скорость в метрах в секунду // Формула для расчета калорий при ходьбе return ((walkingCaloriesWeightMultiplier * weight) + (math.Pow(speedInMetersPerSecond, 2) / height * walkingSpeedHeightMultiplier * weight)) * duration * minInH } From d1b5af2fb8d03d710318618f1b7092de63a85350 Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Wed, 18 Dec 2024 00:41:35 +0300 Subject: [PATCH 05/29] fifth commit --- ftracker.go | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/ftracker.go b/ftracker.go index 43d4cc0..147eaac 100644 --- a/ftracker.go +++ b/ftracker.go @@ -7,20 +7,20 @@ import ( // Основные константы, необходимые для расчетов. 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 // Количество сантиметров в метре - runningCaloriesMeanSpeedMultiplier = 18 // множитель средней скорости - runningCaloriesMeanSpeedShift = 1.79 // среднее количество сжигаемых калорий при беге + runningCaloriesMeanSpeedMultiplier = 18 // Множитель средней скорости для бега + runningCaloriesMeanSpeedShift = 1.79 // Среднее количество сжигаемых калорий при беге - walkingCaloriesWeightMultiplier = 0.035 // множитель массы тела - walkingSpeedHeightMultiplier = 0.029 // множитель роста + walkingCaloriesWeightMultiplier = 0.035 // Множитель массы тела для ходьбы + walkingSpeedHeightMultiplier = 0.029 // Множитель роста для ходьбы - swimmingCaloriesMeanSpeedShift = 1.1 // среднее количество сжигаемых калорий при плавании относительно скорости - swimmingCaloriesWeightMultiplier = 2 // множитель веса при плавании + swimmingCaloriesMeanSpeedShift = 1.1 // Среднее количество сжигаемых калорий при плавании относительно скорости + swimmingCaloriesWeightMultiplier = 2 // Множитель веса при плавании ) // distance возвращает дистанцию (в километрах), которую преодолел пользователь за время тренировки. @@ -54,7 +54,7 @@ func ShowTrainingInfo(action int, trainingType string, duration, weight, height calories = WalkingSpentCalories(action, duration, weight, height) return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, dist, speed, calories) case "Плавание": - dist = float64(lengthPool*countPool) / mInKm // Преобразуем метры в километры + dist = float64(lengthPool*countPool) / 1000 // Дистанция в километрах 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, dist, speed, calories) @@ -67,13 +67,13 @@ func ShowTrainingInfo(action int, trainingType string, duration, weight, height func RunningSpentCalories(action int, weight, duration float64) float64 { speed := meanSpeed(action, duration) // Формула для расчета калорий при беге - return ((18 * speed * runningCaloriesMeanSpeedShift) * weight / mInKm * duration * minInH) + return ((runningCaloriesMeanSpeedMultiplier * speed * runningCaloriesMeanSpeedShift) * weight / mInKm * duration * minInH) } // WalkingSpentCalories возвращает количество потраченных калорий при ходьбе. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { speed := meanSpeed(action, duration) - speedInMetersPerSecond := speed * mInKm / (minInH * 60) // скорость в метрах в секунду + speedInMetersPerSecond := speed * mInKm / (minInH * 60) // Скорость в метрах в секунду // Формула для расчета калорий при ходьбе return ((walkingCaloriesWeightMultiplier * weight) + (math.Pow(speedInMetersPerSecond, 2) / height * walkingSpeedHeightMultiplier * weight)) * duration * minInH } From 31891f32c867ebfe073843ee5d8d82accd71d0a9 Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Wed, 18 Dec 2024 00:46:01 +0300 Subject: [PATCH 06/29] sixth commit --- ftracker.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ftracker.go b/ftracker.go index 147eaac..69b3958 100644 --- a/ftracker.go +++ b/ftracker.go @@ -5,7 +5,6 @@ import ( "math" ) -// Основные константы, необходимые для расчетов. const ( lenStep = 0.65 // Средняя длина шага mInKm = 1000 // Количество метров в километре @@ -73,7 +72,7 @@ func RunningSpentCalories(action int, weight, duration float64) float64 { // WalkingSpentCalories возвращает количество потраченных калорий при ходьбе. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { speed := meanSpeed(action, duration) - speedInMetersPerSecond := speed * mInKm / (minInH * 60) // Скорость в метрах в секунду + speedInMetersPerSecond := speed * mInKm / (minInH * 60) // скорость в метрах в секунду // Формула для расчета калорий при ходьбе return ((walkingCaloriesWeightMultiplier * weight) + (math.Pow(speedInMetersPerSecond, 2) / height * walkingSpeedHeightMultiplier * weight)) * duration * minInH } From d9c58a316f36fd1691fa9785615bf04eb0573e2a Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Wed, 18 Dec 2024 01:06:53 +0300 Subject: [PATCH 07/29] sixth1 commit --- ftracker.go | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/ftracker.go b/ftracker.go index 69b3958..7206a6e 100644 --- a/ftracker.go +++ b/ftracker.go @@ -6,24 +6,26 @@ import ( ) const ( - lenStep = 0.65 // Средняя длина шага + lenStep = 0.65 // Средняя длина шага в метрах mInKm = 1000 // Количество метров в километре minInH = 60 // Количество минут в часе kmhInMsec = 0.278 // Коэффициент для преобразования км/ч в м/с cmInM = 100 // Количество сантиметров в метре - runningCaloriesMeanSpeedMultiplier = 18 // Множитель средней скорости для бега - runningCaloriesMeanSpeedShift = 1.79 // Среднее количество сжигаемых калорий при беге + // Множители для расчета калорий + runningCaloriesMeanSpeedMultiplier = 18 // Множитель для бега + runningCaloriesMeanSpeedShift = 1.79 // Сдвиг для бега - walkingCaloriesWeightMultiplier = 0.035 // Множитель массы тела для ходьбы - walkingSpeedHeightMultiplier = 0.029 // Множитель роста для ходьбы + walkingCaloriesWeightMultiplier = 0.035 // Множитель для веса при ходьбе + walkingSpeedHeightMultiplier = 0.029 // Множитель для роста при ходьбе - swimmingCaloriesMeanSpeedShift = 1.1 // Среднее количество сжигаемых калорий при плавании относительно скорости - swimmingCaloriesWeightMultiplier = 2 // Множитель веса при плавании + swimmingCaloriesMeanSpeedShift = 1.1 // Сдвиг для плавания + swimmingCaloriesWeightMultiplier = 2 // Множитель для веса при плавании ) // distance возвращает дистанцию (в километрах), которую преодолел пользователь за время тренировки. func distance(action int) float64 { + // Возвращаем расстояние, которое прошло действие в метрах, переведенное в километры return float64(action) * lenStep / mInKm } @@ -53,6 +55,7 @@ func ShowTrainingInfo(action int, trainingType string, duration, weight, height calories = WalkingSpentCalories(action, duration, weight, height) return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, dist, speed, calories) case "Плавание": + // Исправленный расчет дистанции плавания dist = float64(lengthPool*countPool) / 1000 // Дистанция в километрах speed = swimmingMeanSpeed(lengthPool, countPool, duration) calories = SwimmingSpentCalories(lengthPool, countPool, duration, weight) @@ -72,7 +75,8 @@ func RunningSpentCalories(action int, weight, duration float64) float64 { // WalkingSpentCalories возвращает количество потраченных калорий при ходьбе. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { speed := meanSpeed(action, duration) - speedInMetersPerSecond := speed * mInKm / (minInH * 60) // скорость в метрах в секунду + // Переводим скорость в метры в секунду + speedInMetersPerSecond := speed * mInKm / (minInH * 60) // Формула для расчета калорий при ходьбе return ((walkingCaloriesWeightMultiplier * weight) + (math.Pow(speedInMetersPerSecond, 2) / height * walkingSpeedHeightMultiplier * weight)) * duration * minInH } @@ -82,6 +86,7 @@ func swimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 { if duration == 0 { return 0 } + // Средняя скорость плавания return float64(lengthPool*countPool) / mInKm / duration } From 4709476f008e58477fff208e0631bbcaa19d2f5d Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Wed, 18 Dec 2024 01:23:17 +0300 Subject: [PATCH 08/29] sixth commit2 --- ftracker.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ftracker.go b/ftracker.go index 7206a6e..801bedf 100644 --- a/ftracker.go +++ b/ftracker.go @@ -68,17 +68,18 @@ func ShowTrainingInfo(action int, trainingType string, duration, weight, height // RunningSpentCalories возвращает количество потраченных калорий при беге. func RunningSpentCalories(action int, weight, duration float64) float64 { speed := meanSpeed(action, duration) - // Формула для расчета калорий при беге - return ((runningCaloriesMeanSpeedMultiplier * speed * runningCaloriesMeanSpeedShift) * weight / mInKm * duration * minInH) + // Исправленная формула для расчета калорий при беге + return ((runningCaloriesMeanSpeedMultiplier*speed + runningCaloriesMeanSpeedShift) * weight * duration) } // WalkingSpentCalories возвращает количество потраченных калорий при ходьбе. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { speed := meanSpeed(action, duration) - // Переводим скорость в метры в секунду - speedInMetersPerSecond := speed * mInKm / (minInH * 60) + // Переводим скорость в метры в секунду с использованием правильного коэффициента + speedInMetersPerSecond := speed * kmhInMsec // Формула для расчета калорий при ходьбе - return ((walkingCaloriesWeightMultiplier * weight) + (math.Pow(speedInMetersPerSecond, 2) / height * walkingSpeedHeightMultiplier * weight)) * duration * minInH + return ((walkingCaloriesWeightMultiplier * weight) + + (math.Pow(speedInMetersPerSecond, 2) / height * walkingSpeedHeightMultiplier * weight)) * duration * minInH } // swimmingMeanSpeed возвращает среднюю скорость при плавании. From 4240c5012bb7fa09c754f5578ffc92918e0f19cd Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Wed, 18 Dec 2024 01:28:00 +0300 Subject: [PATCH 09/29] sixth commit3 --- ftracker.go | 32 +++++++------------------------- 1 file changed, 7 insertions(+), 25 deletions(-) diff --git a/ftracker.go b/ftracker.go index 801bedf..92938d0 100644 --- a/ftracker.go +++ b/ftracker.go @@ -10,7 +10,6 @@ const ( mInKm = 1000 // Количество метров в километре minInH = 60 // Количество минут в часе kmhInMsec = 0.278 // Коэффициент для преобразования км/ч в м/с - cmInM = 100 // Количество сантиметров в метре // Множители для расчета калорий runningCaloriesMeanSpeedMultiplier = 18 // Множитель для бега @@ -23,13 +22,10 @@ const ( swimmingCaloriesWeightMultiplier = 2 // Множитель для веса при плавании ) -// distance возвращает дистанцию (в километрах), которую преодолел пользователь за время тренировки. func distance(action int) float64 { - // Возвращаем расстояние, которое прошло действие в метрах, переведенное в километры return float64(action) * lenStep / mInKm } -// meanSpeed возвращает значение средней скорости движения во время тренировки. func meanSpeed(action int, duration float64) float64 { if duration == 0 { return 0 @@ -37,63 +33,49 @@ func meanSpeed(action int, duration float64) float64 { return distance(action) / duration } -// ShowTrainingInfo возвращает строку с информацией о тренировке. func ShowTrainingInfo(action int, trainingType string, duration, weight, height float64, lengthPool, countPool int) string { - var dist float64 - var speed float64 - var calories float64 + var dist, speed, calories float64 switch trainingType { case "Бег": dist = 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, dist, speed, calories) case "Ходьба": dist = 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, dist, speed, calories) case "Плавание": - // Исправленный расчет дистанции плавания - dist = float64(lengthPool*countPool) / 1000 // Дистанция в километрах + dist = float64(lengthPool*countPool) / mInKm 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, dist, speed, calories) default: return "неизвестный тип тренировки" } + + return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, dist, speed, calories) } -// RunningSpentCalories возвращает количество потраченных калорий при беге. func RunningSpentCalories(action int, weight, duration float64) float64 { speed := meanSpeed(action, duration) - // Исправленная формула для расчета калорий при беге - return ((runningCaloriesMeanSpeedMultiplier*speed + runningCaloriesMeanSpeedShift) * weight * duration) + return (runningCaloriesMeanSpeedMultiplier*speed + runningCaloriesMeanSpeedShift) * weight * duration } -// WalkingSpentCalories возвращает количество потраченных калорий при ходьбе. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { speed := meanSpeed(action, duration) - // Переводим скорость в метры в секунду с использованием правильного коэффициента speedInMetersPerSecond := speed * kmhInMsec - // Формула для расчета калорий при ходьбе - return ((walkingCaloriesWeightMultiplier * weight) + - (math.Pow(speedInMetersPerSecond, 2) / height * walkingSpeedHeightMultiplier * weight)) * duration * minInH + return (walkingCaloriesWeightMultiplier*weight + + (math.Pow(speedInMetersPerSecond, 2)/height)*walkingSpeedHeightMultiplier*weight) * duration * minInH } -// swimmingMeanSpeed возвращает среднюю скорость при плавании. func swimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 { if duration == 0 { return 0 } - // Средняя скорость плавания return float64(lengthPool*countPool) / mInKm / duration } -// SwimmingSpentCalories возвращает количество потраченных калорий при плавании. func SwimmingSpentCalories(lengthPool, countPool int, duration, weight float64) float64 { speed := swimmingMeanSpeed(lengthPool, countPool, duration) - // Формула для расчета калорий при плавании return (speed + swimmingCaloriesMeanSpeedShift) * swimmingCaloriesWeightMultiplier * weight * duration } From 21015bcc66528b2fcd471170fe93a776265e5e01 Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Thu, 19 Dec 2024 00:01:39 +0300 Subject: [PATCH 10/29] another commit --- ftracker.go | 119 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 68 insertions(+), 51 deletions(-) diff --git a/ftracker.go b/ftracker.go index 92938d0..854d82e 100644 --- a/ftracker.go +++ b/ftracker.go @@ -1,81 +1,98 @@ package ftracker import ( - "fmt" - "math" + "fmt" + "math" ) +// Основные константы, необходимые для расчетов. const ( - lenStep = 0.65 // Средняя длина шага в метрах - mInKm = 1000 // Количество метров в километре - minInH = 60 // Количество минут в часе - kmhInMsec = 0.278 // Коэффициент для преобразования км/ч в м/с - - // Множители для расчета калорий - runningCaloriesMeanSpeedMultiplier = 18 // Множитель для бега - runningCaloriesMeanSpeedShift = 1.79 // Сдвиг для бега - - walkingCaloriesWeightMultiplier = 0.035 // Множитель для веса при ходьбе - walkingSpeedHeightMultiplier = 0.029 // Множитель для роста при ходьбе - - swimmingCaloriesMeanSpeedShift = 1.1 // Сдвиг для плавания - swimmingCaloriesWeightMultiplier = 2 // Множитель для веса при плавании + lenStep = 0.65 // средняя длина шага. + mInKm = 1000 // количество метров в километре. + minInH = 60 // количество минут в часе. + kmhInMsec = 0.278 // коэффициент для преобразования км/ч в м/с. + cmInM = 100 // количество сантиметров в метре. ) +// distance возвращает дистанцию (в километрах), которую преодолел пользователь за время тренировки. func distance(action int) float64 { - return float64(action) * lenStep / mInKm + return float64(action) * lenStep / mInKm } +// meanSpeed возвращает значение средней скорости движения во время тренировки. func meanSpeed(action int, duration float64) float64 { - if duration == 0 { - return 0 - } - return distance(action) / duration + if duration == 0 { + return 0 + } + dist := distance(action) + return dist / duration } +// ShowTrainingInfo возвращает строку с информацией о тренировке. func ShowTrainingInfo(action int, trainingType string, duration, weight, height float64, lengthPool, countPool int) string { - var dist, speed, calories float64 + var dist, speed, calories float64 - switch trainingType { - case "Бег": - dist = distance(action) - speed = meanSpeed(action, duration) - calories = RunningSpentCalories(action, weight, duration) - case "Ходьба": - dist = distance(action) - speed = meanSpeed(action, duration) - calories = WalkingSpentCalories(action, duration, weight, height) - case "Плавание": - dist = float64(lengthPool*countPool) / mInKm - speed = swimmingMeanSpeed(lengthPool, countPool, duration) - calories = SwimmingSpentCalories(lengthPool, countPool, duration, weight) - default: - return "неизвестный тип тренировки" - } + switch trainingType { + case "Бег": + dist = distance(action) + speed = meanSpeed(action, duration) + calories = RunningSpentCalories(action, weight, duration) + case "Ходьба": + dist = distance(action) + speed = meanSpeed(action, duration) + calories = WalkingSpentCalories(action, duration, weight, height) + case "Плавание": + dist = float64(lengthPool*countPool) / mInKm + speed = swimmingMeanSpeed(lengthPool, countPool, duration) + calories = SwimmingSpentCalories(lengthPool, countPool, duration, weight) + default: + return "неизвестный тип тренировки" + } - return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, dist, speed, calories) + return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, dist, speed, calories) } +// Константы для расчета калорий, расходуемых при беге. +const ( + runningCaloriesMeanSpeedMultiplier = 18 // множитель средней скорости. + runningCaloriesMeanSpeedShift = 1.79 // сдвиг средней скорости. +) + +// RunningSpentCalories возвращает количество потраченных калорий при беге. func RunningSpentCalories(action int, weight, duration float64) float64 { - speed := meanSpeed(action, duration) - return (runningCaloriesMeanSpeedMultiplier*speed + runningCaloriesMeanSpeedShift) * weight * duration + speed := meanSpeed(action, duration) + return (runningCaloriesMeanSpeedMultiplier*speed + runningCaloriesMeanSpeedShift) * weight * duration } +// Константы для расчета калорий, расходуемых при ходьбе. +const ( + walkingCaloriesWeightMultiplier = 0.035 // множитель массы тела. + walkingSpeedHeightMultiplier = 0.029 // множитель роста. +) + +// WalkingSpentCalories возвращает количество потраченных калорий при ходьбе. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { - speed := meanSpeed(action, duration) - speedInMetersPerSecond := speed * kmhInMsec - return (walkingCaloriesWeightMultiplier*weight + - (math.Pow(speedInMetersPerSecond, 2)/height)*walkingSpeedHeightMultiplier*weight) * duration * minInH + speed := meanSpeed(action, duration) + speedInMetersPerSecond := speed * kmhInMsec + return (walkingCaloriesWeightMultiplier*weight + (math.Pow(speedInMetersPerSecond, 2)/height)*walkingSpeedHeightMultiplier*weight) * duration * minInH } +// Константы для расчета калорий, расходуемых при плавании. +const ( + swimmingCaloriesMeanSpeedShift = 1.1 // среднее количество сжигаемых калорий при плавании. + swimmingCaloriesWeightMultiplier = 2 // множитель веса при плавании. +) + +// swimmingMeanSpeed возвращает среднюю скорость при плавании. func swimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 { - if duration == 0 { - return 0 - } - return float64(lengthPool*countPool) / mInKm / duration + if duration == 0 { + return 0 + } + return float64(lengthPool*countPool) / mInKm / duration } +// SwimmingSpentCalories возвращает количество потраченных калорий при плавании. func SwimmingSpentCalories(lengthPool, countPool int, duration, weight float64) float64 { - speed := swimmingMeanSpeed(lengthPool, countPool, duration) - return (speed + swimmingCaloriesMeanSpeedShift) * swimmingCaloriesWeightMultiplier * weight * duration + speed := swimmingMeanSpeed(lengthPool, countPool, duration) + return (speed + swimmingCaloriesMeanSpeedShift) * swimmingCaloriesWeightMultiplier * weight * duration } From c9963dc6701727929acac645a409b9e657b59bdb Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Thu, 19 Dec 2024 00:18:21 +0300 Subject: [PATCH 11/29] another commit1 --- ftracker.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ftracker.go b/ftracker.go index 854d82e..d56bc9a 100644 --- a/ftracker.go +++ b/ftracker.go @@ -37,20 +37,22 @@ func ShowTrainingInfo(action int, trainingType string, duration, weight, height dist = 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 "Ходьба": dist = 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 "Плавание": dist = float64(lengthPool*countPool) / mInKm 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 "неизвестный тип тренировки" } - return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, dist, speed, calories) -} + // Константы для расчета калорий, расходуемых при беге. const ( @@ -74,7 +76,7 @@ const ( func WalkingSpentCalories(action int, duration, weight, height float64) float64 { speed := meanSpeed(action, duration) speedInMetersPerSecond := speed * kmhInMsec - return (walkingCaloriesWeightMultiplier*weight + (math.Pow(speedInMetersPerSecond, 2)/height)*walkingSpeedHeightMultiplier*weight) * duration * minInH + return (walkingCaloriesWeightMultiplier*weight + (speedInMetersPerSecond**2)/height)*walkingSpeedHeightMultiplier*weight) * duration * minInH } // Константы для расчета калорий, расходуемых при плавании. From cc2edb22b4d94cb4b8327c0a3ef946666d78d435 Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Thu, 19 Dec 2024 00:22:25 +0300 Subject: [PATCH 12/29] another commit3 --- ftracker.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ftracker.go b/ftracker.go index d56bc9a..5faeea9 100644 --- a/ftracker.go +++ b/ftracker.go @@ -5,7 +5,6 @@ import ( "math" ) -// Основные константы, необходимые для расчетов. const ( lenStep = 0.65 // средняя длина шага. mInKm = 1000 // количество метров в километре. @@ -51,7 +50,7 @@ func ShowTrainingInfo(action int, trainingType string, duration, weight, height default: return "неизвестный тип тренировки" } - +} // Константы для расчета калорий, расходуемых при беге. From e2d898c5b854d60d4b9038ca02d0d9208eb339fc Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Thu, 19 Dec 2024 00:26:41 +0300 Subject: [PATCH 13/29] another commit4 --- ftracker.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ftracker.go b/ftracker.go index 5faeea9..14a8ecc 100644 --- a/ftracker.go +++ b/ftracker.go @@ -75,7 +75,7 @@ const ( func WalkingSpentCalories(action int, duration, weight, height float64) float64 { speed := meanSpeed(action, duration) speedInMetersPerSecond := speed * kmhInMsec - return (walkingCaloriesWeightMultiplier*weight + (speedInMetersPerSecond**2)/height)*walkingSpeedHeightMultiplier*weight) * duration * minInH + return (walkingCaloriesWeightMultiplier*weight + (speedInMetersPerSecond**2/height)*walkingSpeedHeightMultiplier*weight) * duration * minInH } // Константы для расчета калорий, расходуемых при плавании. From 45442707654cd049c6a81c35ca45f76fe6770f4f Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Thu, 19 Dec 2024 00:29:34 +0300 Subject: [PATCH 14/29] another commit5 --- ftracker.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ftracker.go b/ftracker.go index 14a8ecc..82d009e 100644 --- a/ftracker.go +++ b/ftracker.go @@ -75,7 +75,7 @@ const ( func WalkingSpentCalories(action int, duration, weight, height float64) float64 { speed := meanSpeed(action, duration) speedInMetersPerSecond := speed * kmhInMsec - return (walkingCaloriesWeightMultiplier*weight + (speedInMetersPerSecond**2/height)*walkingSpeedHeightMultiplier*weight) * duration * minInH + return ((walkingCaloriesWeightMultiplier * weight) + (math.Pow(speed, 2) / (height / cmInM)) * walkingSpeedHeightMultiplier * weight) * duration * minInH } // Константы для расчета калорий, расходуемых при плавании. From f445b5ec1894dfc423726d8228ba0aa662d665bf Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Thu, 19 Dec 2024 00:35:15 +0300 Subject: [PATCH 15/29] another commit6 --- ftracker.go | 103 ++++++++++++++++++++++++++-------------------------- 1 file changed, 52 insertions(+), 51 deletions(-) diff --git a/ftracker.go b/ftracker.go index 82d009e..9a64946 100644 --- a/ftracker.go +++ b/ftracker.go @@ -1,99 +1,100 @@ 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 возвращает дистанцию (в километрах), которую преодолел пользователь за время тренировки. func distance(action int) float64 { - return float64(action) * lenStep / mInKm + return float64(action) * lenStep / mInKm } // meanSpeed возвращает значение средней скорости движения во время тренировки. func meanSpeed(action int, duration float64) float64 { - if duration == 0 { - return 0 - } - dist := distance(action) - return dist / duration + if duration == 0 { + return 0 + } + dist := distance(action) + return dist / duration } // ShowTrainingInfo возвращает строку с информацией о тренировке. func ShowTrainingInfo(action int, trainingType string, duration, weight, height float64, lengthPool, countPool int) string { - var dist, speed, calories float64 - switch trainingType { - case "Бег": - dist = 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 "Ходьба": - dist = 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 "Плавание": - dist = float64(lengthPool*countPool) / mInKm - 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 "неизвестный тип тренировки" - } + heightInMeters := height / cmInM + + var dist, speed, calories float64 + switch trainingType { + case "Бег": + dist = 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, dist, speed, calories) + case "Ходьба": + dist = distance(action) + speed = meanSpeed(action, duration) + calories = WalkingSpentCalories(action, duration, weight, heightInMeters) + return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, dist, speed, calories) + case "Плавание": + dist = float64(lengthPool*countPool) / mInKm + 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, dist, speed, calories) + default: + return "неизвестный тип тренировки" + } } - // Константы для расчета калорий, расходуемых при беге. const ( - runningCaloriesMeanSpeedMultiplier = 18 // множитель средней скорости. - runningCaloriesMeanSpeedShift = 1.79 // сдвиг средней скорости. + runningCaloriesMeanSpeedMultiplier = 18 // множитель средней скорости. + runningCaloriesMeanSpeedShift = 1.79 // сдвиг средней скорости. ) // RunningSpentCalories возвращает количество потраченных калорий при беге. func RunningSpentCalories(action int, weight, duration float64) float64 { - speed := meanSpeed(action, duration) - return (runningCaloriesMeanSpeedMultiplier*speed + runningCaloriesMeanSpeedShift) * weight * duration + speed := meanSpeed(action, duration) + return (runningCaloriesMeanSpeedMultiplier*speed + runningCaloriesMeanSpeedShift) * weight * duration } // Константы для расчета калорий, расходуемых при ходьбе. const ( - walkingCaloriesWeightMultiplier = 0.035 // множитель массы тела. - walkingSpeedHeightMultiplier = 0.029 // множитель роста. + walkingCaloriesWeightMultiplier = 0.035 // множитель массы тела. + walkingSpeedHeightMultiplier = 0.029 // множитель роста. ) // WalkingSpentCalories возвращает количество потраченных калорий при ходьбе. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { - speed := meanSpeed(action, duration) - speedInMetersPerSecond := speed * kmhInMsec - return ((walkingCaloriesWeightMultiplier * weight) + (math.Pow(speed, 2) / (height / cmInM)) * walkingSpeedHeightMultiplier * weight) * duration * minInH + speed := meanSpeed(action, duration) + speedInMetersPerSecond := speed * kmhInMsec + return ((walkingCaloriesWeightMultiplier * weight) + (math.Pow(speedInMetersPerSecond, 2) / height) * walkingSpeedHeightMultiplier * weight) * duration * minInH } // Константы для расчета калорий, расходуемых при плавании. const ( - swimmingCaloriesMeanSpeedShift = 1.1 // среднее количество сжигаемых калорий при плавании. - swimmingCaloriesWeightMultiplier = 2 // множитель веса при плавании. + swimmingCaloriesMeanSpeedShift = 1.1 // среднее количество сжигаемых калорий при плавании. + swimmingCaloriesWeightMultiplier = 2 // множитель веса при плавании. ) // swimmingMeanSpeed возвращает среднюю скорость при плавании. func swimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 { - if duration == 0 { - return 0 - } - return float64(lengthPool*countPool) / mInKm / duration + if duration == 0 { + return 0 + } + return float64(lengthPool*countPool) / mInKm / duration } // SwimmingSpentCalories возвращает количество потраченных калорий при плавании. func SwimmingSpentCalories(lengthPool, countPool int, duration, weight float64) float64 { - speed := swimmingMeanSpeed(lengthPool, countPool, duration) - return (speed + swimmingCaloriesMeanSpeedShift) * swimmingCaloriesWeightMultiplier * weight * duration + speed := swimmingMeanSpeed(lengthPool, countPool, duration) + return (speed + swimmingCaloriesMeanSpeedShift) * swimmingCaloriesWeightMultiplier * weight * duration } From 461531d0dd5554dbdd34d7067fd6ee061f934e3b Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Thu, 19 Dec 2024 00:46:33 +0300 Subject: [PATCH 16/29] another commit7 --- ftracker.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/ftracker.go b/ftracker.go index 9a64946..dfc9dea 100644 --- a/ftracker.go +++ b/ftracker.go @@ -23,8 +23,8 @@ func meanSpeed(action int, duration float64) float64 { if duration == 0 { return 0 } - dist := distance(action) - return dist / duration + distance := distance(action) + return distance / duration } // ShowTrainingInfo возвращает строку с информацией о тренировке. @@ -32,7 +32,6 @@ func ShowTrainingInfo(action int, trainingType string, duration, weight, height heightInMeters := height / cmInM - var dist, speed, calories float64 switch trainingType { case "Бег": dist = distance(action) @@ -40,12 +39,12 @@ func ShowTrainingInfo(action int, trainingType string, duration, weight, height calories = RunningSpentCalories(action, weight, duration) return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, dist, speed, calories) case "Ходьба": - dist = distance(action) + distance = distance(action) speed = meanSpeed(action, duration) calories = WalkingSpentCalories(action, duration, weight, heightInMeters) return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, dist, speed, calories) case "Плавание": - dist = float64(lengthPool*countPool) / mInKm + distance = float64(lengthPool*countPool) / mInKm 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, dist, speed, calories) From e4993be52b13ebc012a92ce9139835922db46d1a Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Thu, 19 Dec 2024 00:49:09 +0300 Subject: [PATCH 17/29] another commit8 --- ftracker.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ftracker.go b/ftracker.go index dfc9dea..9a64946 100644 --- a/ftracker.go +++ b/ftracker.go @@ -23,8 +23,8 @@ func meanSpeed(action int, duration float64) float64 { if duration == 0 { return 0 } - distance := distance(action) - return distance / duration + dist := distance(action) + return dist / duration } // ShowTrainingInfo возвращает строку с информацией о тренировке. @@ -32,6 +32,7 @@ func ShowTrainingInfo(action int, trainingType string, duration, weight, height heightInMeters := height / cmInM + var dist, speed, calories float64 switch trainingType { case "Бег": dist = distance(action) @@ -39,12 +40,12 @@ func ShowTrainingInfo(action int, trainingType string, duration, weight, height calories = RunningSpentCalories(action, weight, duration) return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, dist, speed, calories) case "Ходьба": - distance = distance(action) + dist = distance(action) speed = meanSpeed(action, duration) calories = WalkingSpentCalories(action, duration, weight, heightInMeters) return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, dist, speed, calories) case "Плавание": - distance = float64(lengthPool*countPool) / mInKm + dist = float64(lengthPool*countPool) / mInKm 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, dist, speed, calories) From 5fb8d6243ed4ca9928978674fcacd5bce8460c42 Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Thu, 19 Dec 2024 23:46:21 +0300 Subject: [PATCH 18/29] another iteration11 --- ftracker.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ftracker.go b/ftracker.go index 9a64946..f477e38 100644 --- a/ftracker.go +++ b/ftracker.go @@ -45,7 +45,7 @@ func ShowTrainingInfo(action int, trainingType string, duration, weight, height calories = WalkingSpentCalories(action, duration, weight, heightInMeters) return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, dist, speed, calories) case "Плавание": - dist = float64(lengthPool*countPool) / mInKm + dist = 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, dist, speed, calories) @@ -63,7 +63,7 @@ const ( // RunningSpentCalories возвращает количество потраченных калорий при беге. func RunningSpentCalories(action int, weight, duration float64) float64 { speed := meanSpeed(action, duration) - return (runningCaloriesMeanSpeedMultiplier*speed + runningCaloriesMeanSpeedShift) * weight * duration + return (runningCaloriesMeanSpeedMultiplier*speed + runningCaloriesMeanSpeedShift) * weight/mInKm * duration*minInH } // Константы для расчета калорий, расходуемых при ходьбе. From 41d4081799245ca75ca129dec8cefa37091a99df Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Fri, 20 Dec 2024 00:18:01 +0300 Subject: [PATCH 19/29] another iteration12 --- ftracker.go | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/ftracker.go b/ftracker.go index f477e38..3aca9ca 100644 --- a/ftracker.go +++ b/ftracker.go @@ -23,8 +23,8 @@ func meanSpeed(action int, duration float64) float64 { if duration == 0 { return 0 } - dist := distance(action) - return dist / duration + distance := distance(action) + return distance / duration } // ShowTrainingInfo возвращает строку с информацией о тренировке. @@ -32,23 +32,23 @@ func ShowTrainingInfo(action int, trainingType string, duration, weight, height heightInMeters := height / cmInM - var dist, speed, calories float64 + var distance, speed, calories float64 switch trainingType { case "Бег": - dist = distance(action) + 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, dist, speed, calories) + return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, distance, speed, calories) case "Ходьба": - dist = distance(action) + distance = distance(action) speed = meanSpeed(action, duration) calories = WalkingSpentCalories(action, duration, weight, heightInMeters) - return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, dist, speed, calories) + return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, distance, speed, calories) case "Плавание": - dist = distance(action) + 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, dist, speed, calories) + return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, distance, speed, calories) default: return "неизвестный тип тренировки" } @@ -63,7 +63,7 @@ const ( // RunningSpentCalories возвращает количество потраченных калорий при беге. func RunningSpentCalories(action int, weight, duration float64) float64 { speed := meanSpeed(action, duration) - return (runningCaloriesMeanSpeedMultiplier*speed + runningCaloriesMeanSpeedShift) * weight/mInKm * duration*minInH + return (runningCaloriesMeanSpeedMultiplier * speed + runningCaloriesMeanSpeedShift) * weight/mInKm * duration * minInH } // Константы для расчета калорий, расходуемых при ходьбе. @@ -76,7 +76,7 @@ const ( func WalkingSpentCalories(action int, duration, weight, height float64) float64 { speed := meanSpeed(action, duration) speedInMetersPerSecond := speed * kmhInMsec - return ((walkingCaloriesWeightMultiplier * weight) + (math.Pow(speedInMetersPerSecond, 2) / height) * walkingSpeedHeightMultiplier * weight) * duration * minInH + return (walkingCaloriesWeightMultiplier * weight + (math.Pow(speedInMetersPerSecond, 2) / height) * walkingSpeedHeightMultiplier * weight) * duration * minInH } // Константы для расчета калорий, расходуемых при плавании. @@ -95,6 +95,6 @@ func swimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 { // SwimmingSpentCalories возвращает количество потраченных калорий при плавании. func SwimmingSpentCalories(lengthPool, countPool int, duration, weight float64) float64 { - speed := swimmingMeanSpeed(lengthPool, countPool, duration) + speed := meanSpeed(action, duration) return (speed + swimmingCaloriesMeanSpeedShift) * swimmingCaloriesWeightMultiplier * weight * duration } From 191aa0e2473013bc86818980e288e7a7438613d2 Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Mon, 23 Dec 2024 13:37:39 +0300 Subject: [PATCH 20/29] and another commit --- ftracker.go | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/ftracker.go b/ftracker.go index 3aca9ca..9a0b1eb 100644 --- a/ftracker.go +++ b/ftracker.go @@ -23,8 +23,8 @@ func meanSpeed(action int, duration float64) float64 { if duration == 0 { return 0 } - distance := distance(action) - return distance / duration + dist := distance(action) + return dist / duration } // ShowTrainingInfo возвращает строку с информацией о тренировке. @@ -32,20 +32,20 @@ func ShowTrainingInfo(action int, trainingType string, duration, weight, height heightInMeters := height / cmInM - var distance, speed, calories float64 + var dist, speed, calories float64 switch trainingType { case "Бег": - distance = distance(action) + dist = 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 "Ходьба": - distance = distance(action) + dist = distance(action) speed = meanSpeed(action, duration) calories = WalkingSpentCalories(action, duration, weight, heightInMeters) return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, distance, speed, calories) case "Плавание": - distance = distance(action) + dist = 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) @@ -61,8 +61,9 @@ const ( ) // RunningSpentCalories возвращает количество потраченных калорий при беге. -func RunningSpentCalories(action int, weight, duration float64) float64 { - speed := meanSpeed(action, duration) +func RunningSpentCalories(dist, weight, duration float64, dist float64) float64 { + speed := meanSpeed(dist, duration) + //averageSpeed := dist / duration return (runningCaloriesMeanSpeedMultiplier * speed + runningCaloriesMeanSpeedShift) * weight/mInKm * duration * minInH } @@ -94,7 +95,7 @@ func swimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 { } // SwimmingSpentCalories возвращает количество потраченных калорий при плавании. -func SwimmingSpentCalories(lengthPool, countPool int, duration, weight float64) float64 { - speed := meanSpeed(action, duration) +func SwimmingSpentCalories(dist, duration, weight float64) float64 { + speed := swimmingMeanSpeed(dist, duration) return (speed + swimmingCaloriesMeanSpeedShift) * swimmingCaloriesWeightMultiplier * weight * duration } From 4df226fee4b60c1673a48ff23d417e7a22c3fc04 Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Mon, 23 Dec 2024 13:45:30 +0300 Subject: [PATCH 21/29] and another commit1 --- ftracker.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/ftracker.go b/ftracker.go index 9a0b1eb..3222925 100644 --- a/ftracker.go +++ b/ftracker.go @@ -61,9 +61,8 @@ const ( ) // RunningSpentCalories возвращает количество потраченных калорий при беге. -func RunningSpentCalories(dist, weight, duration float64, dist float64) float64 { - speed := meanSpeed(dist, duration) - //averageSpeed := dist / duration +func RunningSpentCalories(action int, weight, duration float64) float64 { + speed := meanSpeed(action, duration) return (runningCaloriesMeanSpeedMultiplier * speed + runningCaloriesMeanSpeedShift) * weight/mInKm * duration * minInH } @@ -95,7 +94,7 @@ func swimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 { } // SwimmingSpentCalories возвращает количество потраченных калорий при плавании. -func SwimmingSpentCalories(dist, duration, weight float64) float64 { - speed := swimmingMeanSpeed(dist, duration) +func SwimmingSpentCalories(lengthPool, countPool int, duration, weight float64) float64 { + speed := swimmingMeanSpeed(lengthPool, countPool, duration) return (speed + swimmingCaloriesMeanSpeedShift) * swimmingCaloriesWeightMultiplier * weight * duration } From 1ca41fc2eb2b6e5fe4823e75e28103e8698b1397 Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Tue, 24 Dec 2024 00:53:41 +0300 Subject: [PATCH 22/29] one more commit --- ftracker.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ftracker.go b/ftracker.go index 3222925..800f5f0 100644 --- a/ftracker.go +++ b/ftracker.go @@ -38,17 +38,17 @@ func ShowTrainingInfo(action int, trainingType string, duration, weight, height dist = 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) + return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, dist, speed, calories) case "Ходьба": dist = distance(action) speed = meanSpeed(action, duration) calories = WalkingSpentCalories(action, duration, weight, heightInMeters) - return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, distance, speed, calories) + return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, dist, speed, calories) case "Плавание": dist = 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) + return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, dist, speed, calories) default: return "неизвестный тип тренировки" } From 22bbe6e0e47e375917c227c8187da50484b6479a Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Tue, 24 Dec 2024 00:56:22 +0300 Subject: [PATCH 23/29] one more commit1 --- ftracker.go | 1 - 1 file changed, 1 deletion(-) diff --git a/ftracker.go b/ftracker.go index 800f5f0..443417b 100644 --- a/ftracker.go +++ b/ftracker.go @@ -74,7 +74,6 @@ const ( // WalkingSpentCalories возвращает количество потраченных калорий при ходьбе. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { - speed := meanSpeed(action, duration) speedInMetersPerSecond := speed * kmhInMsec return (walkingCaloriesWeightMultiplier * weight + (math.Pow(speedInMetersPerSecond, 2) / height) * walkingSpeedHeightMultiplier * weight) * duration * minInH } From 62e7d347849006848e8ec902d1fc17a415d2a008 Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Tue, 24 Dec 2024 00:58:50 +0300 Subject: [PATCH 24/29] one more commit11 --- ftracker.go | 1 + 1 file changed, 1 insertion(+) diff --git a/ftracker.go b/ftracker.go index 443417b..800f5f0 100644 --- a/ftracker.go +++ b/ftracker.go @@ -74,6 +74,7 @@ const ( // WalkingSpentCalories возвращает количество потраченных калорий при ходьбе. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { + speed := meanSpeed(action, duration) speedInMetersPerSecond := speed * kmhInMsec return (walkingCaloriesWeightMultiplier * weight + (math.Pow(speedInMetersPerSecond, 2) / height) * walkingSpeedHeightMultiplier * weight) * duration * minInH } From f7854baa61f448a7a592481610d388081feba2c4 Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Wed, 25 Dec 2024 18:11:38 +0300 Subject: [PATCH 25/29] n commit --- ftracker.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ftracker.go b/ftracker.go index 800f5f0..b642fb1 100644 --- a/ftracker.go +++ b/ftracker.go @@ -63,7 +63,7 @@ const ( // RunningSpentCalories возвращает количество потраченных калорий при беге. func RunningSpentCalories(action int, weight, duration float64) float64 { speed := meanSpeed(action, duration) - return (runningCaloriesMeanSpeedMultiplier * speed + runningCaloriesMeanSpeedShift) * weight/mInKm * duration * minInH + return (runningCaloriesMeanSpeedMultiplier * speed * runningCaloriesMeanSpeedShift) * weight/mInKm * duration * minInH } // Константы для расчета калорий, расходуемых при ходьбе. From 8156194175788791cfbfa644b6846a2cce825386 Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Wed, 25 Dec 2024 18:19:43 +0300 Subject: [PATCH 26/29] n commit1 --- ftracker.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ftracker.go b/ftracker.go index b642fb1..66b1d5e 100644 --- a/ftracker.go +++ b/ftracker.go @@ -30,7 +30,6 @@ func meanSpeed(action int, duration float64) float64 { // ShowTrainingInfo возвращает строку с информацией о тренировке. func ShowTrainingInfo(action int, trainingType string, duration, weight, height float64, lengthPool, countPool int) string { - heightInMeters := height / cmInM var dist, speed, calories float64 switch trainingType { @@ -74,9 +73,10 @@ const ( // WalkingSpentCalories возвращает количество потраченных калорий при ходьбе. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { + heightInMeters := height / cmInM speed := meanSpeed(action, duration) speedInMetersPerSecond := speed * kmhInMsec - return (walkingCaloriesWeightMultiplier * weight + (math.Pow(speedInMetersPerSecond, 2) / height) * walkingSpeedHeightMultiplier * weight) * duration * minInH + return (walkingCaloriesWeightMultiplier * weight + (math.Pow(speedInMetersPerSecond, 2) / heightInMeters) * walkingSpeedHeightMultiplier * weight) * duration * minInH } // Константы для расчета калорий, расходуемых при плавании. From 018d51f0b47e2466eedf956e84e286d805792cc9 Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Wed, 25 Dec 2024 18:25:05 +0300 Subject: [PATCH 27/29] n commit11 --- ftracker.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ftracker.go b/ftracker.go index 66b1d5e..81672d6 100644 --- a/ftracker.go +++ b/ftracker.go @@ -73,7 +73,7 @@ const ( // WalkingSpentCalories возвращает количество потраченных калорий при ходьбе. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { - heightInMeters := height / cmInM + heightInMeters := height / 100 speed := meanSpeed(action, duration) speedInMetersPerSecond := speed * kmhInMsec return (walkingCaloriesWeightMultiplier * weight + (math.Pow(speedInMetersPerSecond, 2) / heightInMeters) * walkingSpeedHeightMultiplier * weight) * duration * minInH From 7b1cc297cd3defb9c55e794d0462d8f968b0e7f1 Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Wed, 25 Dec 2024 18:35:21 +0300 Subject: [PATCH 28/29] n commit111 --- ftracker.go | 97 +++++++++++++++++++++++++---------------------------- 1 file changed, 46 insertions(+), 51 deletions(-) diff --git a/ftracker.go b/ftracker.go index 81672d6..a36ab6d 100644 --- a/ftracker.go +++ b/ftracker.go @@ -6,11 +6,11 @@ import ( ) 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 возвращает дистанцию (в километрах), которую преодолел пользователь за время тренировки. @@ -27,74 +27,69 @@ func meanSpeed(action int, duration float64) float64 { return dist / duration } -// ShowTrainingInfo возвращает строку с информацией о тренировке. -func ShowTrainingInfo(action int, trainingType string, duration, weight, height float64, lengthPool, countPool int) string { - - - var dist, speed, calories float64 - switch trainingType { - case "Бег": - dist = 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, dist, speed, calories) - case "Ходьба": - dist = distance(action) - speed = meanSpeed(action, duration) - calories = WalkingSpentCalories(action, duration, weight, heightInMeters) - return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, dist, speed, calories) - case "Плавание": - dist = 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, dist, speed, calories) - default: - return "неизвестный тип тренировки" +// swimmingMeanSpeed возвращает среднюю скорость при плавании. +func swimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 { + if duration == 0 { + return 0 } + return float64(lengthPool*countPool) / mInKm / duration } -// Константы для расчета калорий, расходуемых при беге. -const ( - runningCaloriesMeanSpeedMultiplier = 18 // множитель средней скорости. - runningCaloriesMeanSpeedShift = 1.79 // сдвиг средней скорости. -) - // RunningSpentCalories возвращает количество потраченных калорий при беге. func RunningSpentCalories(action int, weight, duration float64) float64 { speed := meanSpeed(action, duration) - return (runningCaloriesMeanSpeedMultiplier * speed * runningCaloriesMeanSpeedShift) * weight/mInKm * duration * minInH + return ((runningCaloriesMeanSpeedMultiplier * speed * runningCaloriesMeanSpeedShift) * weight / mInKm) * duration * minInH } -// Константы для расчета калорий, расходуемых при ходьбе. const ( - walkingCaloriesWeightMultiplier = 0.035 // множитель массы тела. - walkingSpeedHeightMultiplier = 0.029 // множитель роста. + runningCaloriesMeanSpeedMultiplier = 18.0 // Множитель средней скорости. + runningCaloriesMeanSpeedShift = 1.79 // Сдвиг средней скорости. ) // WalkingSpentCalories возвращает количество потраченных калорий при ходьбе. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { - heightInMeters := height / 100 + heightInMeters := height / cmInM speed := meanSpeed(action, duration) speedInMetersPerSecond := speed * kmhInMsec - return (walkingCaloriesWeightMultiplier * weight + (math.Pow(speedInMetersPerSecond, 2) / heightInMeters) * walkingSpeedHeightMultiplier * weight) * duration * minInH + return ((walkingCaloriesWeightMultiplier * weight + (math.Pow(speedInMetersPerSecond, 2)/heightInMeters)*walkingSpeedHeightMultiplier*weight) * duration * minInH) } -// Константы для расчета калорий, расходуемых при плавании. const ( - swimmingCaloriesMeanSpeedShift = 1.1 // среднее количество сжигаемых калорий при плавании. - swimmingCaloriesWeightMultiplier = 2 // множитель веса при плавании. + walkingCaloriesWeightMultiplier = 0.035 // Множитель массы тела. + walkingSpeedHeightMultiplier = 0.029 // Множитель роста. ) -// swimmingMeanSpeed возвращает среднюю скорость при плавании. -func swimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 { - if duration == 0 { - return 0 - } - return float64(lengthPool*countPool) / mInKm / duration -} - // SwimmingSpentCalories возвращает количество потраченных калорий при плавании. func SwimmingSpentCalories(lengthPool, countPool int, duration, weight float64) float64 { speed := swimmingMeanSpeed(lengthPool, countPool, duration) return (speed + swimmingCaloriesMeanSpeedShift) * swimmingCaloriesWeightMultiplier * weight * duration } + +const ( + swimmingCaloriesMeanSpeedShift = 1.1 // Среднее количество сжигаемых калорий при плавании. + swimmingCaloriesWeightMultiplier = 2.0 // Множитель веса при плавании. +) + +// ShowTrainingInfo возвращает строку с информацией о тренировке. +func ShowTrainingInfo(action int, trainingType string, duration, weight, height float64, lengthPool, countPool int) string { + var dist, speed, calories float64 + switch trainingType { + case "Бег": + dist = 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, dist, speed, calories) + case "Ходьба": + dist = 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, dist, speed, calories) + case "Плавание": + speed = swimmingMeanSpeed(lengthPool, countPool, duration) + dist = float64(lengthPool*countPool) / mInKm + calories = SwimmingSpentCalories(lengthPool, countPool, duration, weight) + return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, dist, speed, calories) + default: + return "Неизвестный тип тренировки" + } +} From c209ca2747aff456446214490ebdea3d0dde3cd0 Mon Sep 17 00:00:00 2001 From: st1zz1y Date: Wed, 25 Dec 2024 23:44:54 +0300 Subject: [PATCH 29/29] w commit --- ftracker.go | 99 ++++++++++++++++++++++++++++------------------------- 1 file changed, 52 insertions(+), 47 deletions(-) diff --git a/ftracker.go b/ftracker.go index a36ab6d..0573692 100644 --- a/ftracker.go +++ b/ftracker.go @@ -6,11 +6,11 @@ import ( ) 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 возвращает дистанцию (в километрах), которую преодолел пользователь за время тренировки. @@ -27,69 +27,74 @@ func meanSpeed(action int, duration float64) float64 { return dist / duration } -// swimmingMeanSpeed возвращает среднюю скорость при плавании. -func swimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 { - if duration == 0 { - return 0 +// ShowTrainingInfo возвращает строку с информацией о тренировке. +func ShowTrainingInfo(action int, trainingType string, duration, weight, height float64, lengthPool, countPool int) string { + + + var dist, speed, calories float64 + switch trainingType { + case "Бег": + dist = 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, dist, speed, calories) + case "Ходьба": + dist = 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, dist, speed, calories) + case "Плавание": + dist = 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, dist, speed, calories) + default: + return "неизвестный тип тренировки" } - return float64(lengthPool*countPool) / mInKm / duration } +// Константы для расчета калорий, расходуемых при беге. +const ( + runningCaloriesMeanSpeedMultiplier = 18 // множитель средней скорости. + runningCaloriesMeanSpeedShift = 1.79 // сдвиг средней скорости. +) + // RunningSpentCalories возвращает количество потраченных калорий при беге. func RunningSpentCalories(action int, weight, duration float64) float64 { speed := meanSpeed(action, duration) - return ((runningCaloriesMeanSpeedMultiplier * speed * runningCaloriesMeanSpeedShift) * weight / mInKm) * duration * minInH + return (runningCaloriesMeanSpeedMultiplier * speed * runningCaloriesMeanSpeedShift) * weight/mInKm * duration * minInH } +// Константы для расчета калорий, расходуемых при ходьбе. const ( - runningCaloriesMeanSpeedMultiplier = 18.0 // Множитель средней скорости. - runningCaloriesMeanSpeedShift = 1.79 // Сдвиг средней скорости. + walkingCaloriesWeightMultiplier = 0.035 // множитель массы тела. + walkingSpeedHeightMultiplier = 0.029 // множитель роста. ) // WalkingSpentCalories возвращает количество потраченных калорий при ходьбе. func WalkingSpentCalories(action int, duration, weight, height float64) float64 { - heightInMeters := height / cmInM + heightInMeters := height / 100 speed := meanSpeed(action, duration) speedInMetersPerSecond := speed * kmhInMsec - return ((walkingCaloriesWeightMultiplier * weight + (math.Pow(speedInMetersPerSecond, 2)/heightInMeters)*walkingSpeedHeightMultiplier*weight) * duration * minInH) + return (walkingCaloriesWeightMultiplier * weight + (math.Pow(speedInMetersPerSecond, 2) / heightInMeters) * walkingSpeedHeightMultiplier * weight) * duration * minInH } +// Константы для расчета калорий, расходуемых при плавании. const ( - walkingCaloriesWeightMultiplier = 0.035 // Множитель массы тела. - walkingSpeedHeightMultiplier = 0.029 // Множитель роста. + swimmingCaloriesMeanSpeedShift = 1.1 // среднее количество сжигаемых калорий при плавании. + swimmingCaloriesWeightMultiplier = 2 // множитель веса при плавании. ) +// swimmingMeanSpeed возвращает среднюю скорость при плавании. +func swimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 { + if duration == 0 { + return 0 + } + return float64(lengthPool*countPool) / mInKm / duration +} + // SwimmingSpentCalories возвращает количество потраченных калорий при плавании. func SwimmingSpentCalories(lengthPool, countPool int, duration, weight float64) float64 { speed := swimmingMeanSpeed(lengthPool, countPool, duration) return (speed + swimmingCaloriesMeanSpeedShift) * swimmingCaloriesWeightMultiplier * weight * duration -} - -const ( - swimmingCaloriesMeanSpeedShift = 1.1 // Среднее количество сжигаемых калорий при плавании. - swimmingCaloriesWeightMultiplier = 2.0 // Множитель веса при плавании. -) - -// ShowTrainingInfo возвращает строку с информацией о тренировке. -func ShowTrainingInfo(action int, trainingType string, duration, weight, height float64, lengthPool, countPool int) string { - var dist, speed, calories float64 - switch trainingType { - case "Бег": - dist = 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, dist, speed, calories) - case "Ходьба": - dist = 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, dist, speed, calories) - case "Плавание": - speed = swimmingMeanSpeed(lengthPool, countPool, duration) - dist = float64(lengthPool*countPool) / mInKm - calories = SwimmingSpentCalories(lengthPool, countPool, duration, weight) - return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, dist, speed, calories) - default: - return "Неизвестный тип тренировки" - } -} +} \ No newline at end of file