프로그래밍/Objective-C 17

조립제법(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]);..

윈도우의 Cygwin 에서 Objective-C 언어로 작성된 HelloWorld 예제

GNUStep 이 설치되었다면 헤더 파일 Foundation.h 를 수입(import)하였겠지만, GNUStep 이 설치되지 않아 헤더 파일 Object.h 를 수입(import)하였다. 헤더 파일 HelloWorld.h #import @interface HelloWorld : Object -(void) sayHello; @end 구현 파일 HelloWorld.m #import #import #import "HelloWorld.h" @implementation HelloWorld -(void) sayHello { printf("Hello, world!\nThis was created by the Objective-C language.\n"); } @end 실행부 파일 main.m /* * Filename..

Objective-C 언어에서 긴 자리 정수(BigInt) 사용하기

긴 자리 정수(BigInt) 게산이 가능한 ObjectiveC 언어로 작성된 소스를 작성하고 컴파일한다. 컴파일은 Mac OS X 10.6.x 의 명령줄(커맨드 라인)에서 gcc 로 한다. 우선 http://www.santsys.com/code/display?folder=Objective-C&file=BigInt.h 에서 헤더 파일 BigInt.h 및구현 파일 BigInt.m 을 구해야 한다. 그리고 BigInt.h 의 째 줄 #define MAX_LENGTH 70 을 #define MAX_LENGTH 640 로 수정한다. 아래의 소스는 300^2048 (300의 2048승) 까지 계산이 가능함을 보여준다. main.m 파일의 내용 /* * Filename: main.m * * Compile: gcc -..