/******************************************************************** * Andrei Florea - CST 116 - Ch6 - Debugging * File: CST116-Ch6-Debugging.cpp * * General Instructions: Complete each step before proceeding to the * next. * * Debugging Exercise 1 * * 1) On the lines indicated in the code below, insert a breakpoint. * 2) Run to the breakpoint. * 3) Put watches on both Fahrenheit and Celsius. * 4) When asked for a temperature, enter 212. * 5) Verify that the value you entered is stored correctly. * * Using the debug watch variable, fahrenheit has a float value of 212 * * 6) Step over the conversion calculation. What is the value * in Celsius? Is that the correct value? No. * * The value in Celsius is 0 on the watch for the variables * * 7) Remember your order of precedence. Put parentheses around * Fahrenheit - 32. This needs to be done before the multiplication. * * Done, the parentheses are now around the Fahrenheit - 32, however, * celsius is still equal to 0, which I think is because of the 5 / 9 (integers) that * result into a 0. * * 8) Stop debugging and recompile. * * Debugging Exercise 2 * * 1) Run to Breakpoint 1. * 2) When asked for a temperature, enter 212. * 3) Verify that the value you entered is stored correctly. * 4) Step over the conversion calculation. What is the value * in Celsius? Is that the correct value? No. * * The value of Celsius is equal to 0. * * 5) Look at the division. This is integer division. Therefore, * 5 / 9 = 0. This is not the result we are looking for. * 6) Modify the calculation so that it does floating point division. * There are three different ways we have discussed: * a) use the F suffix on the literals * b) type cast the literals * c) replace the 5 with 5.0 and the 9 with 9.0 * 7) Stop debugging, recompile and run to verify that it now works * correctly. * * After type casting one of the integer literals, instead of integer division, * it will now be float point division. I don't have to type cast both literals, just one * of them will work. Now, if I input 212 degrees for Fahrenheit, it will output * 100 degrees Celsius. * ********************************************************************/ #include #include using std::cout; using std::cin; using std::endl; int main() { float fahrenheit = 0; float celcius = 0; cout << "Enter temperature in Fahrenheit: "; cin >> fahrenheit; // Breakpoint 1 // Put a breakpoint on the following line celcius = (float) 5 / 9 * (fahrenheit - 32); cout << fahrenheit << " degrees F = " << celcius << " degrees C" << endl; return 0; }