1. What is machine code? Why is it preferable to write programs in a high level
ID: 3653387 • Letter: 1
Question
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 (x) % 5; j. x = x + 5; k. newNum = num1 + static_cast (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 two; Line 4: double x, y, z; 4. Write C++ statements that accomplish each of the following: a. Declare and initialize int variables x to 25 and y to 18. b. Declare and initialize an int variable temp to 10 and a char variable ch to 'A'. c. Add 5 to the int variable x which already exists. d. Declare and initialize a double variable payRate to 12.50. e. Copy the value from an existing int variable firstNum into an existing int variable tempNum. f. Swap the contents of existing int variables x and y. (Declare any new variables you need.) g. Output the contents of existing double variables x and y, and also output the value of the expression x + 12 / y - 8. h. Copy the value of an existing double variable z into an existing int variable x. 5. Given the following variable declarations: int x = 2, y = 5, z = 6; What is the output from each of the following statements? a. cout << "x = " << x << ", y = " << y << ", z = " << z << endl; b. cout << "x + y = " << x + y << endl; c. cout << "Sum of " << x << " and " << z << " is " << x + z << endl; d. cout << "z / x = " << z / x << endl; e. cout << "2 times " << x << " = " << 2 * x << endl; 6. Given the following variable declarations: int a = 5, b = 6, c; What is the value of a, b, and c after each of the following statements executes? Assume that the statements execute in the sequence given. a. a = b++ + 3; b. c = 2 * a + ++b; c. b = 2 * ++c - a++;Explanation / Answer
You might also look at it this way: The very first assembler was written in machine code. Subsequent assemblers were improved using a mix of assembly and machine code. The first compilers were written in assembly. Latter compilers were written in C and assembly. Each generation resulted in a higher level languge. But now if I wanted to write my own assembler, I would write it in C (using someone else's compiler and assembler). So does that make my assembler high? Of course not. So the confusion is understandable and hence I stick to the definition that higher level=less work High level languages allow much more abstraction than low level languages. This allows algorithms and functions to be written without requiring detailed knowledge of the hardware used in the computing platform. The compiler provides this interface transparently for the programmer. Low level languages will require more involvement with the actual register and interrupt interfaces to the hardware. This can provide more control and efficiency for the program and can be good for applications which need high speed execution, but high level compilers are much better at optimizing for speed now. Examples of high level languages include C, C++, Java, etc. Examples of low level languages include machine language specific to each processor and assembly language specific to each processor.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.