프로그래밍/Go 24

Go 1.2 설치 후 에러 메시지(pack: cannot open $WORK\command-line-arguments\_obj\_go_.8) 해결하기

* Go 1.2 내려받기 (윈도우즈 용으로는 zip 파일이든 msi 파일이든 아무거나 내려받아 설치해도 된다.) 아래에서는 32비트 윈도우 XP 용으로 내려받아 테스트하였다. Go 1.2 를 폴더 d:\go12 에 설치하였다. * 테스트에 사용된 예제 파일: hello.go package main import "fmt" func main() { fmt.Printf("hello, world\n") } * Go 1.0.2 를 사용할 때 처럼, 명령(cmd)창을 열고 환경변수 PATH 를 설정한다. 프롬프트> set PATH=d:\go12\bin;%PATH% * go run 멸형으로 hello.go 를 실행한다. 프롬프트> go run hello.go # command-line-arguments pack: c..

프로그래밍/Go 2014.03.02

이진 파일을 읽어서 16진수로 보여주는 HexView 소스 with Go

Go 언어 소스: /* * Filename: testHexView_02.go * * Purpose: Show Hexadecimal codes of the given binary file. * * Execute: go run testHexView_02.go [filename] * * or * * Compile: go build testHexView_02.go * Execute: ./testHexView_02.go [filename] * * Date: 2013. 8. 3. */ package main import ( "fmt" "os" ) func print(str string) { fmt.Printf("%s", str); } func println(str string) { fmt.Printf("%s\n",..

프로그래밍/Go 2013.08.05

Go 언어로 평방근, 입방근, n제곱근 구하는 함수를 구현하고 테스트하기

음이 아닌 실수 A 의 평방근 sqrt(A) 를 구하는 Heron 의 방법: 반복함수 g(x) = (x + A/x) / 2 를 이용 실수 A 의 n제곱근 root(n, A) 를 구하는 Newton-Raphson 의 방법 반복함수 g(x) = ((n-1)*x + A/(x**(n - 1))) / n 를 이용 n = 2 인 경우에는 Newton-Raphson 의 방법이 Heron 의 방법과 동일하다. (참조. http://en.wikipedia.org/wiki/Newton's_method ) Go 언어로 프로그래밍을 할 때 import 구문에 "math" 를 추가하고, 소스에서 math.Pow(밑수, 지수) 함수를 사용하여 지수 계산을 할 수 있다. 하지만 차후 필요한 데가 있을 것 같아서 이와 유사한 n 제..

프로그래밍/Go 2013.01.12

Go 언어로 역삼각함수, 역쌍곡선함수 값을 구하는 예제

역삼각함수란 삼각함수의 역함수를 의미하고, 역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다. 수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데, Go 언어에서는 math.Asin() 함수로 구현되어 있다. /* * Filename: testArcSine.go * * Execute: go run testArcSine.go * * Or * * Compile: go build testArcSine.go * Execute: testArcSine * * Date: 2013. 1. 1. * Copyright (c) pkim _AT_ scripts.pe.kr */ package main import ( "fmt" "math" ) func asinh(x float64) float64 { y := math.Log..

프로그래밍/Go 2013.01.01

Go 언어로 30!(30팩토리얼) 까지 정확하게 계산하기

Go 언어의 int64 타입은 C 언어의 long long 터입처럼 64비트 부호 았는 정수 타입이다. 이 타입으로는 20! 까지만 정확하게 게산된다. (Go 언어의 int64 타입으로 계산 가능한 최대 팩토리얼은? 참조) 하지만 Go 언어의 "math/big" 패키지를 사용하면 (C 언어의 GMP 라이브러리를 쓰는 것 처럼) 무제한 자리수의 정수 계산이 가능하다. 다음 소스는 C 언어로 GMP 라이브러리를 이용하여 30! 까지 정확하게 계산하기의 C 언어 소스 recFactGMP01.c를 Go 언어용으로 수정한 것이다. * 소스 파일명: recBigFact01.go /* * Filename: recBigFact01.go * * Execute: go run recBigFact01.go * * or * *..

프로그래밍/Go 2012.06.29

손으로 계산하는 긴 자리 곱셈표 만들기 with Go

초등학교 때 배우는 두 정수의 곱셈표를 만들어 주는 Go 소스이다. /* * Filename: makeMultTable.go * * Print a multiplication table. * * Execute: go run makeMultTable.go 230 5100 * * or * * Compile: go build makeMultTable.go * Execute: ./makeMultTable 230 5100 * * Date: 2012/06/28 * Author: pkim (AT) scripts.pe.kr */ package main import ( "fmt" "os" "strconv" ) func println(s string) { fmt.Printf("%s\n", s) } func print(s s..

프로그래밍/Go 2012.06.28

손으로 만드는 나눗셈 계산표 with Go

다음은 초등학교에서 배우는 나눗셈 계산표를 만들어주는 Go 언어 소스 코드이다. 나눗셈 계산표를 완성하고 나서 약수, 배수 관계를 알려준다. /* * Filename: makeDivisionTable.go * * Purpose: Make a division table in a handy written form. * * Execute: go run makeDivisionTable 12345 32 * Execute: go run makeDivisionTable 500210 61 * * or * * Compile: go build makeDivisionTable.go * Execute: ./makeDivisionTable 12345 32 * Execute: ./makeDivisionTable 500210 61..

프로그래밍/Go 2012.06.27