average.go updated to process a file of numbers provide via commandline
This commit is contained in:
		
							
								
								
									
										39
									
								
								average.go
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								average.go
									
									
									
									
									
								
							@@ -1,13 +1,44 @@
 | 
				
			|||||||
package main
 | 
					package main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import "fmt"
 | 
					import (
 | 
				
			||||||
 | 
						"bufio"
 | 
				
			||||||
 | 
						"fmt"
 | 
				
			||||||
 | 
						"log"
 | 
				
			||||||
 | 
						"os"
 | 
				
			||||||
 | 
						"strconv"
 | 
				
			||||||
 | 
						"strings"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"git.linuxhg.com/john-okeefe/keyboard"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func Error(err error) {
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							log.Fatal(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func average() {
 | 
					func average() {
 | 
				
			||||||
	numbers := [3]float64{71.8, 56.2, 89.5}
 | 
						fmt.Printf("What is the name of the file: ")
 | 
				
			||||||
 | 
						fileString, err := keyboard.GetString()
 | 
				
			||||||
 | 
						Error(err)
 | 
				
			||||||
 | 
						fileString = strings.TrimSpace(fileString)
 | 
				
			||||||
 | 
						file, err := os.Open(fileString)
 | 
				
			||||||
 | 
						Error(err)
 | 
				
			||||||
	var sum float64 = 0
 | 
						var sum float64 = 0
 | 
				
			||||||
	for _, number := range numbers {
 | 
						scanner := bufio.NewScanner(file)
 | 
				
			||||||
 | 
						counter := 0
 | 
				
			||||||
 | 
						for scanner.Scan() {
 | 
				
			||||||
 | 
							number, err := strconv.ParseFloat(scanner.Text(), 64)
 | 
				
			||||||
 | 
							Error(err)
 | 
				
			||||||
		sum += number
 | 
							sum += number
 | 
				
			||||||
 | 
							counter++
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	sampleCount := float64(len(numbers))
 | 
						err = file.Close()
 | 
				
			||||||
 | 
						Error(err)
 | 
				
			||||||
 | 
						if scanner.Err() != nil {
 | 
				
			||||||
 | 
							log.Fatal(scanner.Err())
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						sampleCount := float64(counter)
 | 
				
			||||||
	fmt.Printf("Average: %0.2f\n", sum/sampleCount)
 | 
						fmt.Printf("Average: %0.2f\n", sum/sampleCount)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user