Skip to content

Commit

Permalink
Merge pull request unknwon#318 from appleboy/patch-4
Browse files Browse the repository at this point in the history
fix: coding style and file format for chapter 7.
  • Loading branch information
unknwon committed Feb 11, 2017
2 parents 759272e + e6d601d commit c541307
Show file tree
Hide file tree
Showing 15 changed files with 375 additions and 375 deletions.
44 changes: 22 additions & 22 deletions eBook/exercises/chapter_7/array_value.go
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
package main

import "fmt"

func main() {
var arr1 [5]int
for i:=0; i < len(arr1); i++ {
arr1[i] = i * 2
}
arr2 := arr1
arr2[2] = 100
for i:=0; i < len(arr1); i++ {
fmt.Printf("Array arr1 at index %d is %d\n", i, arr1[i])
}
fmt.Println()
for i:=0; i < len(arr2); i++ {
fmt.Printf("Array arr2 at index %d is %d\n", i, arr2[i])
}
}
package main

import "fmt"

func main() {
var arr1 [5]int

for i := 0; i < len(arr1); i++ {
arr1[i] = i * 2
}

arr2 := arr1
arr2[2] = 100

for i := 0; i < len(arr1); i++ {
fmt.Printf("Array arr1 at index %d is %d\n", i, arr1[i])
}
fmt.Println()
for i := 0; i < len(arr2); i++ {
fmt.Printf("Array arr2 at index %d is %d\n", i, arr2[i])
}
}
54 changes: 27 additions & 27 deletions eBook/exercises/chapter_7/bubblesort.go
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
// Q14_Bubblesort.go
package main

import (
"fmt"
)

func main() {
sla := []int{2, 6, 4, -10, 8, 89, 12, 68, -45, 37}
fmt.Println("before sort: ",sla)
// sla is passed via call by value, but since sla is a reference type
// the underlying slice is array is changed (sorted)
bubbleSort(sla)
fmt.Println("after sort: ",sla)
}

func bubbleSort(sl []int) {
// passes through the slice:
for pass:=1; pass < len(sl); pass++ {
// one pass:
for i:=0; i < len(sl) - pass; i++ { // the bigger value 'bubbles up' to the last position
if sl[i] > sl[i+1] {
sl[i], sl[i+1] = sl[i+1], sl[i]
}
}
}
}
// Q14_Bubblesort.go
package main

import (
"fmt"
)

func main() {
sla := []int{2, 6, 4, -10, 8, 89, 12, 68, -45, 37}
fmt.Println("before sort: ", sla)
// sla is passed via call by value, but since sla is a reference type
// the underlying slice is array is changed (sorted)
bubbleSort(sla)
fmt.Println("after sort: ", sla)
}

func bubbleSort(sl []int) {
// passes through the slice:
for pass := 1; pass < len(sl); pass++ {
// one pass:
for i := 0; i < len(sl)-pass; i++ { // the bigger value 'bubbles up' to the last position
if sl[i] > sl[i+1] {
sl[i], sl[i+1] = sl[i+1], sl[i]
}
}
}
}
36 changes: 18 additions & 18 deletions eBook/exercises/chapter_7/fibonacci_array.go
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package main

import "fmt"

var fibs [50]int64

func main() {
fibs[0] = 1
fibs[1] = 1
for i:= 2; i < 50; i++ {
fibs[i] = fibs[i-1] + fibs[i-2]
}
for i:=0; i < 50; i++ {
fmt.Printf("The %d-th Fibonacci number is: %d\n", i, fibs[i])
}
}
package main

import "fmt"

var fibs [50]int64

func main() {
fibs[0] = 1
fibs[1] = 1

for i := 2; i < 50; i++ {
fibs[i] = fibs[i-1] + fibs[i-2]
}

for i := 0; i < 50; i++ {
fmt.Printf("The %d-th Fibonacci number is: %d\n", i, fibs[i])
}
}
44 changes: 22 additions & 22 deletions eBook/exercises/chapter_7/fibonacci_funcarray.go
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
package main

import "fmt"

var term = 15

func main() {
result := fibarray(term)
for ix, fib := range result {
fmt.Printf("The %d-th Fibonacci number is: %d\n", ix, fib)
}
}

func fibarray(term int) []int {
farr := make([]int, term)
farr[0], farr[1] = 1, 1
for i:= 2; i < term; i++ {
farr[i] = farr[i-1] + farr[i-2]
}
return farr
}
package main

import "fmt"

var term = 15

func main() {
result := fibarray(term)
for ix, fib := range result {
fmt.Printf("The %d-th Fibonacci number is: %d\n", ix, fib)
}
}

