четверг, 15 ноября 2012 г.

Objective-C. Урок 1. Операции с дробями.

Код файла fraction.h.

#import <Foundation/Foundation.h>

@interface Fraction : NSObject

  @property (readonly) int numerator;
  @property int denominator;

-(void) print;
-(void) setNumerator: (int) n;
-(void) setDenominator: (int) d;

-(int) Numerator;
-(int) Denominator;

-(void) setNumerator: (int) n andDenominator: (int) d;

@end



Код файла fraction.m.

#import "Fraction.h"

@synthesize numerator, denominator;

@implimentation Fraction {
    int numerator;
    int denominator;
}

-(void) print {
    NSLog(@"%i / %i", numerator, denominator);
}

-(void) print2 {
    NSLog(@"%i / %i", _numerator, _denominator);
}

-(void) setNumerator: (int) n {
    numerator = n;
}

-(void) setDenominator: (int) d {
    denominator = d;
}

-(int) Numerator {
   return numerator;
}

-(int) Denominator {
    return denominator;
}

-(void) setNumerator: (int) n andDenominator: (int) d {
    numerator = n;
    denominator = d;
}

-(id) init {
    self = [super init];
    if (self) {
        _denominator = 1;
    }
    return self;
}

@end



Код файла main.m.

#import <Fonundation/Foundation.h>
#import "Fraction.h"

@interface Fraction (MathOps)
-(void) add: (Fraction *) f;
@end

@implimentaion Fraction (MathOps)
-(void) add: (Fraction *) f {
    [self setNumerator: (([self numerator] * [f denominator]) + ([self denominator] * [f numerator]))];
    [self setDenominator: ([self denominator] * [f denominator])];   
}
@end

int main (int argc, const char *argv[])
{
    @autoreleasepool {
        Fraction *myFraction;
        myFraction = [[Fraction alloc] init];
        [myFraction setNumerator: 10];
        [myFraction setDenominator: 42];
        # myFraction.setNumerator(10);
        # myFraction.setDenominator(42);
        [myFraction print];
        int a = [myFraction numerator];
        int b = [myFraction denominator];
       
        [[myFraction setNumerator: 10] setDenominator: 42];
        [myFraction setNumerator: 10 andDenominator: 42];
       
        Fraction *myFraction2;
        myFraction2 = [[Fraction alloc] init];
        [myFraction add: myFraction2];
        [myFraction print];
    }
    return 0;
}

Комментариев нет:

Отправить комментарий