introduction to computers and programming more loops l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Introduction to Computers and Programming More Loops PowerPoint Presentation
Download Presentation
Introduction to Computers and Programming More Loops

Loading in 2 Seconds...

play fullscreen
1 / 27

Introduction to Computers and Programming More Loops - PowerPoint PPT Presentation


  • 177 Views
  • Uploaded on

Introduction to Computers and Programming More Loops.  2000 Prentice Hall, Inc. All rights reserved. Modified for use with this course. review. What are three ways to rewrite: x = x + 1; What are the three elements of a while loop?

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Introduction to Computers and Programming More Loops' - arella


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
introduction to computers and programming more loops
Introduction to Computers and ProgrammingMore Loops

 2000 Prentice Hall, Inc. All rights reserved. Modified for use with this course.

review
review
  • What are three ways to rewrite:

x = x + 1;

  • What are the three elements of a while loop?
  • What is the difference between pre and post increment operators?
  • Are you guaranteed to execute the body of a while loop at all?
  • What is an infinite loop?
  • True or False: You never want to use an infinite loop?
review3
Review
  • Given:

char c = 'a';

c++;

What is the value of variable c?

  • What method do you use to extract characters from a String?
    • How would you use that method to get the first character from a String?
sentinel controlled repetition
Sentinel-controlled repetition
  • Counter Controlled Repetition:
    • Simply means that we use a counter to tell you when to stop repeating a statement or group of statements
    • The examples from last class were counter-controlled repetition
  • However, what if we want the user or the input to decide when to end the program?
    • Use a sentinel
understanding sentinels
Understanding Sentinels
  • Sentinel: a special value that indicates the “end of data entry.”
  • Also known as signal value, dummy value, or flag value
  • For example:
    • -1 means end of data.
    • 0 means end of data.
    • "END" means ends of data
    • Depends on the specific application you are building.
  • With a sentinel, we have an indefinite repetition, because the number of repetitions is unknown at the time we write the program (or start the loop).

 2000 Prentice Hall, Inc. All rights reserved.

Modified by Evan Korth

using sentinels
Using Sentinels
  • How are they used?
    • Programmer picks a value that would never be encountered for normal data
    • User enters normal data and then when done, enters the unusual value
    • The loop will stop when seeing the unusual value
using sentinels cont d
Using Sentinels cont’d
  • For example, if entering age for people, you could pick a sentinel of –1
      • No one would expect to be –1 year old.
  • It is a good practice is to remind the user in each iteration of the loop what the sentinel value is
    • For example,

(" Enter the age of the current resident or –1 to end" );

good programming tips
Good Programming tips
  • Pick a sentinel value that you are CERTAIN will never be confused with normal data
  • Style: Remind user each iteration what the sentinel is
  • Y2K-like problem
    • Programmers often used 9999 as a sentinel to end a loop
    • Worry that on September 9, 1999 (sometimes abbreviated 9999) programs would erroneously stop executing before they were supposed to.
formulating algorithms with top down stepwise refinement
Formulating Algorithms with Top-Down, Stepwise Refinement
  • Problem becomes:

Develop a class-averaging program that will process an arbitrary number of grades each time the program is run.

    • Unknown number of students
    • How will the program know to end?
  • Use sentinel value
    • Loop ends when user inputs the sentinel value
    • Sentinel value chosen so it cannot be confused with a regular input (such as -1 in this case)

 2000 Prentice Hall, Inc. All rights reserved.

formulating algorithms with top down stepwise refinement12
Formulating Algorithms with Top-Down, Stepwise Refinement
  • Top-down, stepwise refinement
    • Begin with a pseudocode representation of the top:

Determine the class average for the quiz

    • Divide top into smaller tasks and list them in order:

Initialize variablesInput, sum and count the quiz gradesCalculate and print the class average

  • Many programs have three phases:
    • Initialization: initializes the program variables
    • Processing: inputs data values and adjusts program variables accordingly
    • Termination: calculates and prints the final results

 2000 Prentice Hall, Inc. All rights reserved.

formulating algorithms with top down stepwise refinement13
Formulating Algorithms with Top-Down, Stepwise Refinement
  • Refine the initialization phase from Initialize variables to:

Initialize total to zero Initialize counter to zero

  • Refine Input, sum and count the quiz grades to

