Dmitry Telenkov 6 天之前
父節點
當前提交
7eb95dfe96
共有 4 個文件被更改,包括 267 次插入1 次删除
  1. 53 0
      go/stepik/1/array.go
  2. 20 0
      go/stepik/1/format.go
  3. 114 1
      go/stepik/1/hello.go
  4. 80 0
      go/stepik/1/slice.go

+ 53 - 0
go/stepik/1/array.go

@@ -0,0 +1,53 @@
+package main
+
+import "fmt"
+
+func main() {
+	/*
+		var a [3]int
+		var b [3]int = [3]int{1, 2, 3}
+		c := [3]int{1, 2, 3}
+		d := [...]int{1, 2, 3}
+		e := [3]int{1: 12}
+		fmt.Println(a)
+		fmt.Println(b)
+		fmt.Println(c)
+		fmt.Println(d)
+		fmt.Println(e)
+	*/
+	// enumeration()
+	change_array()
+}
+
+func enumeration() {
+	a := [5]int{5, 10, 15, 20, 25}
+
+	for idx := range a {
+		fmt.Println(a[idx])
+	}
+
+	for _, elem := range a {
+		fmt.Println(elem)
+	}
+}
+
+func change_array() {
+	var workArray [10]uint8
+	var index [6]uint8
+
+	for i := 0; i < 10; i++ {
+		fmt.Scan(&workArray[i])
+	}
+
+	for i := 0; i < 6; i++ {
+		fmt.Scan(&index[i])
+	}
+
+	workArray[index[0]], workArray[index[1]] = workArray[index[1]], workArray[index[0]]
+	workArray[index[2]], workArray[index[3]] = workArray[index[3]], workArray[index[2]]
+	workArray[index[4]], workArray[index[5]] = workArray[index[5]], workArray[index[4]]
+
+	for i := 0; i < 10; i++ {
+		fmt.Print(workArray[i], " ")
+	}
+}

+ 20 - 0
go/stepik/1/format.go

@@ -0,0 +1,20 @@
+package main
+
+import "fmt"
+
+func main() {
+	float_format()
+}
+
+func float_format() {
+	var val float64
+
+	fmt.Scan(&val)
+	if val <= 0.0 {
+		fmt.Printf("число %4.2f не подходит", val)
+	} else if val > 10000 {
+		fmt.Printf("%e", val)
+	} else {
+		fmt.Printf("%.4f", val*val)
+	}
+}

+ 114 - 1
go/stepik/1/hello.go

@@ -17,7 +17,13 @@ func main() {
 	// foo2()
 	// foo2()
 	// foo3()
 	// foo3()
 	// foo5()
 	// foo5()
-	foo6()
+	// foo6()
+	// foo7()
+	// time()
+	// triangle2()
+	// average()
+	// min_count()
+	digital_root()
 }
 }
 
 
 func sq() {
 func sq() {
@@ -249,3 +255,110 @@ func foo6() {
 
 
 	}
 	}
 }
 }
