Building Java Programs A Back To Basics Approach 4Th Edition Reges Test Bank Full Chapter PDF
Building Java Programs A Back To Basics Approach 4Th Edition Reges Test Bank Full Chapter PDF
1. Array Mystery
Consider the following method:
public static void arrayMystery(String[] a) {
for (int i = 0; i < a.length; i++) {
a[i] = a[i] + a[a.length - 1 - i];
}
}
Indicate in the right-hand column what values would be stored in the array after the method arrayMystery executes
if the array in the left-hand column is passed as a parameter to it.
Original Contents of Array Final Contents of Array
String[] a1 = {"a", "b", "c"};
arrayMystery(a1); _____________________________
1 of 9
2. Reference Semantics Mystery
The following program produces 4 lines of output. Write the output below, as it would appear on the console.
public class Pokemon {
int level;
battle(squirtle, hp);
System.out.println("Level " + squirtle.level + ", " + hp + " hp");
hp = hp + squirtle.level;
battle(squirtle, hp + 1);
System.out.println("Level " + squirtle.level + ", " + hp + " hp");
}
2 of 9
3. Inheritance Mystery
Assume that the following classes have been defined:
3 of 9
4. File Processing
Write a static method evaluate that accepts as a parameter a Scanner containing a series of tokens representing a
numeric expression involving addition and subtraction and that returns the value of the expression. For example, if a
Scanner called data contains the following tokens:
4.2 + 3.4 - 4.1
The call of evaluate(data); should evaluate the result as (4.2+3.4-4.1) = (7.6-4.1) = 3.5 and should return this
value as its result. Every expression will begin with a real number and then will have a series of operator/number
pairs that follow. The operators will be either + (addition) or - (subtraction). As in the example above, there will be
spaces separating numbers and operators. You may assume the expression is legal.
Your program should evaluate operators sequentially from left to right. For example, for this expression:
7.3 - 4.1 - 2.0
your method should evaluate the operators as follows:
7.3 - 4.1 - 2.0 = (7.3 - 4.1) - 2.0 = 3.2 - 2.0 = 1.2
The Scanner might contain just a number, in which case your method should return that number as its result.
4 of 9
5. File Processing
Write a static method blackjack that accepts as its parameter a Scanner for an input file containing a hand of
playing cards, and returns the point value of the hand in the card game Blackjack.
A card has a rank and a suit. There are 13 ranks: Ace, 2, 3, 4, 5, 6, 7, 8, 9, 10, Jack, Queen, and King. There are 4
suits: Clubs, Diamonds, Hearts, and Spades. A Blackjack hand's point value is the sum of its cards' point values. A
card's point value comes from its rank; the suit is irrelevant. In this problem, cards are worth the following points:
Rank Point Value
2-10 The card's rank (for example, a 7 is worth 7 points)
Jack (J), Queen (Q), King (K) 10 points each
Ace (A) 11 points (for this problem; simplified compared to real Blackjack)
The input file contains a single hand of cards, each represented by a pair of "<rank> <suit>" tokens. For example:
5 Diamonds
Q Spades
2 Spades 3 Hearts
Given the above input, your method should return 20, since the cards' point values are 5 + 10 + 2 + 3 = 20.
The input can be in mixed casing, have odd spacing between tokens, and can be split across lines. For example:
2 Hearts
j SPADES a Diamonds
2 ClUbS
A
hearts
Given the above input, your method should return 36, since the cards' point values are 2 + 10 + 11 + 2 + 11 = 36.
You may assume that the Scanner contains at least 1 card (two tokens) of input, and that no line will contain any
tokens other than valid card data. The real game of Blackjack has many other rules that you should ignore for this
problem, such as the notion of going "bust" once you exceed a score of 21.
5 of 9
6. Array Programming
Write a static method named allPlural that accepts an array of strings as a parameter and returns true only if
every string in the array is a plural word, and false otherwise. For this problem a plural word is defined as any
string that ends with the letter S, case-insensitively. The empty string "" is not considered a plural word, but the
single-letter string "s" or "S" is. Your method should return true if passed an empty array (one with 0 elements).
The table below shows calls to your method and the expected values returned:
Array Call and Value Returned
String[] a1 = {"snails", "DOGS", "Cats"}; allPlural(a1) returns true
String[] a2 = {"builds", "Is", "S", "THRILLs", "CS"}; allPlural(a2) returns true
String[] a3 = {}; allPlural(a3) returns true
String[] a4 = {"She", "sells", "sea", "SHELLS"}; allPlural(a4) returns false
String[] a5 = {"HANDS", "feet", "toes", "OxEn"}; allPlural(a5) returns false
String[] a6 = {"shoes", "", "socks"}; allPlural(a6) returns false
For full credit, your method should not modify the array's elements.
6 of 9
7. Array Programming
Write a static method named reverseChunks that accepts two parameters, an array of integers a and an integer
"chunk" size s, and reverses every s elements of a. For example, if s is 2 and array a stores {1, 2, 3, 4, 5, 6},
a is rearranged to store {2, 1, 4, 3, 6, 5}. With an s of 3 and the same elements {1, 2, 3, 4, 5, 6}, array
a is rearranged to store {3, 2, 1, 6, 5, 4}. The chunks on this page are underlined for convenience.
If a's length is not evenly divisible by s, the remaining elements are untouched. For example, if s is 4 and array a
stores {5, 4, 9, 2, 1, 7, 8, 6, 2, 10}, a is rearranged to store {2, 9, 4, 5, 6, 8, 7, 1, 2, 10}.
It is also possible that s is larger than a's entire length, in which case the array is not modified at all. You may assume
that s is 1 or greater (an s of 1 would not modify the array). If array a is empty, its contents should remain unchanged.
The following table shows some calls to your method and their expected results:
Array and Call Array Contents After Call
int[] a1 = {20, 10, 30, 60, 50, 40}; {10, 20, 60, 30, 40, 50}
reverseChunks(a1, 2);
int[] a2 = {2, 4, 6, 8, 10, 12, 14, 16}; {6, 4, 2, 12, 10, 8, 14, 16}
reverseChunks(a2, 3);
int[] a3 = {7, 1, 3, 5, 9, 8, 2, 6, 4, 10, 0, 12}; {9, 5, 3, 1, 7, 10, 4, 6, 2, 8, 0, 12}
reverseChunks(a3, 5);
int[] a4 = {1, 2, 3, 4, 5, 6}; {1, 2, 3, 4, 5, 6}
reverseChunks(a4, 8);
int[] a5 = {}; {}
reverseChunks(a5, 2);
7 of 9
8. Critters
Write a class Minnow that extends Critter from HW8, along with its movement and eating behavior. All other
aspects of Minnow use the defaults. Add fields, constructors, etc. as necessary to your class.
Minnow objects initially move in a S/E/S/E/... pattern. However, when a Minnow encounters food (when its eat
method is called), it should do all of the following:
• Do not eat the food.
• Start the movement cycle over. In other words, the next move after eat is called should always be South.
• Lengthen and reverse the horizontal portion of the movement cycle pattern.
The Minnow should reverse its horizontal direction and increase its horizontal movement distance by 1 for
subsequent cycles. For example, if the Minnow had been moving S/E/S/E, it will now move S/W/W/S/W/W. If
it hits a second piece of food, it will move S/E/E/E/S/E/E/E, and a third, S/W/W/W/W/S/W/W/W/W, and so on.
?
The following is an example timeline of a particular Minnow object's movement. The ??
timeline below is also drawn in the diagram at right. Underlined occurrences mark squares ??
where the Minnow found food. ???
???
• S, E, S, E (hits food) ?
????
• S, W, W, S, W, W, S (hits food) ????
• S, E, E, E, S, E, E, E, S, E (hits food) ??
• S (hits food) ?
??????
• S, E, E, E, E, E, S, E, E, E, E, E, ...
8 of 9
9. Classes and Objects
Suppose that you are provided with a pre-written class Date as // Each Date object stores a single
described at right. (The headings are shown, but not the method // month/day such as September 19.
bodies, to save space.) Assume that the fields, constructor, and // This class ignores leap years.
methods shown are already implemented. You may refer to them
or use them in solving this problem if necessary. public class Date {
private int month;
Write an instance method named bound that will be placed inside private int day;
the Date class to become a part of each Date object's behavior.
The bound method constrains a Date to within a given range of // Constructs a date with
dates. It accepts two other Date objects d1 and d2 as parameters; // the given month and day.
public Date(int m, int d)
d1's date is guaranteed to represent a date that comes no later in
the year than d2's date. // Returns the date's day.
The bound method makes sure that this Date object is between public int getDay()
d1's and d2's dates, inclusive. If this Date object is not between
// Returns the date's month.
those dates inclusive, it is adjusted to the nearest date in the public int getMonth()
acceptable range. The method returns a result of true if this
Date was within the acceptable range, or false if it was shifted. // Returns the number of days
// in this date's month.
For example, given the following Date objects: public int daysInMonth()
Date date1 = new Date(7, 12);
Date date2 = new Date(10, 31); // Modifies this date's state
Date date3 = new Date(9, 19); // so that it has moved forward
Date bound1 = new Date(8, 4); // in time by 1 day, wrapping
Date bound2 = new Date(9, 26); // around into the next month
Date bound3 = new Date(12, 25); // or year if necessary.
// example: 9/19 -> 9/20
The following calls to your method should adjust the given Date // example: 9/30 -> 10/1
objects to represent the following dates and should return the // example: 12/31 -> 1/1
following results: public void nextDay()
call date becomes returns
date1.bound(bound1, bound2) 8/4 false
// your method would go here
date2.bound(bound1, bound2) 9/26 false
date3.bound(bound1, bound3) 9/19 true }
date2.bound(bound3, bound3) 12/25 false
9 of 9
Another random document with
no related content on Scribd:
The Confession of Agnes Sympson to King
James.
“Item.—Fyled and convict for samecle, as she confest before his
Majesty that the devil in man’s likeness met her going out in the
fields, from her own house a Keith, betwixt five and six at even, being
alone, and commendit her to be at Northborrick Kirk the next night.
And she passed then on horseback, conveyed by her good-son called
John Cooper, and lighted at the Kirk-yard, or a little before she came
to it, about eleven hours at even. They danced along the Kirk-yard,
Geilie Duncan plaid to them on a trump, John Fien, mussiled, led all
the rest; the said Agnes and her daughter followed next. Besides
there were Kate Grey, George Moile’s wife, Robert Guerson,
Catherine Duncan Buchanan, Thomas Barnhill and his wife, Gilbert
Macgil, John Macgil, Catherine Macgil, with the rest of their
complices, above an hundred persons, whereof there were six men,
and all the rest women. The women made first their homage and
then the men. The men were turned nine times Widdershins about,
and the women six times. John Fien blew up the doors and in the
lights, which were like mickle black candles sticking round about the
pulpit. The devil started up himself in the pulpit, like a mickle black
man, and every one answered here. Mr. Robert Guerson being
named, they all ran hirdie girdie, and were angry; for it was promised
he should be called Robert the Comptroller, alias Rob the Rowar, for
expriming of his name. The first thing he demandit was, as they kept
all promise, and been good servants, and what they had done since
the last time they convened. At his command they opened up three
graves, two within, and one without the Kirk, and took off the joints
of their fingers, toes, and neise, and parted them amongst them: and
the said Agnes Sympson got for her part a winding-sheet and two
joints. The devil commandit them to keep the joints upon them while
they were dry, and then to make a powder of them to do evil withal.
Then he commandit them to keep his commandments, which were to
do all the evil they could. Before they departed they kissed his breech
[the record speaks more broad.] He [meaning the devil] had on him
ane gown and ane hat, which were both black: and they that were
assembled, part stood and part sate: John Fien was ever nearest the
devil, at his left elbock; Graymarcal keeped the door.”
The Scotch accent has been here retained for the better
authenticity of the matter; the confession here given being, in all
probability, a principal reason why King James changed his opinion
relative to the existence of witches; which, it was reported, he was
inclined to think were mere conceits; as he was then but young (not
above five or six and twenty years of age) when this examination took
place before him; and part of the third chapter of his Demonologie
appears to be a transcript of this very confession.
Agnes Sympson was remarkable for her skill in diseases, and
frequently, it is said, took the pains and sickness of the afflicted upon
herself to relieve them, and afterwards translated them to a third
person: she made use of long Scriptural rhymes and prayers,
containing the principal points of Christianity, so that she seemed
not so much a white witch as a holy woman. She also used
nonsensical rhymes in the instruction of ignorant people, and taught
them to say the white and black Pater-noster in metre, in set forms,
to be used morning and evening; and at other times, as occasion
might require.
The White Pater-noster runs thus:—
God was my foster,
He fostered me
Under the book of Palm tree.
St. Michael was my dame,
He was born at Bethlehem.
He was made of flesh and blood,
God send me my right food;
My right food, and dyne too,
That I may too yon kirk go,
To read upon yon sweet book,
Which the mighty God of heaven shook.
Open, open, heaven’s yaits,
Steik, steik, hell’s yaits,
All saints be the better,
That hear the white prayer, Pater-noster.
The Black Pater-noster.
Four neuks in this house for holy angels,
A post in the midst, that Christ Jesus,
Lucas, Marcus, Mathew, Joannes,
God be unto this house, and all that belong us.