func fibarray(term int) []int {
farr := make([]int, term)
farr[0], farr[1] = 1, 1

for i := 2; i < term; i++ {
farr[i] = farr[i-1] + farr[i-2]
}
return farr
}
25 changes: 12 additions & 13 deletions eBook/exercises/chapter_7/for_array.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
package main

import "fmt"

func main() {
var arr [15]int
for i:=0; i < 15; i++ {
arr[i] = i
}
fmt.Println(arr) // [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]


}
package main

import "fmt"

func main() {
var arr [15]int
for i := 0; i < 15; i++ {
arr[i] = i
}
fmt.Println(arr) // [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]

}
46 changes: 23 additions & 23 deletions eBook/exercises/chapter_7/insert_slice.go
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
// insert_slice.go
package main

import (
"fmt"
)

func main() {
s := []string{"M", "N", "O", "P", "Q", "R"}
in := []string{"A", "B", "C"}
res := InsertStringSlice(s, in, 0) // at the front
fmt.Println(res) // [A B C M N O P Q R]
res = InsertStringSlice(s, in, 3) // [M N O A B C P Q R]
fmt.Println(res)
}

func InsertStringSlice(slice, insertion []string, index int) []string {
result := make([]string, len(slice) + len(insertion))
at := copy(result, slice[:index])
at += copy(result[at:], insertion)
copy(result[at:], slice[index:])
return result
}
// insert_slice.go
package main

import (
"fmt"
)

func main() {
s := []string{"M", "N", "O", "P", "Q", "R"}
in := []string{"A", "B", "C"}
res := InsertStringSlice(s, in, 0) // at the front
fmt.Println(res) // [A B C M N O P Q R]
res = InsertStringSlice(s, in, 3) // [M N O A B C P Q R]
fmt.Println(res)
}

func InsertStringSlice(slice, insertion []string, index int) []string {
result := make([]string, len(slice)+len(insertion))
at := copy(result, slice[:index])
at += copy(result[at:], insertion)
copy(result[at:], slice[index:])
return result
}
50 changes: 25 additions & 25 deletions eBook/exercises/chapter_7/magnify_slice.go
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
package main

import "fmt"

var s []int

func main() {
s = []int{1, 2, 3}
fmt.Println("The length of s before enlarging is:", len(s))
fmt.Println(s)
s = enlarge(s, 5)
fmt.Println("The length of s after enlarging is:", len(s))
fmt.Println(s)
}

func enlarge(s []int, factor int) []int {
ns := make([]int, len(s) * factor)
// fmt.Println("The length of ns is:", len(ns))
copy(ns, s)
//fmt.Println(ns)
s = ns
//fmt.Println(s)
//fmt.Println("The length of s after enlarging is:", len(s))
return s
}
package main

import "fmt"

var s []int

func main() {
s = []int{1, 2, 3}
fmt.Println("The length of s before enlarging is:", len(s))
fmt.Println(s)
s = enlarge(s, 5)
fmt.Println("The length of s after enlarging is:", len(s))
fmt.Println(s)
}

func enlarge(s []int, factor int) []int {
ns := make([]int, len(s)*factor)
// fmt.Println("The length of ns is:", len(ns))
copy(ns, s)
//fmt.Println(ns)
s = ns
//fmt.Println(s)
//fmt.Println("The length of s after enlarging is:", len(s))
return s
}
64 changes: 32 additions & 32 deletions eBook/exercises/chapter_7/map_function.go
Original file line number Diff line number Diff line change
@@ -1,32 +1,32 @@
package main

import "fmt"

func main() {
list := []int{0, 1, 2, 3, 4, 5, 6, 7}
mf := func(i int) int {
return i * 10
}
/*
result := mapFunc(mf, list)
for _, v := range result {
fmt.Println(v)
}
*/
println()
// shorter:
fmt.Printf("%v", mapFunc(mf, list) )
}

func mapFunc(mf func(int) int, list []int) ([]int) {
result := make([]int, len(list))
for ix, v := range list {
result[ix] = mf(v)
}
/*
for ix := 0; ix<len(list); ix++ {
result[ix] = mf(list[ix])
}
*/
return result
}
package main

import "fmt"

func main() {
list := []int{0, 1, 2, 3, 4, 5, 6, 7}
mf := func(i int) int {
return i * 10
}
/*
result := mapFunc(mf, list)
for _, v := range result {
fmt.Println(v)
}
*/
println()
// shorter:
fmt.Printf("%v", mapFunc(mf, list))
}

func mapFunc(mf func(int) int, list []int) []int {
result := make([]int, len(list))
for ix, v := range list {
result[ix] = mf(v)
}
/*
for ix := 0; ix<len(list); ix++ {
result[ix] = mf(list[ix])
}
*/
return result
}
Loading

0 comments on commit c541307

Please sign in to comment.