Kochan Exercise 4-4

Discussion in 'Mac Programming' started by veshman, Jan 30, 2009.

  1. macrumors newbie

    Joined:
    Sep 21, 2005
    #1
    Hi, I'm very new to programming and was wondering if I could get some help on this problem. I'm working through Kochan's 2.0 book, and am getting an error on problem 4-4, as shown in the image.


    If I make x an integer, the program seems to run fine. But if I make it a float, it errors with "invalid operands to binary ^"
     

    Attached Files:

  2. macrumors 68040

    lee1210

    Joined:
    Jan 10, 2005
    Location:
    Dallas, TX
    #2
    ^ is not the exponentiation operator, it is the bitwise XOR operator. There is, in fact, no exponentiation operator. There is a pow function in math.h for dealing with doubles. For integers, for powers of 2, you can use << to shift left. For other integers... you have to do it yourself.

    -Lee

    EDIT: For simple, fixed powers, just multiply the appropriate number of times.
     
  3. macrumors 6502a

    Joined:
    Sep 3, 2005
    Location:
    Cramlington, UK
    #3
    ... or since you're using floats, powf()!

    b e n
     
  4. macrumors 6502

    Joined:
    Jan 3, 2009
    #4
    As Lee said below, just use simple substitution. You have not yet used Pow or shift ( << ) operators.

    So,

    Code:
    #import <Foundation/Foundation.h>
    
    int main (int argc, const char * argv[]) {
        NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    	/* 3x³ - 2x² + 6  for x = 2.55 */
    	
    	float x = 2.55;
    	
    	NSLog(@"Given x = 2.55\n");
        NSLog(@" 3x³ - 2x² + 6 = %f:", 3 * (x * x * x) - 2 *( x * x) + 6);
        [pool drain];
        return 0;
    }
     
  5. thread starter macrumors newbie

    Joined:
    Sep 21, 2005
    #5
    Thanks much!

    Thanks a lot for your responses!

    That makes sense.....I thought I was missing something big. And as you pointed out, I'm thus far unfamiliar with powf and bit operations (read about them, but haven't used them).

    Bhavesh
     

Share This Page