프로그래밍/Io 14

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

Io 언어 소스: /* * Filename: testHexView_03.io * * Purpose: Show Hexadecimal codes of the given binary file. * * Execute: io testHexView_03.io [filename] * * Data: 2013. 8. 3. */ printUsage := method( writeln("Using: io testHexView_02.io [filename]") ) toHex := method(b, s := "" x1 := (b & 0xF0) >> 4 x2 := b & 0x0F if (x1 < 10) then ( s = s .. ((x1 + (("0x" .. "0" asHex) asNumber)) asCharacter) ) el..

프로그래밍/Io 2013.08.05

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

다음은 초등학교에서 배우는 나눗셈 계산표를 만들어주는 Io 소스 코드이다. Io는 한글 사용에 다소 문제가 있어 소스 코드에 한글을 전혀 사용하지 못하였다. 나눗셈 계산표를 완성하고 나서 약수, 배수 관계를 알려준다. /* * Filename: makeDivisionTable.io * * Purpose: Make a division table in a handy written form. * * Execute: io makeDivisionTable.io 12345 32 * io makeDivisionTable.io 500210 61 * * Date: 2008/05/15 * Author: PH Kim [ pkim ((AT)) scripts.pe.kr ] */ printUsage := method( write..

프로그래밍/Io 2008.05.16

삼각형 출력 예제를 통한 여러 가지 소스 비교 with Io

콘솔에 삼각형 * * * * * * * * * * * * * * * ***************** 을 출력하는 Io 소스 코드를 작성해 보자. 이런 소스 코드의 작성은 학원이나 학교에서 프로그래밍 입문자에게 과제로 많이 주어지는 것 중의 하나이다. 코끼리를 보거나 만진 사람들이 저마다 그 생김새를 말할 때 제각기 다르게 표현할 수 있듯이 이런 소스 코드의 작성도 알고 보면 얼마든지 많은 방법이 있을 것이다. 여기서는 쉬운 코드 부터 작성해 보고 차츰차츰 소스를 바꾸어 가면서 Io 프로그래밍의 기초부분을 터득해 보기로 한다. 모든 소스 코드에서는 삼각형 출력 부분 담당 함수 printTriange()를 별도로 구현하였다. 우선 첫번 째 예제는 Io의 컨솔 출력 메소드 println의 사용법만 알면 누구나..

프로그래밍/Io 2008.05.02

7비트 ASCII 코드표 만들기 예제 with Io

ASCII(애스키)란 American Standard Cpde for Information Interchange의 줄임글로서, 영문자에 기초한 문자 인코딩이다. 이 문자 인코딩에는 C0 제어문자(C0 control character)도 포함되어 있다. ( 참고: ASCII - Wikipedia, the free encyclopedia ) 다음은 7bit ASCII 코드표를 만들어 보여주는 Io 소스 코드이다. 소스 코드 중에 진법변환에 필요한 함수 convertAtoI(String, radix) convertItoA(long, radix) 의 구현도 포함되어 있다. /* * Filename: makeAsciiTable.io * Make a table of ascii codes. * * Execute: i..

프로그래밍/Io 2008.05.02

진법(radix) 표 만들기 예제 with Io

컴퓨터 프로그래밍에서 꼭 알아두어야 할 주요 진법은 당연히 10진법, 2진법, 8진법, 16진법이다. 다음은 0 에서 15 까지의 정수를 10진법, 2진법, 8진법, 16진법의 표로 만들어 보여주는 Io 소스 코드이다. 진법 변환에 필요한 Io 메소드로 string fromBase(radix) string toBase(radix) 가 이미 있지만, 여기에 준하는 메소드 convertAtoI(string, radix) convertItoA(int, radix) 를 Io 코드로 자체 작성하여 사용하였다. /* * Filename: makeRadixTable.io * Show the radix table with 10-, 2-, 8-, 16-radices. * * Execute: io makeRadixTabl..

프로그래밍/Io 2008.05.01

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

다음은 대화형 모드(interactive mode)에서 진법 변환(radix conversion)하는 Io 소스 코드이다. 메뉴는 주메뉴 Command: (S)et radix, (A)bout, (Q)uit or E(x)it 와 부메뉴 SubCommand: 'main()' to goto Main menu, 'exit()' or 'quit()' to exit 로 구성되어 있으며, 진법 변환의 핵심은 string fromBase(radix) // 소스 코드의 40째 쥴 참조 string toBase(radix) // 소스 코드의 41째 쥴 참조 이며, 지원되는 진법은 2진법에서 36진법 까지이다. /* * Filename: convertRadix.io * Convert radix in a interactive..

프로그래밍/Io 2008.04.30

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

다음은 이차방정식 x^2 - x - 1 = 0 의 양의 근 즉 황금비율(golden ratio)을 구하는 Io 애플리케이션 소스 코드이다. 황금비율을 구하는 비례방정식은 1 : x = x : (x+1) 이며, 이를 이차방정식으로 표현한 것이 x^2 - x - 1 = 0 이다. See: http://en.wikipedia.org/wiki/Golden_ratio Io 소스 코드에서 눈여겨 볼 부분: 1) 한 줄 주석문은 // ......... 또는 # ............. 2) 여러줄 블럭 주석문은 /* ........... ............ */ 3) 한글이 포함된 소스틑 반드시 UTF-8 인코딩으로 저장한다. (비록 주석문에만 한글을 썼다라도 ...) 4) 컨솔 출력은 string println..

