Kochan Exercise 4-4

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

  1. veshman macrumors newbie

    Sep 21, 2005
    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. lee1210 macrumors 68040


    Jan 10, 2005
    Dallas, TX
    ^ 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.


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

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

    b e n
  4. mdeh macrumors 6502

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


    #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. veshman thread starter macrumors newbie

    Sep 21, 2005
    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).


Share This Page