Click here to Skip to main content
15,861,168 members

Comments by Mike M.00 (Top 1 by date)

Mike M.00 22-Feb-13 12:05pm View    
Yes, white space is your friend - computers don't care, but brains see the structure better.

HINT to the unseasoned or occasional programmer: Pay close attention to at least the first error message generated by the compiler - make sure you know what it means as it will lead you in the direction of your solution. In this case "no matching function for call to 'pow(int)'" was trying to tell you the compiler could not find a function called 'pow' which took one integer parameter (see hemantrautela's Solution 1).

Another trick I like to use to debug complicated math expressions, is to define a series of temporaries and build up the final expression one step at a time. This allows me to see all the intermediary values and it ends up isolating any error messages to exactly and only the offending item, e.g.:
int t1 = maxSpeedRpm/minSpeedRpm; // Here you would see t1 is zero for some data like 5/7, so this needs to be float.
float t2 = pow ( t1, 0.2 ); // And actually pow() needs a double as first argument, but comilers convert it for you.
float t3 = sqrt ( t2 );
A debugger allows you to see each value and understand what's working, what's not.
Mike M.