프로그래밍/C++ 57

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

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

프로그래밍/C++ 2008.05.16

클래스 상속(subclassing) 예제 with C++

C++ 소스는 한 개의 파일에 여러 개의 클래스가 존재해도 된다. 다음은 두 개의 클래스로 구성되어 있다. Parent는 부모 클래스이고 Child는 Parent에서 상속 받은 자식 클래스이다. // Filename: testSubclassing.cpp #include using namespace std; class Parent { private: char name[21]; public: Parent(const char *); // 생성자 ~Parent() { } // 소멸자 void sayName(); }; class Child : public Parent { private: char name[21]; public: Child(const char *); // 생성자 ~Child() { } // 소멸자 ..

프로그래밍/C++ 2008.04.05

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

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

프로그래밍/C++ 2008.03.31

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

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

프로그래밍/C++ 2008.03.30

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

다음은 대화형 모드(interactive mode)에서 진법 변환(radix conversion)하는 C++ 소스 코드이다. 메뉴는 주메뉴 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()의 소스가 자체 제작되어 포함되어 있다. 이를 이용하는 부분은 157~158째 줄에 있는 val = convertAtoI(s, srcRdx); convertItoA((char *) ret, val, destRdx); 이다. 지원되는 진법은 2진법에서 3..

프로그래밍/C++ 2008.03.29

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

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

프로그래밍/C++ 2008.03.24

현재 시각 알아내기 for C++

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

프로그래밍/C++ 2008.03.24

GMP 사용 예제 for C++

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

프로그래밍/C++ 2008.03.19

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

다항식 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)는 몫이다. [참고] * 온라인으로 조립제법 표 만들기 손으로 계산하는 조립제법 표 * 온라인으로 구하는 다항식의 도함수: 조립제법을 이용한 다항식의 도함수 /* * Filename: testSyntheticDivisionCPP.cpp * * Purpose: Find the quotient and remainder when some polyn..

프로그래밍/C++ 2008.03.14