These are not the only possible correct answers. For some questions there are lots of other equally correct answers.
NOTE: ANSWERS ARE IN BLUE
Answers to all questions except question 5 should be Java code.
Question 1 (20 points):
Use nested for loops to sum up all numbers of the form i * j, where i is any of the numbers from 1 through 10, and j is any of the numbers from 1 through 10. In other words, sum = 1*1 + 1*2 + .... + 10*10.
int sum = 0;
for (int i = 1 ; i <= 10 ; i++)
for (int j = 1 ; j <= 10 ; j++)
sum += i * j;
Part 1 (10 points): Implement a new object class that represents a month of the year. Your class should contain the following constructor and methods:
public Month(int index, String name) { /* stores the index 0..11 and the month name */ ... } public int index() { /* returns the number 0 through 11 */ ... } public String name() { /* returns "January", "February", etc. */ ... }
public class Month
{
int index;
String name;
public Month(int index, String name) {
this.index = index;
this.name = name;
}
public int index() { return index; }
public String name() { return name; }
}
Part 2 (10 points): Write code that creates an array of 12 month objects, one for each month.
Extra credit (5 points): Use an array of month names in your code that creates these 12 objects.
We can create an array of 12 month objects as follows:
String names[] = {"January","February","March","April","May","June","July",
"August","September","October","November","December"};
Month months[] = new Month[]names.length];
for (int i = 0 ; i < months.length ; i++)
months[i] = new Month(i, names[i]);
Part 3 (10 points):
Write code to go within a render
method
that loops through your array of months, and uses the drawString()
method to draw a list containing both the number of each month, as a number from 1 through 12,
and the name of the month.
Hint: Note that your month numbers should print as 1 to 12. That means you're going to need to add 1 somewhere.
We can display a table of these months within a Java applet as follows:
g.setColor(Color.black);
for (int i = 0 ; i < months.length ; i++) {
g.drawString("" + i , 100, 100 + 30 * i);
g.drawString(months[i].name(), 200, 100 + 30 * i);
}
Write code that stores the squares of the numbers 0 through 99
into an array int squares[] = new int[100]
.
Your code should contain a for loop.
int squares[] = new int[100];
for (int i = 0 ; i < squares.length ; i++)
squares[i] = i * i;
Use some combination of methods
g.setColor()
,
g.drawRect()
,
g.fillRect()
,
g.drawOval()
,
g.fillOval()
,
along with any other methods you like,
to draw a simple image of a car.
I'll accept lots of variations, but your
car needs to have wheels and a body.
It's ok if it's a side view.
g.setColor(Color.blue);
g.fillRect(100, 200, 300, 100);
g.fillRect(180, 110, 120, 90);
g.setColor(Color.black);
g.drawRect(100, 200, 300, 100);
g.drawRect(180, 110, 120, 90);
g.setColor(Color.gray);
g.fillOval(120, 250, 100, 100);
g.fillOval(280, 250, 100, 100);
g.setColor(Color.black);
g.drawOval(120, 250, 100, 100);
g.drawOval(280, 250, 100, 100);
Part 1 (5 points):
How many integers can you
store in array int foo[] = new foo[100][200]
?
100 * 200 = 20000
Part 2 (5 points):
How many integers can you
store in array int foo[][][] = new int[A][B+C][D]
,
where A, B, C and D are integer constants? Express your answer
in terms of A, B, C, and D.
A * (B + C) * D
Write code to go in a render()
method that
draws an image of a chessboard, where even squares
are light colored and odd squares are dark colored, just like in a real chessboard.
As in a real chessboard, the upper left and lower right squares
should be light colored.
int squareSize = 50;
Color lightColor = new Color(200, 200, 200);
Color darkColor = new Color(100, 100, 100);
for (int row = 0 ; row < 8 ; row++)
for (int col = 0 ; col < 8 ; col++) {
if ((row + col) % 2 == 0)
g.setColor(lightColor); // upper left and lower right squares are this color
else
g.setColor(darkColor);
g.fillRect(squareSize * col, squareSize * row, squareSize, squareSize);
}