Presentation is loading. Please wait.

Presentation is loading. Please wait.

Review for Midterm 2 Nested loops & Math class methods & User defined methods.

Similar presentations


Presentation on theme: "Review for Midterm 2 Nested loops & Math class methods & User defined methods."— Presentation transcript:

1

2 Review for Midterm 2 Nested loops & Math class methods & User defined methods

3  2000 Prentice Hall, Inc. All rights reserved. 2 Format of the exam You will have the entire class period to complete the exam 5short answer (total of 15 points) 1what does this do(20 points) 1find the errors(15 points) 2write a program(total of 50 points)

4 Math class methods Math.sqrt(4.0) Math.random() java.lang is the library/package that provides Math class methods such as –Math.random() to generate random numbers Java.lang is accessed by all java programs by default. –YOU do not have to include it at the beginning of the program as you do with javax package.

5  2000 Prentice Hall, Inc. All rights reserved. 4 Random-Number Generation Often we want our programs to generate random numbers. –games of chance –testing without user interaction Java random-number generators –Math.random() Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0. –What if we want to generate random integers?

6  2000 Prentice Hall, Inc. All rights reserved. 5 Random-Number Generation –Math.random() Produces double from 0.0 to 1.0 (excluding 1) ( int ) ( Math.random() * 6 ) Produces integers from 0 – 5 –1 + ( int ) ( Math.random() * 6 ) Produces integers from 1 – 6 Scaling Shifting

7  2000 Prentice Hall, Inc. All rights reserved. Outline 6 1 // Fig. 6.7: RandomIntegers.java 2 // Shifted, scaled random integers. 3 import javax.swing.JOptionPane; 4 5 public class RandomIntegers { 6 7 public static void main( String args[] ) 8 { 9 int value; 10 String output = ""; 11 12 // loop 20 times 13 for ( int counter = 1; counter <= 20; counter++ ) 14 { 15 // pick random integer between 1 and 6 16 value = 1 + ( int ) ( Math.random() * 6 ); 17 18 output += value + " "; // append value to output 19 20 // if counter divisible by 5, append newline to String output 21 if ( counter % 5 == 0 ) 22 output += "\n"; 23 } // end for Produce integers in range 1-6 Math.random returns double s. We cast the double as an int

8  2000 Prentice Hall, Inc. All rights reserved. Outline 7 RandomIntegers.java 26 JOptionPane.showMessageDialog( null, output, 27 "20 Random Numbers from 1 to 6", 28 JOptionPane.INFORMATION_MESSAGE ); 29 30 System.exit( 0 ); // terminate application 31 32 } // end main 33 34 } // end class RandomIntegers

9  2000 Prentice Hall, Inc. All rights reserved. Outline 8 1 // Fig. 6.8: RollDie.java 2 // Roll a six-sided die 6000 times. 3 import javax.swing.*; 4 5 public class RollDie { 6 7 public static void main( String args[] ) 8 { 9 int frequency1 = 0, frequency2 = 0, frequency3 = 0, 10 frequency4 = 0, frequency5 = 0, frequency6 = 0, face; 11 String output; 12 // summarize results 13 for ( int roll = 1; roll <= 6000; roll++ ) { 14 face = 1 + ( int ) ( Math.random() * 6 ); 15 16 // determine roll value and increment appropriate counter 17 switch ( face ) { 18 19 case 1: 20 ++frequency1; 21 break; 22 23 case 2: 24 ++frequency2; 25 break; 26 27 case 3: 28 ++frequency3; 29 break; 30 Produce integers in range 1-6 Increment appropriate frequency counter, depending on randomly generated number

10  2000 Prentice Hall, Inc. All rights reserved. Outline 9 31 case 4: 32 ++frequency4; 33 break; 34 35 case 5: 36 ++frequency5; 37 break; 38 39 case 6: 40 ++frequency6; 41 break; 42 43 } // end switch 44 45 } // end for 46 47 48 49 Output = "Face\tFrequency" + "\n1\t" + frequency1 + 50 "\n2\t" + frequency2 + "\n3\t" + frequency3 + 51 "\n4\t" + frequency4 + "\n5\t" + frequency5 + 52 "\n6 \t" + frequency6 ; 53 54 JOptionPane.showMessageDialog( null, output, 55 "Rolling a Die 6000 Times", JOptionPane.INFORMATION_MESSAGE ); 56 57 System.exit( 0 ); // terminate application 58 59 } // end main 60 61 } // end class RollDie

11  2000 Prentice Hall, Inc. All rights reserved. 10

12 Benefits of Methods Experience has shown that the best way to develop and maintain large programs is to build it from smaller components or modules. In Java, one such module is the method. Each module is generally simpler and more manageable than the entire program. This concept is known as Divide and Conquer, also with Abstraction in the mix.

13  2000 Prentice Hall, Inc. All rights reserved. 12 User defined Method returning a value General format of method declaration: modifiers return-value-type method-name ( parameter1, …, parameterN ) { declarations and statements } Method can return one value: return expression ; Or, it can returns nothing using keyword void in the header. Method header Method body Scope of local variables

14 Return Value Types You can only return one value from a method. Returning void –void : means nothing –A method that returns void therefore returns nothing. –Hence, there is no need for the optional return statement. But using one can force early exit from the method. –Example: public static void printIntro (int n);

15 Parameter Data Types Unlike return values, you can pass as many parameters as you like. To pass more than one parameter, you need to separate the parameters with commas. public static int maximum (int x, int y) { /*body*/ }

16 Warning Unlike declaring variables, you must specifically state the type for multiple variables –For example takeInTwoFloats( float x, y ) is incorrect –Instead you must write takeInTwoFloats(float x, float y)

17 No parameters You can also have a method that accepts no parameters. In such case, you would just have an empty parameter list. E.g. public static int rollDie () public static void printIntro ()

18  2000 Prentice Hall, Inc. All rights reserved. 17 6.5 Argument Promotion Coercion of arguments –Forcing arguments to appropriate type to pass to method e.g., System.out.println( Math.sqrt( 4 ) ); –Evaluates Math.sqrt( 4 ) –Then evaluates System.out.println() Promotion rules –Specify how to convert types without data loss

19  2000 Prentice Hall, Inc. All rights reserved. 18

20 review What is a method? What information can you learn about a method from its header? What does it mean to invoke a method? What is call by value? What is scope of local variables within a method? Why don’t we have to import the Math class? What is abstraction in computer science?


Download ppt "Review for Midterm 2 Nested loops & Math class methods & User defined methods."

Similar presentations


Ads by Google