Week 1 Homework
Part 1: Complete the following problems.
1. What is machine code? Why is it preferable to write programs in a high level language such as C++?
2. What does a compiler do? What kinds of errors are reported by a compiler?
3. What does the linker do?
4. What is an algorithm?
5. Bob enters a pizza shop and notices there are three different sizes of pizzas available. Sizes are given as the diameter of the pizza in inches. The cost of a pizza is based on the size. Bob would like to know which size of pizza has the lowest cost per square inch.
a. Identify the inputs and outputs for this problem.
b. Identify the processing needed to convert the inputs to the outputs.
c. Design an algorithm in pseudocode to solve this problem. Make sure to include steps to get each input and generate each output.
Part 2: Complete the following problems.
1. Given the following expressions, what value would they have in a C++ program?
a. 13 / 4
b. 2 + 12 / 4
c. 21 % 5
d. 3 - 5 % 7
e. 17.0 / 4
f. 8 - 5 * 2.0
g. 14 + 5 % 2 - 3
h. 15.0 + 3.0 / 2.0
2. Given the following variable declarations:
int num1 = 10, num2 = 20, newNum = 30;
double x = 5.0, y = 8.0;
Determine which of the following assignment statements are valid. For each invalid statement, explain why it is invalid. Assume that each statement immediately follows the above variable declarations.
a. num1 = 15;
b. num2 = num1 - 18;
c. num1 = 5; num2 = 2 + 6; num1 = num2 / 3;
d. num1 + num2 = newNum;
e. x = 12 * num1 - 15.3;
f. num1 * 2 = newNum;
g. x / y = x * y;
h. num2 = num1 % 2.0;
i. newNum = static_cast<int> (x) % 5;
j. x = x + 5;
k. newNum = num1 + static_cast<int> (4.6 / 2);
3. For each of the following lines of variable declarations, identify it as valid or describe what makes the line invalid.
Line 1:n = 12;
Line 2: char letter = ;
Line 3: int one = 5, two;
Line 4: double x, y, z;