프로그래밍/Io 2008.04.15

현재 시각 알아내기 for Io

현재 시각을 컨솔에 보여주는 간단한 애플리케이션의 Io 언어 소스 코드이다. UTC란 1970년 1월 1일 0시 0분 0초를 기준으로 하여 경과된 초 단위의 총 시간을 의미한다. * UTC(Universal Time Coordinated, 협정세계시, 協定世界時) /* * Filename: testCTime.io * * Execute: io testCTime.io */ weekNames := list( "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ) monthNames := list( "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Aug", "Sep", "Oct", "Nov", "Dec" ) d := Date clone now := ..

프로그래밍/Io 2008.04.07

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

다항식 p(x) 를 1차 다항식 x - a 로 나눌 때의 몫과 나머지를 구하는 조립제법을 Io 언어로 구현해 보았다. 조립제법은 일명 Horner의 방법이라고도 불리우는데, 이는 x = a 에서 다항식 p(x)의 값 p(a)을 계산하는 가장 빠른 알고리즘이기도 하다. p(x) = (x - a)q(x) + r 여기서 r은 나머지이며 r = p(a) 이다. 또 q(x)는 몫이다. [참고] * 온라인으로 조립제법 표 만들기 손으로 계산하는 조립제법 표 * 온라인으로 구하는 다항식의 도함수: 조립제법을 이용한 다항식의 도함수 # Filename: testSyntheticDivision.io # # Purpose: Find the quotient and remainder when some polynomial is..

프로그래밍/Io 2008.04.07

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

다음 소스 코드는 80컬럼 컨솔에 19단표 출력하기 예제 (2) for Groovy 에 올려진 Groovy 소스 코드를 Io 소스 코드로 고친 것이다. C, C++, Java, Groovy 언어에서는 블럭을 둘러싸는 기호로 중괄호 열기 기호"{"와 중괄호 닫기 기호"}" 를 많이 사용하였지만, Io 언어에서는 반복구문, 제어구문까지 모두 메소드(함수)이므로, 함수의 괄호 열기 기호 "("와 괄호 닫기 기호")"를 많이 사용한다는 것을 잊지 말아야 한다. Groovy 언어에서 변수 처음 사용 시에 def varName = value 처럼 def 예약어를 사용하듯이 Io에서는 varName := value 처럼 (등호 "=" 대신) := 를 사용한다. 일단 변수가 생성되고 나면 나중에는 그 변수가 아무 타입..

프로그래밍/Io 2008.04.07