+
+func foo7() {
+	var val, reverse int
+	fmt.Scan(&val)
+	d1 := val / 100
+	d2 := (val - d1*100) / 10
+	d3 := val % 10
+	reverse = d3*100 + d2*10 + d1
+	fmt.Println(reverse)
+}
+
+func time() {
+	var val int
+	fmt.Scan(&val)
+	hours := val / 3600
+	minutes := (val - hours*3600) / 60
+
+	fmt.Println("It is", hours, "hours", minutes, "minutes.")
+}
+
+func triangle() {
+	var a, b, c int
+	fmt.Scan(&a)
+	fmt.Scan(&b)
+	fmt.Scan(&c)
+	if (a*a + b*b) == c*c {
+		fmt.Println("Прямоугольный")
+	} else {
+		fmt.Println("Непрямоугольный")
+	}
+}
+
+func triangle2() {
+	var a, b, c int
+	fmt.Scan(&a)
+	fmt.Scan(&b)
+	fmt.Scan(&c)
+
+	if ((a + b) > c) && ((a + c) > b) && ((b + c) > a) {
+		fmt.Println("Существует")
+	} else {
+		fmt.Println("Не существует")
+	}
+}
+
+func average() {
+	var a, b int
+	fmt.Scan(&a)
+	fmt.Scan(&b)
+	avr := float32(a+b) / 2
+	fmt.Printf("%v", avr)
+}
+
+func zero_count() {
+	var n, counter, val int
+	fmt.Scan(&n)
+	for i := 0; i < n; i++ {
+		fmt.Scan(&val)
+		if val == 0 {
+			counter++
+		}
+	}
+	fmt.Println(counter)
+}
+
+func min_count() {
+	var n, min, counter, val int
+	fmt.Scan(&n)
+	fmt.Scan(&min)
+	counter = 1
+	for i := 1; i < n; i++ {
+		fmt.Scan(&val)
+		if val == min {
+			counter++
+			fmt.Println(val, min, counter)
+		} else if val < min {
+			min = val
+			counter = 1
+			fmt.Println("m", val, min, counter)
+		}
+
+	}
+	fmt.Println(counter)
+}
+
+func digital_root() {
+	var val, sum, ret int
+	// var counter = 0
+	var digit int
+	fmt.Scan(&val)
+
+	for {
+		if val == 0 {
+			break
+		}
+		digit = val % 10
+		sum += digit
+		val /= 10
+	}
+
+	if sum > 9 {
+		ret = sum%10 + sum/10
+	} else {
+		ret = sum
+	}
+	fmt.Println(ret)
+}

+ 80 - 0
go/stepik/1/slice.go

@@ -0,0 +1,80 @@
+package main
+
+import "fmt"
+
+func main() {
+	/*
+		var a []int
+		var b []int = []int{2, 4, 6}
+		c := []int{2, 4, 5}
+		d := []int{2: 10}
+
+		fmt.Println(a)
+		fmt.Println(b)
+		fmt.Println(c)
+		fmt.Println(d)
+	*/
+	// createSlice()
+	// funcForSlice()
+	sliceCapacity()
+	// mySlice()
+}
+
+func createSlice() {
+	baseArray := [8]string{"Anna", "Max", "Eva", "Leo", "Nina", "Tom", "Sophie", "Chris"}
+
+	slice1 := baseArray[1:5] // со 2 по 5 элемент
+	slice2 := baseArray[:3]  // c 1 по 3 элемент
+	slice3 := baseArray[4:]  // c 5 до конца
+
+	fmt.Println(slice1)
+	fmt.Println(slice2)
+	fmt.Println(slice3)
+}
+
+func funcForSlice() {
+	numbers := []int{10, 20, 30}
+	numbers = append(numbers, 40, 50)
+
+	fmt.Println(numbers)
+}
+
+func sliceCapacity() {
+	baseArray := [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
+	fmt.Printf("Базовый массив: %v\n", baseArray)
+
+	baseSlice := baseArray[5:8]
+	fmt.Printf(
+		"Срез, основанный на базовом массиве длиной %d и емкостью %d: %v\n",
+		len(baseSlice), cap(baseSlice), baseSlice)
+
+	pointer := fmt.Sprintf("%p", baseSlice)
+
+	baseSlice = append(baseSlice, 10)
+
+	fmt.Printf("Массив: %v\n", baseArray)
+	fmt.Printf(
+		"Срез, основанный на базовом массиве длиной %d и емкостью %d: %v\n",
+		len(baseSlice), cap(baseSlice), baseSlice)
+	fmt.Println(pointer == fmt.Sprintf("%p", baseSlice))
+
+	baseSlice = append(baseSlice, 11, 12, 13)
+
+	fmt.Printf("Массив: %v\n", baseArray)
+	fmt.Printf(
+		"Срез, основанный на базовом массиве длиной %d и емкостью %d: %v\n",
+		len(baseSlice), cap(baseSlice), baseSlice)
+	fmt.Println(pointer == fmt.Sprintf("%p", baseSlice))
+	// fmt.Println(pointer)
+}
+
+func mySlice() {
+	// var baseSlice []int
+	baseSlice := []int{1, 2, 3}
+	// var baseSlice []int = []int{1, 2, 3}
+	fmt.Printf("Type %T\n", baseSlice)
+	fmt.Printf("Len baseSlice: %d, capacity: %d\n", len(baseSlice), cap(baseSlice))
+	fmt.Println(baseSlice)
+
+	// firstSlice :=
+}