Prelim I Answer Key
Note: Due to technical difficulties the Java code examples below lost their indentation. Your code should be nicely indented in order to get full credit.
Question 1
Part | A | B | C |
(a) | 67 | ||
(b) | 1 | ||
(c) | -14 | ||
(d) | 5 | 3 | |
(e) | 5 | 7 | |
(f) | 4 | 2 | |
(g) | 4 |
Question 2
[Two of many possible solutions are below. If you did poorly on this question, make sure that you understand your mistakes.]
[solution 1]
// computes the pay of a worker
public void computePay (int hours,
int dollars_per_hour)
{
int total; // total pay earned
// if worked <= 40 hours then no
// overtime pay
if ( hours <= 40) {
total = hours * dollars_per_hour;
}
// otherwise comute pay including overtime
else {
total = (hours 40) * 2
* dollars_per_hour +
40 * dollars_per_hour;
}
// print the result
System.out.println("The total pay earned
was:" + total);
}
[solution 2]
// computes the pay of a worker
public void computePay (int hours,
int dollars_per_hour)
{
// double the overtime hours
if (hours > 40) {
hours = hours + (hours 40);
}
// compute pay and print the result
System.out.println(hours * dollars_per_hour);
}
Question 3
[Remember: the upperleft corner of the drawing window is (0,0); drawOval requires the coordinate of the upperleft corner of the box that surrounds the oval.]
public void drawNextBall(Graphics g, int r, int x, int y)
{
g.drawOval(x+3, y+3, 2*r, 2*r);
}
Question 4
[If you did poorly on this question, be sure to understand (a) WHY your solution was wrong and (b) how the solution below works.]
// Simulates an ATM session
public class Question {
public static void main(String args[])
{
Atm my_atm;
// create new Atm instance
my_atm = new Atm();
// initialize and print balance
my_atm.balance = 1000;
my_atm.printBalance();
// deposit $50 and print new balance
my_atm.deposit(50);
my_atm.printBalance();
}
}
Question 5
[The trickiest part here is the last two lines of output. Be sure that you understand them.]
The Output would be:
0 0
0 0
5 10
10 5
5 10
5 10
7 8
7 8