2013년 2월 4일 월요일

Objective-C Chapter 5.5


// 예제 6.2
#import <foundation/Foundation.h>

@interface Fraction : NSObject
-(void) print6_1;
-(void) setNumberator6_1 : (int) n;
-(void) setDenominator6_1 : (int) d;
-(int) numerator6_1;
-(int) denominator6_1;
-(double) convertToNum6_1;
@end

@implementation Fraction
{
    int numerator6_1, denominator6_1;
}
-(void) print6_1
{
    NSLog(@"%i/%i ", numerator6_1, denominator6_1);
}
-(void) setNumberator6_1 : (int) n
{
    numerator6_1 = n;
}
-(void) setDenominator6_1 : (int) d
{
    denominator6_1 = d;
}
-(int) numerator6_1
{
    return numerator6_1;
}
-(int) denominator6_1
{
    return denominator6_1;
}
-(double) convertToNum6_1
{
    if ( denominator6_1 != 0)
    {
        return (double) numerator6_1 / denominator6_1;
    }
    else
    {
        return NAN;
    }
}
@end


int main (int argc, char *argv[])
{
    @autoreleasepool
    {
        // 예제 6.1
        int number6_1;
        NSLog(@"Type in your number");
        scanf("%i", &number6_1);
        if ( number6_1 < 0 )
        {
            number6_1 = - number6_1;
        }
        NSLog(@"The absolute value is %i", number6_1);
        
        
        // 예제 6.2 번 이어서
        Fraction *aFraction = [[Fraction alloc] init];
        Fraction *bFraction = [[Fraction alloc] init];
        
        [aFraction setNumberator6_1 : 1];
        [aFraction setDenominator6_1 : 4]; // 첫번째(aFraction 객체) 분수는 1/4
        
        [aFraction print6_1];
        NSLog(@" = ");
        NSLog(@"%g", [aFraction convertToNum6_1]);

        // 두번째(bFraction 객체) 값은 정해지지 않음
        [bFraction print6_1]; 
        NSLog(@" = ");
        NSLog(@"%g", [bFraction convertToNum6_1]); 
        // 결과는 0/0 = NAN, 이유는 초기화되었고 값을 정해주지 않았기 때문에 분자 분모 모두 0
        
        
        // 예제 6.3
        int number_to_test6_3, remainder6_3;
        NSLog(@"Enter your number to be tested : ");
        scanf("%i", &number_to_test6_3);
        
        remainder6_3 = number_to_test6_3;
        if ( remainder6_3 ==0 )
        {
            NSLog(@"The number is even");
        }
        else
        {
            NSLog(@"The number is odd");
        }
        
        
        // 예제 6.5
        int yearEx5, rem_4Ex5, rem_100Ex5, rem_400Ex5;
        NSLog(@"Enter the year to be tested : ");
        scanf("%i", &yearEx5);
        
        rem_4Ex5 = yearEx5 % 4;
        rem_100Ex5 = yearEx5 % 100;
        rem_400Ex5 = yearEx5 % 400;
        
        if ( (rem_4Ex5 == 0 && rem_100Ex5 != 0) || rem_400Ex5 == 0 )
        {
            NSLog(@"It's a leap year.");
        }
        else
        {
            NSLog(@"Nope, it's not a leap year.");
        }
        
        
        // 예제 6.6
        int number6_6, sign6_6;
        NSLog(@"Please type in a number : ");
        scanf("%i", &number6_6);
        
        if ( number6_6 < 0 )
            sign6_6 = -1;
        else if ( number6_6 == 0 )
            sign6_6 = 0;
        else
            sign6_6 = 1;
        
        NSLog(@"Sign = %i", sign6_6);
        // 세가지 가운데 하나를 고르는 의사결정 할때의 else if 구문! 유용!
        
    }
    return 0;
}

댓글 없음:

댓글 쓰기