2013년 2월 1일 금요일

Objective-C Chapter 4.3


// 4.5 연습문제 2번 ~ 6번까지


// 4.5 연습문제 2번

#import <Foundation/Foundation.h>

@interface ChangeT : NSObject
// 화씨 : fahrenheit,  섭씨 : celsius
-(double) fahrenheit;
-(double) celsius;
-(void) setFahrenheit : (double) value;
-(void) clear;
-(void) changeToCelsius : (double) value;

// 4.5 연습문제 6번 - 다음 인터페이스로 매서드를 작성하시오
-(void) setReal : (double) a;
-(void) setImaginary : (double) b;
-(void) print;   // a+bi 형식으로 표시
-(double) real;
-(double) imaginary;

@end


@implementation ChangeT
// 변수들 선언
{
    double fahrenheit, celsius, real, imaginary; // real imaginary 연습문제 6번에 딸린거임
}
-(double) fahrenheit
{
    return fahrenheit;
}
-(double) celsius
{
    return celsius;
}
-(void) setFahrenheit : (double) value
{
    fahrenheit = value;
}
-(void) clear
{
    fahrenheit = 0, celsius = 0;
}
-(void) changeToCelsius
{
    celsius = (fahrenheit - 32.0) / 1.8;
}

// 4.5 연습문제 6번

-(void) setReal : (double) a
{
    real = a;
}
-(void) setImaginary : (double) b
{
    imaginary = b;
}
-(void) print   // a+bi 형식으로 표시
{
    NSLog(@"Print : The complex number is %g + %gi", real, imaginary);
}
-(double) real
{
    return real;
}
-(double) imaginary
{
    return imaginary;
}

@end


int main(int argc, char *argv[])
{
    @autoreleasepool {
        ChangeT *fToCelsius = [[ChangeT alloc] init];
        [fToCelsius setFahrenheit: 27.0];
        [fToCelsius changeToCelsius];
        NSLog(@"Fahrenheit %g is same as Celsius %g", [fToCelsius fahrenheit], [fToCelsius celsius]);
        
        
        // 4.5 연습문제 2번
        // 객체 생성 안한상태에서 하는방법
        float fahEx2 = 27.0, celEx2;
        celEx2 = (fahEx2 - 32.0) / 1.8;
        NSLog(@"Fahrenheit %g is same as Celsius %f", fahEx2, celEx2);
        
        
        // 4.5 연습문제 3번
        char c, d;
        c = 'd';
        d = c;
        NSLog (@"d = %c", d);
        // 결과는 d = d
        
        
        // 4.5 연습문제 4번
        float x4 = 2.55, resultEx4;
        resultEx4 = 3 * x4 * x4 * x4 - 5 * x4 * x4 + 6;
        NSLog(@"x4 = 2.55, 3 * x4^3 - 5 * x4^2 + 6 is %f", resultEx4);
        
        
        // 4.5 연습문제 5번
        float resultEx5;
        resultEx5 = (3.31e-8 + 2.01e-7) / (7.16e-6 + 2.01e-8);
        NSLog(@"(3.31 * 10^-8 + 2.01 * 10^-7) / (7.16 * 10^-6 + 2.01 * 10^-8) = %f", resultEx5);
        
        
        // 4.5 연습문제 6번 이어서 프로그래밍
        ChangeT *complexEx6 = [[ChangeT alloc] init];
        [complexEx6 setReal: 3];
        [complexEx6 setImaginary: 5];
        [complexEx6 print];
        NSLog(@"Return : The complex number is %g + %gi", [complexEx6 real], [complexEx6 imaginary]);
        NSLog(@"Return : The complex number is %.2f + %.2fi", [complexEx6 real], [complexEx6 imaginary]);
        // %.2f 의미 : 소수점 둘째 자리까지 표시 하는 값 
        
    }
    return 0;
}

댓글 없음:

댓글 쓰기