프로그래밍/Boo 21

대화형 모드의 진법(radix) 변환 예제 with Boo

다음은 대화형 모드(interactive mode)에서 진법 변환(radix conversion)하는 Boo 소스 코드이다. 메뉴는 주메뉴 Command: (S)et radix, (A)bout, (Q)uit or E(x)it 와 부메뉴 SubCommand: 'main()' to goto Main menu, 'exit()' or 'quit()' to exit 로 구성되어 있으며, 진법 변환의 핵심은 소스 코드에 작성된 함수 convertAtoI(string, radix)와 itoa(number, radix)의 사용이다. val as long = convertAtoI(s, srcRdx) ret = itoa(val, destRdx) 지원되는 진법은 2진법에서 36진법까지이다. 또 스트링의 첫글자의 아스키(as..

프로그래밍/Boo 2009.04.03

황금비율(golden ratio) 구하기 with Boo

다음은 이차방정식 x^2 - x - 1 = 0 의 양의 근 즉 황금비율(golden ratio)을 구하는 Boo 애플리케이션 소스이다. 황금비율을 구하는 비례방정식은 1 : x = x : (x+1) 이며, 이를 이차방정식으로 표현한 것이 x^2 - x - 1 = 0 이다. See: http://en.wikipedia.org/wiki/Golden_ratio # Filename: testGoldenRatio.boo # 황금률(즉, 이차방정식 x^2 - x - 1 = 0 의 양의 근)을 계산한다. # # Execute: booi testGoldenRatio.boo # # Date: 2009/04/01 # Author: PH Kim [ pkim (AT) scripts.pe.kr ] import System de..

프로그래밍/Boo 2009.04.01

현재 시각 알아내기 for Boo

현재 시각을 컨솔에 보여주는 간단한 윈도우 .NET용 애플리케이션의 Boo 언어 소스 코드이다. UTC란 1970년 1월 1일 0시 0분 0초를 기준으로 하여 경과된 초 단위의 총 시간을 의미한다. * UTC(Universal Time Coordinated, 협정세계시, 協定世界時) 아래의 Boo 언어 소스코드는 이전에 등록된 두 가지 소스파일 testCTime.py와 testCTime.cs를 보면 이해가 빠를 것이다. 한글 출력을 정상적으로 볼려면 소스파일을 UTF-8 인코딩으로 저장해야 한다. # Filename: testCTime.boo # Execute: booi testCTime.boo import System # Boo case weekNames as List = [ "월", "화", "수",..

프로그래밍/Boo 2009.04.01

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

다음은 초등학교에서 배우는 나눗셈 계산표를 만들어주는 Boo 소스 코드이다. 나눗셈 계산표를 완성하고 나서 약수, 배수 관계를 알려준다. 한글 출력을 정상적으로 볼려면 소스파일을 UTF-8 인코딩으로 저장해야 한다. # Filename: makeDivisionTable.boo # # Purpose: Make a division table in a handy written form. # # Execute: booi makeDivisionTable.boo 12345 32 # booi makeDivisionTable.boo 500210 61 # # Date: 2009/04/01 # Author: PH Kim [ pkim ((AT)) scripts.pe.kr ] import System def printUsag..

프로그래밍/Boo 2009.04.01

조립제법(Horner의 방법) 예제 for Boo

다항식 p(x) 를 1차 다항식 x - a 로 나눌 때의 몫과 나머지를 구하는 조립제법을 Boo 언어로 구현해 보았다. 조립제법은 일명 Horner의 방법이라고도 불리우는데, 이는 x = a 에서 다항식 p(x)의 값 p(a)을 계산하는 가장 빠른 알고리즘이기도 하다. p(x) = (x - a)q(x) + r 여기서 r은 나머지이며 r = p(a) 이다. 또 q(x)는 몫이다. [참고] * 온라인으로 조립제법 표 만들기 손으로 계산하는 조립제법 표 * 온라인으로 구하는 다항식의 도함수: 조립제법을 이용한 다항식의 도함수 아래의 소스파일은 Python용 소스파일 testSyntheticDivision.py를 Boo용으로 수정한 것이다. 소스파일을 저장할 때는 UTF-8 인코딩으로 저장해야 한다. Boo 언..

프로그래밍/Boo 2009.04.01

80컬럼 컨솔에 19단표 출력하기 예제 for Boo

다음은 Python용 소스파일 testForFor.py를 Boo용으로 수정한 것이다. print 문에 쓰일 스트링은 Groovy 언어의 GString 처럼 작성하면 된다. (Groovy 언어에서는 GString이라고 하지만, Boo 언어에서는 string interpolation이라고 한다.) (Groovy 언어의 GString에서는 "$표현식"와 "${표현식}"가 둘 다 가능하지만, Boo 언어의 string interpolation에서는 "${표현식}"만 가능하다.) Boo 언어의 if...else... 조건문 양식은 Python 언어에서와 같이 if 조건식1: 블럭1 elif 조건식2: 블럭2 elif 조건식3: 블럭3 else: 블럭4 이다. 같은 것이 반복되는 List 생성 구문 t as Lis..

프로그래밍/Boo 2009.04.01

(최대공약수 구하기) while... 반복문 예제 for Boo

Boo 언어의 while... 반복문 구문은 Python 언어의 그것과 동일하다. while 조건식: 블럭 스트링을 긴정수(즉 64비트 정수) 타입으로 변환하는 변수에 저장하는 Boo 언어의 구문은 변수명 as long = Convert.ToInt64(스트링) 이다. 소스 파일명: testWhile.boo # Filename: testWhile.boo # # Purpose: Example using the while loop syntax # while .... # # Execute: booi testWhile.boo -200 300 # import System # 사용법 표시 def printUsage(): print "Using: booi testWhile.boo [integer1] [integer2]..

프로그래밍/Boo 2009.04.01

if...else... 조건문 사용 예제 for Boo

Boo 언어의 if...else... 구문은 Python 언어의 그것과 동일하다. if 조건식: ...... elif 조건식: ...... elif 조건식: ....... else: ...... Boo 언어의 주석문은 Python 언어의 것을 써도 되고, C 언어의 것을 써도 된다. 한 줄 주석문 // 주석... 또는 # 주석... 여러 줄 주석문 /* 주석... */ 또는 """ 주석... """ 소스 파일명: testIf.boo """ Filename: testIf.boo Purpose: Example using the conditional control structure syntax if .... else ... Execute: booi testIf.boo [number] """ import Sys..

프로그래밍/Boo 2009.04.01

명령행 인자 처리 예제 for Boo

윈도우 계열에서 Boo 언어는 .NET 환경에서 동작한다. Boo 언어의 구문 몸체는 Python 언어의 것을 빌려 왔지만, IronPython 처럼 그 실행 환경을 .NET으로 삼고 있다. (Boo 언어의 소스코드에서도 Python 언어 처럼 들여쓰기가 중요하다.) Python 언어에서 명령행 인자는 sys.argv 라는 변수로 처리하지만, Boo 언어에서 명령행 인자는 argv 라는 변수로 처리한다. 명령행 인자의 갯수는 argv.Length의 값으로 알 수 있다. (Python 언어에서 처럼 len() 함수를 써서 len(argv)로 해도 된다.) 또 스트링을 부동소수점수로 변환할 때는 System.Convert.ToDouble(스트링)을 사용한다. import System 구문을 사용하였으면 Co..

프로그래밍/Boo 2009.04.01

구구단 출력 예제 for Boo

Boo 언어의 구문은 Python 언어의 그것과 매우 닮았다.       def functionName(parameter1  as 타입1, ... , parameterN  as 타입N):             block이다.또 Boo 언어의 반복문 양식은 Python  언어 처럼       for varName in Range:             block이다.또 Boo 언어의 print 문은 Python  언어의 것과 Groovy 언의의 것을 섞어 놓은 듯하다.즉, Python 언어의 print 문 처럼 새줄 문자(\n)를 출력하며, Groovy 언어의 print 문처럼 GString을 스트링으로 변환하여 출력한다.소스 파일명: forTest.boo----------------------------..

프로그래밍/Boo 2009.04.01