Tutorial 1 - Solutions Programming II

Exercise 1 import uk.ac.ic.doc.su2.utils.IntSet; import java.util.Random; import kenya.io.InputReader; public class Counter { public static void main(String [] args) { IntSet s = new IntSet(); Random r = new Random(); int max; long count = 0; System.out.println("Please input a number"); max = InputReader.readInt(); while (s.size() < max+1) { count++; int randomNumber = r.nextInt(max+1); System.out.println("Iteration " + count + " generated numer " + randomNumber); s.add(randomNumber); } System.out.println("I generated " + count + " numbers between 0 and " + max + " in order to produce at least once each number between 0 and " + max); } }

Exercise 2 Version 1 import kenya.io.InputReader; import uk.ac.ic.doc.su2.utils.StringStack; public class ReverseSentence { public static void main(String [] args) { System.out.println("Type in a sentence, and then 'EOS' as the last word"); StringStack myStack = getSentence();

}

}

while (!myStack.isEmpty()) System.out.print(myStack.pop() + " ");

static StringStack getSentence() { StringStack myStack = new StringStack(); while (true) { String myWord = InputReader.readString(); if (myWord.equals("EOS")) break; else myStack.push(myWord); } return myStack; }

Version 2 import kenya.io.InputReader; import uk.ac.ic.doc.su2.utils.StringStack; public class ReverseSentence2 { public static void main(String [] args) { System.out.println("Type in a sentence, and then 'EOS' as the last word"); StringStack myStack = new StringStack(); getSentence(myStack);

}

}

while (!myStack.isEmpty()) System.out.print(myStack.pop() + " ");

static void getSentence(StringStack myStack) { while (true) { String myWord = InputReader.readString(); if (myWord.equals("EOS")) break; else myStack.push(myWord); } }

Exercise 3 import uk.ac.ic.doc.su2.games.*; import kenya.io.InputReader; // Two player, five card, upto one change of cards poker. public class Poker { public static void main(String [] args) { Deck myDeck = new Deck(); // Create players PokerHand player1 = new PokerHand(); PokerHand player2 = new PokerHand(); cards.

//Loop for allowing each player to view and then change for (int player = 1; player = previousNumber) { currentLength++; currentSum = currentSum + randomNumber; } else { currentLength = 1; currentSum = randomNumber; } if (currentLength == longestSequence && currentSum > sumOfLongestSequence) sumOfLongestSequence = currentSum; if (currentLength > longestSequence) { longestSequence = currentLength; sumOfLongestSequence = currentSum; } previousNumber = randomNumber; } System.out.println("The longest sequence had " + longestSequence + " numbers which summed " + sumOfLongestSequence); } }