Input the first grade (possibly the sentinel)While the user has not as yet entered the sentinel Add this grade into the running total Add one to the grade counter Input the next grade (possibly the sentinel)

 2000 Prentice Hall, Inc. All rights reserved.

formulating algorithms with top down stepwise refinement14
Formulating Algorithms with Top-Down, Stepwise Refinement
  • Refine Calculate and print the class average to

If the counter is not equal to zero Set the average to the total divided by the counter Print the averageelse Print “No grades were entered”

 2000 Prentice Hall, Inc. All rights reserved.

slide15

Initialize total to zero Initialize counter to zero Input the first grade (possibly the sentinel)While the user has not as yet entered the sentinel Add this grade into the running total Add one to the grade counter Input the next grade (possibly the sentinel)If the counter is not equal to zero Set the average to the total divided by the counter Print the averageelse Print “No grades were entered”

Class-average problem pseudocode algorithm with sentinel-controlled repetition.

 2003 Prentice Hall, Inc. All rights reserved.

average2 java

1 // Fig. 4.9: Average2.java

2 // Class-average program with sentinel-controlled repetition.

3 import java.text.DecimalFormat; // class to format numbers

4 import javax.swing.JOptionPane;

5

6 public class Average2 {

7

8 public static void main( String args[] )

9 {

10 int total; // sum of grades

11 int gradeCounter; // number of grades entered

12 int grade; // grade value

13

14 double average; // number with decimal point for average

15

16 String gradeString; // grade typed by user

17

18 // initialization phase

19 total = 0; // initialize total

20 gradeCounter = 0; // initialize loop counter

21

22 // processing phase

23 // get first grade from user

24 gradeString = JOptionPane.showInputDialog(

25 "Enter Integer Grade or -1 to Quit:" );

26

27 // convert gradeString to int

28 grade = Integer.parseInt( gradeString );

29

Average2.java

slide17

loop until gradeCounter equals sentinel value (-1)

30 // loop until sentinel value read from user

31 while ( grade != -1 ) {

32 total = total + grade; // add grade to total

33 gradeCounter = gradeCounter + 1; // increment counter

34

35 // get next grade from user

36 gradeString = JOptionPane.showInputDialog(

37 "Enter Integer Grade or -1 to Quit:" );

38

39 // convert gradeString to int

40 grade = Integer.parseInt( gradeString );

41

42 } // end while

43

44 // termination phase

45

46

47 // if user entered at least one grade...

48 if ( gradeCounter != 0 ) {

49

50 // calculate average of all grades entered

51 average = (double) total / gradeCounter;

52

53 // display average with two digits of precision

54 JOptionPane.showMessageDialog( null,

55 "Class average is " + average ,

56 "Class Average", JOptionPane.INFORMATION_MESSAGE );

57

58 } // end if part of if...else

59

average2 java18

60 else// if no grades entered, output appropriate message

61 JOptionPane.showMessageDialog( null, "No grades were entered",

62 "Class Average", JOptionPane.INFORMATION_MESSAGE );

63

64 System.exit( 0 ); // terminate application

65

66 } // end main

67

68 } // end class Average2

Average2.java

the do while repetition structure
The do/while Repetition Structure
  • The do/while repetition structure
    • Similar to the while structure
    • Condition for repetition tested after the body of the loop is performed
      • All actions are performed at least once
    • Format:

do {

statement(s);

} while ( condition );

4 8 the do while repetition structure

true

false

action(s)

condition

4.8 The do/while Repetition Structure
  • Flowchart of the do/while repetition structure
summary of looping
Summary of Looping
  • Two broad types of loops:
    • Counter-controlled repetition
      • A counter controls the number of repetitions.
      • Also known as a definite repetition, because we know in advance how many times the loop will be executed.
    • Sentinel-controlled repetition
      • A sentinel controls the number of repetitions
      • Also known as indefinite repetition, because we do not know in advance how many times the loop will be executed.
  • In either case, watch out for infinite loops!
  • If your program requires some kind of loop, first determine which kind of loop you want.
summary of looping27
Summary of Looping
  • Once you know which kind of loop you want, determine which while loop you want:
    • While loops
      • condition is tested first; then action occurs.
      • While loops are much more common than do/while loops.
    • Do/while loops
      • action is run first; then, condition is tested.
      • Use this if you want to make sure that your loop is guaranteed to be run at least once.