go_winter_work_2025/go/lesson6/linting/funlen/funlen.go
2025-02-25 20:56:21 +03:00

87 lines
2.3 KiB
Go

package main
import (
"fmt"
"math"
"math/rand"
)
func main() {
longFunc()
}
func longFunc() {
// Создаем массив случайных чисел
nums := make([]int, 100)
for i := 0; i < len(nums); i++ {
nums[i] = rand.Intn(1000)
}
fmt.Println("Исходный массив:", nums)
// Выполняем сортировку пузырьком
for i := 0; i < len(nums)-1; i++ {
for j := i + 1; j < len(nums); j++ {
if nums[i] > nums[j] {
nums[i], nums[j] = nums[j], nums[i]
}
}
}
fmt.Println("Отсортированный массив:", nums)
// Вычисляем среднее значение
sum := 0
for i := 0; i < len(nums); i++ {
sum += nums[i]
}
average := float64(sum) / float64(len(nums))
fmt.Printf("Среднее значение: %.2f\n", average)
// Вычисляем медиану
median := 0
if len(nums)%2 == 0 {
median = (nums[len(nums)/2-1] + nums[len(nums)/2]) / 2
} else {
median = nums[len(nums)/2]
}
fmt.Println("Медиана:", median)
// Вычисляем стандартное отклонение
deviation := 0.0
for i := 0; i < len(nums); i++ {
deviation += (float64(nums[i]) - average) * (float64(nums[i]) - average)
}
deviation = deviation / float64(len(nums))
deviation = math.Sqrt(deviation)
fmt.Printf("Стандартное отклонение: %.2f\n", deviation)
// Выполняем сортировку пузырьком повторно :-)
for i := 0; i < len(nums)-1; i++ {
for j := i + 1; j < len(nums); j++ {
if nums[i] > nums[j] {
nums[i], nums[j] = nums[j], nums[i]
}
}
}
fmt.Println("Отсортированный массив:", nums)
// Выполняем сортировку пузырьком в третий раз для закрепления пройденного материала
for i := 0; i < len(nums)-1; i++ {
for j := i + 1; j < len(nums); j++ {
if nums[i] > nums[j] {
nums[i], nums[j] = nums[j], nums[i]
}
}
}
fmt.Println("Отсортированный массив:", nums)
// Выполняем сортировку пузырьком в последний раз
for i := 0; i < len(nums)-1; i++ {
for j := i + 1; j < len(nums); j++ {
if nums[i] > nums[j] {
nums[i], nums[j] = nums[j], nums[i]
}
}
}
fmt.Println("Отсортированный массив:", nums)
}