프로그래밍/C 44

여러 가지 무료 C 컴파일러를 위한 컨솔 입력 테스트 for C

아래의 소스는 Visual Studio 2008 Express (Visual C++ 9.0), GNU C 3.4.4 (gcc), Borland C++ 5.5 (free), Digital Mard (free) C 컴파일러에서 한글도 잘 처리됨을 확인하였다. 그러나 Bloodshed Dev-C++ 에서는 gets()에 의한 한글 입력과 printf()에 의한 한글 출력이 되지 않았다. /* * inputTest.c * * Compile: * gcc inputTest.c * dmc inputTest.c * bcc32 inputTest.c * cl inputTest.c * * Execute: * inputTest 2 */ #include #include #include void printStr(char **);..

프로그래밍/C 2009.02.07

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

다음은 초등학교에서 배우는 나눗셈 계산표를 만들어주는 C 소스 코드이다. 나눗셈 계산표를 완성하고 나서 약수, 배수 관계를 알려준다. /* * Filename: makeDivisionTable.c * * Purpose: Make a division table in a handy written form. * * Compile: cl makeDivisionTable.c * * Execute: makeDivisionTable 12345 32 * makeDivisionTable 500210 61 * * Date: 2008/05/15 * Author: PH Kim [ pkim ((AT)) scripts.pe.kr ] */ #include #include #include #include enum { FALSE, T..

프로그래밍/C 2008.05.16

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

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

프로그래밍/C 2008.04.05

7비트 ASCII 코드표 만들기 예제 with C and Ch

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

프로그래밍/C 2008.03.31

진법(radix) 표 만들기 예제 with C and Ch

컴퓨터 프로그래밍에서 꼭 알아두어야 할 주요 진법은 당연히 10진법, 2진법, 8진법, 16진법이다. 다음은 0 에서 15 까지의 정수를 10진법, 2진법, 8진법, 16진법의 표로 만들어 보여주는 C 소스 코드이다. 진법 변환에 필요한 함수 convertAtoI(string, radix) convertItoA(long, radix) 를 C 코드로 자체 작성하여 사용하였다. (Ch를 사용하면 컴파일 과정 없이 소스 코드를 그대로 실행시킬 수 있다.) /* * Filename: makeRadixTable.c * Show the radix table with 10-, 2-, 8-, 16-radices. * * Compile: cl makeRadixTable.c * Execute: makeRadixTable ..

프로그래밍/C 2008.03.29

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

다음은 대화형 모드(interactive mode)에서 진법 변환(radix conversion)하는 C 소스 코드이다. (Ch를 이용하면 컴파일 하지 않고 소스를 그대로 실행시킬 수 있다.) 메뉴는 주메뉴 Command: (S)et radix, (A)bout, (Q)uit or E(x)it 와 부메뉴 SubCommand: 'main()' to goto Main menu, 'exit()' or 'quit()' to exit 로 구성되어 있으며, 진법 변환을 하는 핵심 함수 convertAtoI()와 convertItoA()의 소스가 자체 제작되어 포함되어 있다. 이를 이용하는 부분은 153~154째 줄에 있는 val = convertAtoI(s, srcRdx); convertItoA((char *) re..

프로그래밍/C 2008.03.28

황금비율(golden ratio) 구하기 with C or Ch

다음은 이차방정식 x^2 - x - 1 = 0 의 양의 근 즉 황금비율(golden ratio)을 구하는 C 애플리케이션 소스이다. 황금비율을 구하는 비례방정식은 1 : x = x : (x+1) 이며, 이를 이차방정식으로 표현한 것이 x^2 - x - 1 = 0 이다. See: Golden ratio - Sajun.org /* * Filename: testGoldenRatio.c * 황금률(즉, 이차방정식 x^2 - x - 1 = 0 의 양의 근)을 계산한다. * * Compile: cl testGoldenRatio.c * * Execute: testGoldenRatio * * Date: 2008/03/24 * Author: PH Kim [ pkim (AT) scripts.pe.kr ] */ #inclu..

프로그래밍/C 2008.03.24

현재 시각 알아내기 for C and Ch

현재 시각을 컨솔에 보여주는 간단한 애플리케이션의 C 언어 소스 코드이다. UTC란 1970년 1월 1일 0시 0분 0초를 기준으로 하여 경과된 초 단위의 총 시간을 의미한다. * UTC(Universal Time Coordinated, 협정세계시, 協定世界時) /* * Filename: testCTime.c * * Compile: cl testCTime.c * * Execute: testCTime */ #include #include char weekNames[7][3] = { "일", "월", "화", "수", "목", "금", "토" }; int main() { time_t timer; struct tm *t; timer = time(NULL); // 현재 시각을 초 단위로 얻기 t = localt..

프로그래밍/C 2008.03.24

GMP 사용 예제 for C

GMP는 The GNU Multiple Precision Arithmetic Library(고정밀도 연산을 위한 GNU 라이브러리)의 줄임글로서 GNU MP라고도 한다. 리눅스 호환 환경이면 대부분 GMP는 이미 설치되어 있을 것이다. GMP의 공식 홈페이지는 http://gmplib.org 이고, GMP는 LGPL 하에서 배포된다. 또 gcc는 리눅스 호환 환경에서 쓸 수 있는 C 컴파일러(GNU C 컴파일러)이다. 대부분의 리눅스 호환 환경에는 gcc가 설치되어 있을 것이다. 다음 소스 코드는 GMP의 설치 테스트를 하기 위한 간단한 예제이다. C 언어에서 GMP 라이브러리를 사용하기 위해서는 헤더 파일 gmp.h를 인클루드한다. 컴파일할 때는 반드시 컴파일 옵션 -lgmp 를 주어야 한다. 또 컴파..

프로그래밍/C 2008.03.19

조립제법(Horner의 방법) 예제 for C and Ch

다항식 p(x) 를 1차 다항식 x - a 로 나눌 때의 몫과 나머지를 구하는 조립제법을 C 언어로 구현해 보았다. 조립제법은 일명 Horner의 방법이라고도 불리우는데, 이는 x = a 에서 다항식 p(x)의 값 p(a)을 계산하는 가장 빠른 알고리즘이기도 하다. p(x) = (x - a)q(x) + r 여기서 r은 나머지이며 r = p(a) 이다. 또 q(x)는 몫이다. [참고] * 온라인으로 조립제법 표 만들기 손으로 계산하는 조립제법 표 * 온라인으로 구하는 다항식의 도함수: 조립제법을 이용한 다항식의 도함수 아래의 소스파일은 Ch를 사용하면 컴파일하지 않고 수정 없이 그대로 실행된다. (실행 예: ch testSyntheticDivision.c 1 2 3 4 5 ) /* * Filename: t..

프로그래밍/C 2008.03.14