2012/04 16

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

다음은 대화형 모드(interactive mode)에서 진법 변환(radix conversion)하는 Objective-C 소스 코드이다. 이 소스는 C 언어 용으로 만들어 두었던 것을 아주 조금 수정한 것이다. 19쩨 줄의 enum { FALSE, TRUE }; 부분은 주석 처리하였는데. Objective-C에서는 TRUE와 FALSE가 이미 정의되어 있기 때문이다. 메뉴는 주메뉴 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()의 소..

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

다음은 이차방정식 x^2 - x - 1 = 0 의 양의 근 즉 황금비율(golden ratio)을 구하는 C 애플리케이션 소스이다. 황금비율을 구하는 비례방정식은 1 : x = x : (x+1) 이며, 이를 이차방정식으로 표현한 것이 x^2 - x - 1 = 0 이다. See: Golden ratio - Sajun.org 아래의 소스파일은 C 언어용으로 민들어 두었던 소스 황금비율(golden ratio) 구하기 withfC and Ch 를 아주 조금 수정한 것이다. 수정한 부분은 #include를 #import로 바꾸고, 또 #import 를 추가하고, 또 double 타입의 부동소수점수를 출력하기위한 printf 포맷에 %lf 대신 %g를 사용하역다. (만일 Foundation.h 를 수입(impor..

현재 시각 알아내기 for Objective-C

현재 시각을 컨솔에 보여주는 간단한 애플리케이션의 Objective-C 언어 소스 코드이다. UTC란 1970년 1월 1일 0시 0분 0초를 기준으로 하여 경과된 초 단위의 총 시간을 의미한다. * UTC(Universal Time Coordinated, 협정세계시, 協定世界時) 아래의 소스파일은 C 언어용으로 민들어 두었던 소스 현재 시각 알아내기 for C and Ch 를 아주 조금 수정한 것이다. 수정한 부분은 #include를 #import로 바꾸고, 또 #import 를 추가했을 뿐이다. 이 소스에서는 이 수입 구문이 없어도 된다. 컴파일은 Dev-C++ 개발 도구에서 Ctrl+F11 을 클릭한다. /* * Filename: testCTimeMain.m * * Compile: Click Ctrl..

리눅스 환경에 MPFR 설치와 테스트

우선 위키피디아에서 소개하는 MPFR의 설명을 보자 GNU MPFR (for GNU Multiple Precision Floating-Point Reliably[1]) is a portable C library for arbitrary-precision binary floating-point computation with correct rounding, based on GNU Multi-Precision Library. 또 다음은 MPFR 홈페이지에서 소개하는 MPFR의 의미이다. The main goal of MPFR is to provide a library for multiple-precision floating-point computation which is both efficient and ha..

프로그래밍/C 2012.04.30

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

다항식 p(x) 를 1차 다항식 x - a 로 나눌 때의 몫과 나머지를 구하는 조립제법을 Objectiive-C 언어로 구현해 보았다. 조립제법은 일명 Horner의 방법이라고도 불리우는데, 이는 x = a 에서 다항식 p(x)의 값 p(a)을 계산하는 가장 빠른 알고리즘이기도 하다. p(x) = (x - a)q(x) + r 여기서 r은 나머지이며 r = p(a) 이다. 또 q(x)는 몫이다. [참고] * 온라인으로 조립제법 표 만들기 손으로 계산하는 조립제법 표 * 온라인으로 구하는 다항식의 도함수: 조립제법을 이용한 다항식의 도함수 아래의 소스파일은 C 언어용으로 민들어 두었던 소스 조립제법(Horner의 방법) 예제 for C and Ch 를 아주 조금 수정한 것이다. 수정한 부분은 #include..

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

다음은 C용으로 만들어 둔 소스파일 testForFor.c(참조: 80컬럼 컨솔에 19단표 출력하기 예제 for C )를 Objective-C용 소스로 고친 것이다. 고쳐진 내용은 #import 부근 뿐이다. 특히 #import 가 중요하다. 스트링을 처리하고 전달하기 위해 메모리 할당(allocation)과 해제(free)를 하면서 동적 메모리(dynamic memory)를 이용하고 있다. /* * Filename: testForForMain.m * * Compile: Click Ctrl+F11 on Dev-C++ * * Execute: testForFor * * Date: 2012. 4. 30. */ #import #import #import #import // 매개변수 dan으로 지정된 한 단의 결..

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

소스 파일명: testWhileMain.m /* * Filename: testWhileMain.cm * * Purpose: Example using the while loop syntax * while .... * * Execute: testWhile -200 300 */ #import // strtol, abs, exit 등을 위해 필요 #import #import #import // 사용법 표시 void printUsage() { printf("Using: testWhile [integer1] [integer2]\n"); printf("This finds the greatest common divisor of the given two integers.\n"); } int main(int argc, c..

if...else... 조건문 사용 예제 for Objective-C

소스 파일명: testIfMain.m #import #import // 사용법 표시 함수 void printUsing() { printf("Using: testIf [number]\n"); printf("This determines whether the number is positive or not.\n"); } // main 함수 int main(int argc, char *argv[]) { float val; if (argc != 2) { printUsing(); exit(1); return 1; } // 명령행 인자의 스트링을 가져와서 // 배정밀도 부동소수점수로 변환하여 // 변수 val에 저장한다. val = atof(argv[1]); // 변수 val에 저장된 값이 양수인지 음수인지 0인지를 ..

명령행 인자 처리 예제 for Objective-C

컴파일은 Dev-C++ 에서 소스 파일명: testArgumentsMain.m #import // NSLog 사용을 위해 #import // printf 함수 사용을 위해 #import // atof 함수 사용을 위해 // argc는 명령행 인자 개수, argv는 명령행 인자 문자열의 배열 int main(int argc, const char *argv[]) { int i; double sum = 0.0; // 초기화 // 명령행 인자(command-line argument) 개수 출력 printf("Count of arguments: %d\n", argc); for (i = 0; i < argc; i++) { // C 스트링을 배정밀도 부동소수점수로 변환하여 누적 sum += atof(argv[i]);..

long long 타입의 정수 계산을 100경 까지 테스트하는 C 소스

C 언어에서 long long 타입은 (부호가 있는) 64비트 정수 타입입니다. win32 환경이라도 long long 타입을 C 언어에서 쓸 수 있습니다. 아래의 소스는 Visual C++ 2010 Express Dev-C++ LCC 컴파일러 또는 LCC-win32 컴파일러 GCC 컴파일러 TCC (Tiny-CC) 컴파일러 중 하나면 컴파일하여 실행시킬 수 있습니다. TCC 로는 -run 옵션을 사용하여 프롬프트> tcc -run testLongLong.c 하면 (실행 파일 만들지 않고) 소스를 직접 실행시킬 수 있습니다. // Filename: testLongLong_001.c // // Compile & Link: gcc -o testComplexISOC99_002 testLongLong_001.c..

프로그래밍/C 2012.04.28