# Kochan Exercise 4-4

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

1. ### veshman 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 ^"

File size:
14.2 KB
Views:
37
File size:
13.3 KB
Views:
36
2. ### lee1210 macrumors 68040

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. ### lazydog macrumors 6502a

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

b e n

4. ### mdeh 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. ### veshman 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