Topic 15 boolean methods and random numbers

Slides:



Advertisements
Similar presentations
Building Java Programs
Advertisements

Copyright 2006 by Pearson Education 1 Building Java Programs Chapter 5: Program Logic and Indefinite Loops.
Building Java Programs
Building Java Programs Chapter 5
IntroductionIntroduction  Computer program: an ordered sequence of statements whose objective is to accomplish a task.  Programming: process of planning.
1 Building Java Programs Chapter 5 Lecture 5-2: Random Numbers reading: 5.1, 5.6.
Building Java Programs Chapter 5 Program Logic and Indefinite Loops.
1 Identifiers  Identifiers are the words a programmer uses in a program  An identifier can be made up of letters, digits, the underscore character (
Copyright 2006 by Pearson Education 1 Building Java Programs Chapters 3-4: Using Objects.
Introduction to Programming David Goldschmidt, Ph.D. Computer Science The College of Saint Rose Java Fundamentals (Comments, Variables, etc.)
The Java Programming Language
CS305j Introduction to Computing Odds and Ends 1 Topic 16 Creating Correct Programs "It is a profoundly erroneous truism, repeated by all the copybooks,
Building Java Programs Chapter 5 Program Logic and Indefinite Loops Copyright (c) Pearson All rights reserved.
Copyright 2006 by Pearson Education 1 Building Java Programs Chapter 5: Program Logic and Indefinite Loops.
1 while loops. 2 Definite loops definite loop: A loop that executes a known number of times.  The for loops we have seen so far are definite loops. We.
Random numbers. 2 The Random class A Random object generates pseudo-random numbers. –Class Random is found in the java.util package. import java.util.*;
1 Building Java Programs Chapter 5 Lecture 5-2: Random Numbers reading: 5.1, 5.6.
Java Language Basics By Keywords Keywords of Java are given below – abstract continue for new switch assert *** default goto * package.
Do/while Loops Another Type of Indefinite Loop. 2 The do/while loop do/while loop: Performs its test at the end of each repetition. –Guarantees that the.
Building Java Programs Chapter 5 Program Logic and Indefinite Loops Copyright (c) Pearson All rights reserved.
Building Java Programs Chapter 5 Program Logic and Indefinite Loops Copyright (c) Pearson All rights reserved.
Copyright 2010 by Pearson Education Building Java Programs Scanner ; if / else; while loops ; random reading: 3.3 – 3.4, 4.1, 4.5, 5.1, 5.6.
Copyright 2010 by Pearson Education 1 Building Java Programs Chapter 5 Lecture 5-2: Random Numbers; Type boolean reading: , 5.6.
1 BUILDING JAVA PROGRAMS CHAPTER 5 PROGRAM LOGIC AND INDEFINITE LOOPS.
© 2011 Pearson Education, publishing as Addison-Wesley Chapter 1: Computer Systems Presentation slides for Java Software Solutions for AP* Computer Science.
1 Building Java Programs Chapter 5 Lecture 12: Random, boolean Logic reading: 4.4, 5.1, 5.3, 5.6 (Slides adapted from Stuart Reges, Hélène Martin, and.
1 Building Java Programs Chapter 5 Lecture 11: Random Numbers reading: 5.1, 5.6.
CSc 110, Spring 2017 Lecture 12: Random Numbers
Chapter 4 Assignment Statement
Lecture 5: Program Logic
Building Java Programs
Building Java Programs
Building Java Programs Chapter 5
Building Java Programs
Lecture 2: Data Types, Variables, Operators, and Expressions
Building Java Programs
Building Java Programs
Chapter 3 Assignment Statement

Building Java Programs
CSc 110, Autumn 2016 Lecture 13: Random Numbers
Building Java Programs Chapter 5
Building Java Programs Chapter 5
Building Java Programs
Building Java Programs
Building Java Programs
Building Java Programs
Topic 15 boolean methods and random numbers
Building Java Programs
Starting JavaProgramming
null, true, and false are also reserved.
Introduction to Java Programming
An overview of Java, Data types and variables
Chapter 1: Computer Systems
Building Java Programs
Building Java Programs
JavaScript Reserved Words
Building Java Programs
Building Java Programs
Building Java Programs
Focus of the Course Object-Oriented Software Development
Module 2 - Part 1 Variables, Assignment, and Data Types
Building Java Programs
Building Java Programs
Building Java Programs
Building Java Programs
Chapter 5 Lecture 5-3: Boolean Logic reading: 5.3, 5.4
Building Java Programs Chapter 4
Agenda Types and identifiers Practice Assignment Keywords in Java
Building Java Programs
Presentation transcript:

Topic 15 boolean methods and random numbers "It is a profoundly erroneous truism, repeated by all the copybooks, and by eminent people when they are making speeches, that we should cultivate the habit of thinking of what we are doing. The precise opposite is the case. Civilization advances by extending the number of operations which we can perform without thinking about them. Operations of thought are like cavalry charges in a battle: -they are strictly limited in number, they require fresh horses, and must only be made at decisive moments." -Alfred North Whitehead Copyright Pearson Education, 2010 Based on slides by Marty Stepp and Stuart Reges from http://www.buildingjavaprograms.com/

Programming Terminology Binary digit, 1 or 0 Byte, 8 bits kilobyte, 1024 bytes (210 = 1024) megabyte, 220 bytes, 1,048,576 1,000,000 bytes in some contexts gigabyte, 230 bytes, 1,073,741,824 1,000,000,000 bytes in some contexts

Programming Terminology compile syntax error, compile error, runtime error, logic error high level language class object

More While Loops What is the base 2 representation of 6710? A. 100011 B. 111111 C. 1000000 D. 2111 E. None of A-D are correct Write a method to convert a base 10 int to a base 2 String

The keyword list thus far: Complete list of Java keywords: abstract default if private this boolean do implements protected throw break double import public throws byte else instanceof return transient case extends int short try catch final interface static void char finally long strictfp volatile class float native super while const for new switch continue goto package synchronized assert enum CS305j Introduction to Computing Odds and Ends

Methods that are tests Some methods return logical values (true or false). A call to such a method is used as a <test> in a loop or if. Scanner console = new Scanner(System.in); System.out.print("Type your first name: "); String name = console.next(); if (name.startsWith("Dr.")) { System.out.println("Med school or PhD?"); } else if (name.endsWith("Esq.")) { System.out.println("And I am Ted 'Theodore' Logan!"); }

String test methods Method Description String name = console.next(); if (name.contains("Prof")) { System.out.println("When are your office hours?"); } else if (name.equalsIgnoreCase(""mavEriCk")) { System.out.println("You're grounded, young man!"); } Method Description equals(<str>) whether two strings contain the same characters equalsIgnoreCase(<str>) whether two strings contain the same characters, ignoring upper vs. lower case startsWith(<str>) whether one contains other's characters at start endsWith(<str>) whether one contains other's characters at end contains(<str>) whether the given string is found within this one

Strings question Prompt the user for two words and report whether they: "rhyme" (end with the same last two letters) alliterate (begin with the same letter) Example output: (run #1) Type two words: car STAR They rhyme! (run #2) Type two words: bare bear They alliterate! (run #3) Type two words: sell shell (run #4) Type two words: extra strawberry

Strings answer // Determines whether two words rhyme and/or alliterate. import java.util.*; public class Rhyme { public static void main(String[] args) { Scanner console = new Scanner(System.in); System.out.print("Type two words: "); String word1 = console.next().toLowerCase(); String word2 = console.next().toLowerCase(); // check whether they end with the same two letters if (word2.length() >= 2 && word1.endsWith(word2.substring(word2.length() - 2))) { System.out.println("They rhyme!"); } // check whether they alliterate if (word1.startsWith(word2.substring(0, 1))) { System.out.println("They alliterate!");

Random numbers reading: 5.1

The Random class A Random object generates pseudo-random numbers. Class Random is found in the java.util package. import java.util.*; Example: Random rand = new Random(); int randomNumber = rand.nextInt(10);// 0-9 Method name Description nextInt() returns a random integer nextInt(<max>) returns a random integer in the range [0, max) in other words, 0 to max-1 inclusive nextDouble() returns a random real number in the range [0.0, 1.0)

Generating random numbers Common usage: to get a random number from 1 to N int n = rand.nextInt(20) + 1; // 1-20 inclusive To get a number in arbitrary range [min, max] inclusive: <name>.nextInt(<size of range>) + <min> Where <size of range> is (<max> - <min> + 1) Example: A random integer between 4 and 10 inclusive: int n = rand.nextInt(7) + 4;

Random questions Given the following declaration, how would you get: Random rand = new Random(); A random number between 1 and 47 inclusive? int random1 = rand.nextInt(47) + 1; A random number between 23 and 30 inclusive? int random2 = rand.nextInt(8) + 23; A random even number between 4 and 12 inclusive? int random3 = rand.nextInt(5) * 2 + 4;

Random and other types nextDouble method returns a double between [0.0 - 1.0) Example: Get a random GPA value between 1.5 and 4.0: double randomGpa = rand.nextDouble() * 2.5 + 1.5; Any set of possible values can be mapped to integers code to randomly play Rock-Paper-Scissors: int r = rand.nextInt(3); if (r == 0) { System.out.println("Rock"); } else if (r == 1) { System.out.println("Paper"); } else { // r == 2 System.out.println("Scissors"); }

Random question Write a program that simulates rolling of two 6-sided dice until their combined result comes up as 7. 2 + 4 = 6 3 + 5 = 8 5 + 6 = 11 1 + 1 = 2 4 + 3 = 7 You won after 5 tries!

Random answer // Rolls two dice until a sum of 7 is reached. import java.util.*; public class Dice { public static void main(String[] args) { Random rand = new Random(); int tries = 0; int sum = 0; while (sum != 7) { // roll the dice once int roll1 = rand.nextInt(6) + 1; int roll2 = rand.nextInt(6) + 1; sum = roll1 + roll2; System.out.println(roll1 + " + " + roll2 + " = " + sum); tries++; } System.out.println("You won after " + tries + " tries!");

Random question Write a program that plays an adding game. Ask user to solve random adding problems with 2-5 numbers. The user gets 1 point for a correct answer, 0 for incorrect. The program stops after 3 incorrect answers. 4 + 10 + 3 + 10 = 27 9 + 2 = 11 8 + 6 + 7 + 9 = 25 Wrong! The answer was 30 5 + 9 = 13 Wrong! The answer was 14 4 + 9 + 9 = 22 3 + 1 + 7 + 2 = 13 4 + 2 + 10 + 9 + 7 = 42 Wrong! The answer was 32 You earned 4 total points.

Random answer // Asks the user to do adding problems and scores them. import java.util.*; public class AddingGame { public static void main(String[] args) { Scanner console = new Scanner(System.in); Random rand = new Random(); // play until user gets 3 wrong int points = 0; int wrong = 0; while (wrong < 3) { int result = play(console, rand); // play one game if (result == 0) { wrong++; } else { points++; } System.out.println("You earned " + points + " total points.");

Random answer 2 ... // Builds one addition problem and presents it to the user. // Returns 1 point if you get it right, 0 if wrong. public static int play(Scanner console, Random rand) { // print the operands being added, and sum them int operands = rand.nextInt(4) + 2; int sum = rand.nextInt(10) + 1; System.out.print(sum); for (int i = 2; i <= operands; i++) { int n = rand.nextInt(10) + 1; sum += n; System.out.print(" + " + n); } System.out.print(" = "); // read user's guess and report whether it was correct int guess = console.nextInt(); if (guess == sum) { return 1; } else { System.out.println("Wrong! The answer was " + total); return 0;