Skip to content

Commit

Permalink
done
Browse files Browse the repository at this point in the history
  • Loading branch information
Vladimir Marunin committed Jan 25, 2024
1 parent 7f41dc4 commit 33e93a9
Showing 1 changed file with 40 additions and 40 deletions.
80 changes: 40 additions & 40 deletions ftracker.go
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
package ftracker

import (
"fmt"
"math"
"fmt"
)

// Основные константы, необходимые для расчетов.
const (
lenStep = 0.65 // средняя длина шага.
mInKm = 1000 // количество метров в километре.
minInH = 60 // количество минут в часе.
kmhInMsec = 0.278 // коэффициент для преобразования км/ч в м/с.
cmInM = 100 // количество сантиметров в метре.
lenStep = 0.65 // средняя длина шага.
mInKm = 1000 // количество метров в километре.
minInH = 60 // количество минут в часе.
kmhInMsec = 0.278 // коэффициент для преобразования км/ч в м/с.
cmInM = 100 // количество сантиметров в метре.
)

// distance возвращает дистанцию(в километрах), которую преодолел пользователь за время тренировки.
Expand All @@ -20,7 +19,7 @@ const (
//
// action int — количество совершенных действий (число шагов при ходьбе и беге, либо гребков при плавании).
func distance(action int) float64 {
return float64(action) * lenStep / mInKm
return float64(action) * lenStep / mInKm
}

// meanSpeed возвращает значение средней скорости движения во время тренировки.
Expand All @@ -30,11 +29,11 @@ func distance(action int) float64 {
// action int — количество совершенных действий(число шагов при ходьбе и беге, либо гребков при плавании).
// duration float64 — длительность тренировки в часах.
func meanSpeed(action int, duration float64) float64 {
if duration == 0 {
return 0
}
distance := distance(action)
return distance / duration
if duration == 0 {
return 0
}
distance := distance(action)
return distance / duration
}

// ShowTrainingInfo возвращает строку с информацией о тренировке.
Expand All @@ -45,22 +44,22 @@ func meanSpeed(action int, duration float64) float64 {
// trainingType string — вид тренировки(Бег, Ходьба, Плавание).
// duration float64 — длительность тренировки в часах.
func ShowTrainingInfo(action int, trainingType string, duration, weight, height float64, lengthPool, countPool int) string {
// ваш код здесь
switch {
// ваш код здесь
switch {
case trainingType == "Бег":
distance := ... // вызовите здесь необходимую функцию
speed := ... // вызовите здесь необходимую функцию
calories := ... // вызовите здесь необходимую функцию
distance := distance(action) // вызовите здесь необходимую функцию
speed := meanSpeed(action, duration) // вызовите здесь необходимую функцию
calories := RunningSpentCalories(action, weight, duration) // вызовите здесь необходимую функцию
return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, distance, speed, calories)
case trainingType == "Ходьба":
distance := ... // вызовите здесь необходимую функцию
speed := ... // вызовите здесь необходимую функцию
calories := ... // вызовите здесь необходимую функцию
distance := distance(action) // вызовите здесь необходимую функцию
speed := meanSpeed(action, duration) // вызовите здесь необходимую функцию
calories := WalkingSpentCalories(action, duration, weight, height) // вызовите здесь необходимую функцию
return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, distance, speed, calories)
case trainingType == "Плавание":
distance := ... // вызовите здесь необходимую функцию
speed := ... // вызовите здесь необходимую функцию
calories := ... // вызовите здесь необходимую функцию
distance := distance(action) // вызовите здесь необходимую функцию
speed := swimmingMeanSpeed(lengthPool, countPool, duration) // вызовите здесь необходимую функцию
calories := SwimmingSpentCalories(lengthPool, countPool, duration, weight) // вызовите здесь необходимую функцию
return fmt.Sprintf("Тип тренировки: %s\nДлительность: %.2f ч.\nДистанция: %.2f км.\nСкорость: %.2f км/ч\nСожгли калорий: %.2f\n", trainingType, duration, distance, speed, calories)
default:
return "неизвестный тип тренировки"
Expand All @@ -69,8 +68,8 @@ func ShowTrainingInfo(action int, trainingType string, duration, weight, height

// Константы для расчета калорий, расходуемых при беге.
const (
runningCaloriesMeanSpeedMultiplier = 18 // множитель средней скорости.
runningCaloriesMeanSpeedShift = 1.79 // среднее количество сжигаемых калорий при беге.
runningCaloriesMeanSpeedMultiplier = 18 // множитель средней скорости.
runningCaloriesMeanSpeedShift = 1.79 // среднее количество сжигаемых калорий при беге.
)

// RunningSpentCalories возвращает количество потраченных колорий при беге.
Expand All @@ -81,14 +80,14 @@ const (
// weight float64 — вес пользователя.
// duration float64 — длительность тренировки в часах.
func RunningSpentCalories(action int, weight, duration float64) float64 {
// ваш код здесь
...
// ваш код здесь
return ((runningCaloriesMeanSpeedMultiplier * meanSpeed(action, duration) * runningCaloriesMeanSpeedShift) * weight / mInKm * duration * minInH)
}

// Константы для расчета калорий, расходуемых при ходьбе.
const (
walkingCaloriesWeightMultiplier = 0.035 // множитель массы тела.
walkingSpeedHeightMultiplier = 0.029 // множитель роста.
walkingCaloriesWeightMultiplier = 0.035 // множитель массы тела.
walkingSpeedHeightMultiplier = 0.029 // множитель роста.
)

// WalkingSpentCalories возвращает количество потраченных калорий при ходьбе.
Expand All @@ -100,14 +99,15 @@ const (
// weight float64 — вес пользователя.
// height float64 — рост пользователя.
func WalkingSpentCalories(action int, duration, weight, height float64) float64 {
// ваш код здесь
...
// ваш код здесь
meanSpeedMS := meanSpeed(action, duration) * kmhInMsec
return ((walkingCaloriesWeightMultiplier*weight + (meanSpeedMS*meanSpeedMS/height*cmInM)*walkingSpeedHeightMultiplier*weight) * duration * minInH)
}

// Константы для расчета калорий, расходуемых при плавании.
const (
swimmingCaloriesMeanSpeedShift = 1.1 // среднее количество сжигаемых колорий при плавании относительно скорости.
swimmingCaloriesWeightMultiplier = 2 // множитель веса при плавании.
swimmingCaloriesMeanSpeedShift = 1.1 // среднее количество сжигаемых колорий при плавании относительно скорости.
swimmingCaloriesWeightMultiplier = 2 // множитель веса при плавании.
)

// swimmingMeanSpeed возвращает среднюю скорость при плавании.
Expand All @@ -118,10 +118,10 @@ const (
// countPool int — сколько раз пользователь переплыл бассейн.
// duration float64 — длительность тренировки в часах.
func swimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 {
if duration == 0 {
return 0
}
return float64(lengthPool) * float64(countPool) / mInKm / duration
if duration == 0 {
return 0
}
return float64(lengthPool) * float64(countPool) / mInKm / duration
}

// SwimmingSpentCalories возвращает количество потраченных калорий при плавании.
Expand All @@ -133,6 +133,6 @@ func swimmingMeanSpeed(lengthPool, countPool int, duration float64) float64 {
// duration float64 — длительность тренировки в часах.
// weight float64 — вес пользователя.
func SwimmingSpentCalories(lengthPool, countPool int, duration, weight float64) float64 {
// ваш код здесь
...
// ваш код здесь
return (swimmingMeanSpeed(lengthPool, countPool, duration) + swimmingCaloriesMeanSpeedShift) * swimmingCaloriesWeightMultiplier * weight * duration
}

0 comments on commit 33e93a9

Please sign in to comment.