Amazon.com Widgets Ch 11 Ex 3 - Is this "bad programming practice"?
Welcome, Guest. Please login or register.
Did you miss your activation email?
May 26, 2013, 02:35:22 AM
Home Help Search chat Login Register   
News: Read this please.The Great Kangaroo Escape Looking for reviews of the 4th ed on Amazon!   Twitter:  @skochan
                     

+  Official Forum for Programming in Objective-C (the iPhone Programming Language) - Stephen Kochan
|-+  Old Stuff
| |-+  Answers to Exercises
| | |-+  Chapter 11
| | | |-+  Ch 11 Ex 3 - Is this "bad programming practice"?
Pages: [1]   Go Down
Print
Author Topic: Ch 11 Ex 3 - Is this "bad programming practice"?  (Read 459 times)
apostle
Newbie
*
Posts: 6






« on: December 12, 2011, 02:13:15 AM »

Hey everyone,

This is my code for Exercise 3 Chapter 11. I have looked at others' solutions in the forum and just tried this which may appear a little less complicated.
My question is: Is it not good programming practice because it's so simple, despite the fact that it works?

Thank you in advance,

Apostle.

NSComparisonMethods.h
Code: (Objective-C)
#import "Fraction.h"

@interface Fraction (NSComparisonMethods)
@end

NSComparisonMethods.m
Code: (Objective-C)
#import "NSComparisonMethods.h"


@implementation Fraction (NSComparisonMethods)

-(BOOL) isEqualTo: (id) object
{
if ( (double) numerator/denominator == (double) [object numerator] / [object denominator] )
return YES;
else
return NO;
}

-(BOOL) isLessThanOrEqualTo: (id) object
{
if ( (double) numerator/denominator <= (double) [object numerator] / [object denominator] )
return YES;
else
return NO;
}

-(BOOL) isLessThan: (id) object
{
if ( (double) numerator/denominator < (double) [object numerator] / [object denominator] )
return YES;
else
return NO;
}

-(BOOL) isGreaterThanOrEqualTo: (id) object
{
if ( (double) numerator/denominator >= (double) [object numerator] / [object denominator] )
return YES;
else
return NO;
}

-(BOOL) isGreaterThan: (id) object
{
if ( (double) numerator/denominator > (double) [object numerator] / [object denominator] )
return YES;
else
return NO;
}
-(BOOL) isNotEqualTo: (id) object
{
if ( (double) numerator/denominator != (double) [object numerator] / [object denominator] )
return YES;
else
return NO;
}

@end

Ex11.3
Code: (Objective-C)
#import "Fraction.h"
#import "NSComparisonMethods.h"
#import "MathOps.h"
#import "Comparison.h"

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

Fraction *a, *b;
a = [[Fraction alloc] initWith: 1: 1];
b = [[Fraction alloc] initWith: 2: 4];

NSLog (@"%i/%i = %i/%i? %i", a.numerator, a.denominator, b.numerator, b.denominator, [a isEqualTo: b]);
NSLog (@"%i/%i <= %i/%i? %i", a.numerator, a.denominator, b.numerator, b.denominator, [a isLessThanOrEqualTo: b]);
NSLog (@"%i/%i < %i/%i? %i", a.numerator, a.denominator, b.numerator, b.denominator, [a isLessThan: b]);
NSLog (@"%i/%i >= %i/%i? %i", a.numerator, a.denominator, b.numerator, b.denominator, [a isGreaterThanOrEqualTo: b]);
NSLog (@"%i/%i > %i/%i? %i", a.numerator, a.denominator, b.numerator, b.denominator, [a isGreaterThan: b]);
NSLog (@"%i/%i != %i/%i? %i", a.numerator, a.denominator, b.numerator, b.denominator, [a isNotEqualTo: b]);

[a release];
[b release];

    [pool drain];
    return 0;
}
« Last Edit: December 12, 2011, 02:22:56 AM by apostle » Logged
apostle
Newbie
*
Posts: 6






« Reply #1 on: December 12, 2011, 02:21:39 AM »

Here's the output:

[Session started at 2011-12-12 03:11:07 -0600.]
2011-12-12 03:11:07.855 Ex11.3[17806:10b] 1/1 = 2/4? 0
2011-12-12 03:11:07.858 Ex11.3[17806:10b] 1/1 <= 2/4? 0
2011-12-12 03:11:07.859 Ex11.3[17806:10b] 1/1 < 2/4? 0
2011-12-12 03:11:07.859 Ex11.3[17806:10b] 1/1 >= 2/4? 1
2011-12-12 03:11:07.863 Ex11.3[17806:10b] 1/1 > 2/4? 1
2011-12-12 03:11:07.864 Ex11.3[17806:10b] 1/1 != 2/4? 1
Logged
Pages: [1]   Go Up
Print
Jump to:  



Login with username, password and session length

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!
Entire forum contents (c) 2009 classroomM.com. All rights reserved.