NYU CSCI-UA 0002 - Introduction to Computers and Programming - More Loops

Unformatted text preview:

Introduction to Computers and Programming More LoopsreviewReviewPowerPoint PresentationSentinel-controlled repetitionUnderstanding SentinelsUsing SentinelsUsing Sentinels cont’dGood Programming tipsSlide 10Formulating Algorithms with Top-Down, Stepwise RefinementSlide 12Slide 13Slide 14Slide 15Average2.javaSlide 17Slide 18Slide 19The do/while Repetition Structure4.8 The do/while Repetition StructureSlide 22Using the Keywords break and continueThe continue KeywordSlide 25Summary of LoopingSlide 27Introduction to Computers and ProgrammingMore 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?•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?3Review •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?SentinelsSentinel-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 sentinelUnderstanding 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 KorthUsing 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 valueUsing 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•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.Case Study: Using Sentinel Controlled LoopsFormulating 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 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 Refinement•Refine the initialization phase from Initialize variables to:Initialize total to zeroInitialize 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 Refinement•Refine Calculate and print the class average toIf 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.15Initialize total to zeroInitialize counter to zeroInput the first grade (possibly the sentinel)While the user has not as yet entered the sentinel Add this grade into the running totalAdd one to the grade counterInput the next grade (possibly the sentinel)If the counter is not equal to zeroSet the average to the total divided by the counterPrint the averageelsePrint “No grades were entered”Class-average problem pseudocode algorithm with sentinel-controlled repetition. 2003 Prentice Hall, Inc. All rights reserved. 2003 Prentice Hall, Inc.All rights reserved.16Average2.java1 // Fig. 4.9: Average2.java2 // Class-average program with sentinel-controlled repetition.3 import java.text.DecimalFormat; // class to format numbers4 import javax.swing.JOptionPane;5 6 public class Average2 {7 8 public static void main( String args[] )9 {10 int total; // sum of grades11 int gradeCounter; // number of grades entered12 int grade; // grade value13 14 double average; // number with decimal point for average15 16 String gradeString; // grade typed by user17 18 // initialization phase19 total = 0; // initialize total20 gradeCounter = 0; // initialize loop counter21 22 // processing phase23 // 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 2003 Prentice Hall, Inc.All rights


View Full Document

NYU CSCI-UA 0002 - Introduction to Computers and Programming - More Loops

Download Introduction to Computers and Programming - More Loops
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Introduction to Computers and Programming - More Loops and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Introduction to Computers and Programming - More Loops 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?