Uploaded by bakedpotato1089

APCS A AP Exam Review Packet

advertisement
needs to check answers
APCS A
AP Exam Review
FR # 2 Type Question – Writing a Class
GameSpinner
attributes
instance
variables
This question involves the creation and use of a spinner to generate random numbers in a game.
A GameSpinner object represents a spinner with a given number of sectors, all equal in size.
Tetaodsconstrictors
The GameSpinner class supports the following behaviors.
• Creating a new spinner with a specified number of sectors
• Spinning a spinner and reporting the result
• Reporting the length of the current run, the number of consecutive spins that are the same as the most
recent spin
The following table contains a sample code execution sequence and the corresponding results.
streak
Write the complete GameSpinner class. Your implementation must meet all specifications and conform to the
example.
public class GameSpinnne
private int sector; //number of sectors
private int prevSpin; //the previous spi
//private int newSpin;
private int streak
public GameSpinner(int n
num = n;
prevSpin=0
public int spin(
int currSpin = (int)(Math.random()*num)+1
if(currSpin == prevSpin
streak++
els
streak=0
prevSpin=currSpin
return currSpin
public int currentRun(
return streak;
/*can also do the work heavy-lifiting in the
currentRun() method*/
APCS A
AP Exam Review
FR # 4 Type Question – 2D Array
LightBoard
The LightBoard class models a two-dimensional display of lights, where each light is either on or off, as
represented by a Boolean value. You will implement a constructor to initialize the display and a method to
evaluate a light.
i
public class LightBoard
{
/** The lights on the board, where true represents on and false represents off.
*/
private boolean[][] lights;
/** Constructs a LightBoard object having numRows rows and numCols columns.
* Precondition: numRows > 0, numCols > 0
* Postcondition: each light has a 40% probability of being set to on.
*/
public LightBoard(int numRows, int numCols)
{ /* to be implemented in part (a) */ }
/** Evaluates a light in row index row and column index col and returns a status
* as described in part (b).
* Precondition: row and col are valid indexes in lights.
*/
public boolean evaluateLight(int row, int col)
{ /* to be implemented in part (b) */ }
// There may be additional instance variables, constructors, and methods not shown.
}
Rows
8
(a) Write the constructor for the LightBoard class, which initializes lights so that each light is set to on with a
40% probability. The notation lights[r][c] represents the array element at row r and column c.
Complete the LightBoard constructor below.
/** Constructs a LightBoard object having numRows rows and numCols columns.
* Precondition: numRows > 0, numCols > 0
* Postcondition: each light has a 40% probability of being set to on.
*/
public LightBoard(int numRows, int numCols)
lights = new boolean[numRows][numCols]
for(int r=0; r<numRows; r++
for(int c=0; c<numRows[0].length; c++
//can do a random double, or random int, etc
int randNum = (int)(Math.random()*10)+1
if(randNum <= 4
lights[r][c]=true
els
light[r][c]=false
/*default value of booleans are false, so the
previous section is not necessar
}
(b) Write the method evaluateLight, which computes and returns the status of a light at a given row and
column based on the following rules.
1. If the light is on, return false if the number of lights in its column that are on is even, including the
current light.
2. If the light is off, return true if the number of lights in its column that are on is divisible by three.
3. Otherwise, return the light’s current status.
For example, suppose that LightBoard sim = new LightBoard(7, 5) creates a light board with the
initial state shown below, where true represents a light that is on and false represents a light that is off.
Lights that are off are shaded.
•
•
•
•
•
Class information for this question
public class LightBoard
private boolean[][] lights
public LightBoard(int numRows, int numCols)
public boolean evaluateLight(int row, int col)
Complete the evaluateLight method below.
/** Evaluates a light in row index row and column index col and returns a status
* as described in part (b).
* Precondition: row and col are valid indexes in lights.
*/
public boolean evaluateLight(int row, int col)
int count=0
for(int r=0; r<lights.length; r++
if(lights[r][col]==true) //not necessary the ==true
count++
if(lights[row][col]==true && count%2==0
return false
else if(lights[row][col]==false && count%3==0
return true
els
return lights[row][col]; //allowed since lights[row]
[col] is a boolean
APCS A
AP Exam Review
Practice MC Questions
3 2
re
A
p
Be very attentive of
the for loop header!
rez
re
can review
it's a Bobject
usually it's int maxValue Integer MIN VALVE
DeMorgan
y Ex 11 Y
I
law
pfive
X
T
Otherwiseit's a goodidea
246
246
46
46
6
6
I
O
1
1662
3
0
02
can
2
alsodoMak'sway
3
O
B/c it’s equal to
(int)(Math.random()*6)+1 + (int)(Math.random()*6)+1
u
I
Returns the String
backwards
buildsthestring backward
MC Solutions:
Download