Go Back   MacRumors Forums > Apple Systems and Services > Programming > Mac Programming

Reply
 
Thread Tools Search this Thread Display Modes
Old Jan 30, 2009, 09:56 AM   #1
veshman
macrumors newbie
 
Join Date: Sep 2005
Kochan Exercise 4-4

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 Thumbnails
Click image for larger version

Name:	Picture 1.png
Views:	12
Size:	14.2 KB
ID:	155330   Click image for larger version

Name:	Picture 2.png
Views:	11
Size:	13.3 KB
ID:	155331  
veshman is offline   0 Reply With Quote
Old Jan 30, 2009, 10:04 AM   #2
lee1210
macrumors 68040
 
lee1210's Avatar
 
Join Date: Jan 2005
Location: 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.

-Lee

EDIT: For simple, fixed powers, just multiply the appropriate number of times.
lee1210 is offline   0 Reply With Quote
Old Jan 30, 2009, 10:08 AM   #3
lazydog
macrumors 6502a
 
Join Date: Sep 2005
Location: Cramlington, UK
Send a message via MSN to lazydog
... or since you're using floats, powf()!

b e n
lazydog is offline   0 Reply With Quote
Old Jan 30, 2009, 11:04 AM   #4
mdeh
macrumors 6502
 
Join Date: Jan 2009
Quote:
Originally Posted by veshman View Post
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 ^"
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;
}
mdeh is offline   0 Reply With Quote
Old Jan 30, 2009, 10:21 PM   #5
veshman
Thread Starter
macrumors newbie
 
Join Date: Sep 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).

Bhavesh
veshman is offline   0 Reply With Quote

Reply
MacRumors Forums > Apple Systems and Services > Programming > Mac Programming

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Similar Threads
thread Thread Starter Forum Replies Last Post
Learning Obj C - Kochan or Big Nerd Ranch? afousek iPhone/iPad Programming 4 Apr 26, 2014 01:45 PM

Forum Jump

All times are GMT -5. The time now is 03:24 AM.

Mac Rumors | Mac | iPhone | iPhone Game Reviews | iPhone Apps