Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

39
Chapter 6 - Visual Basic Schneider 1 Chapter 6 Chapter 6 Repetition
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    257
  • download

    5

Transcript of Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Page 1: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

1

Chapter 6Chapter 6

Repetition

Page 2: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

2

Outline & ObjectivesOutline & Objectives

Loop Structure Elements of a Loop Structure Processing Lists of Data with Do Loops

Page 3: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

3

Types of LOOP StructuresTypes of LOOP Structures

Do While ……. Loop Do Until …… Loop For …… Next loop

Page 4: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

4

Basic DefinitionBasic Definition

Looping : the process of repeating a series of statements as many times as needed.

Looping also called iteration.

Page 5: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

5

Basic Components of LoopsBasic Components of Loops

Loop control variable: A variable used to determine whether a loop will be executed

Loop body: The statement (s) that are executed each time a loop repeats

Page 6: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

6

The Do While ……. LoopThe Do While ……. Loop

Do While condition is true

statement(s)

Loop

Page 7: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

7

Flowchart for a Do While LoopFlowchart for a Do While Loop

Is the condition true

Execute statementswithin

the loop

Execute statementsthat follow the loop

Yes

No

Page 8: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

8

Example Example (Displays the numbers from 1 through 10)(Displays the numbers from 1 through 10)

Private Sub cmdDisplay_Click()

Dim num As Integer

' Display the numbers from 1 to 10

num = 1

Do While num <= 10

picNumbers.Print num;

num = num + 1

Loop

End Sub

Page 9: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

9

The Do While ……. LoopThe Do While ……. Loop

Is executed as long as the condition is True. If condition is False then the next statement after

the Loop is executed.

Page 10: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

10

Controlling LoopsControlling Loops

Methods of controlling loops: Counter-controlled loops

repeat a specific number of times

Event-controlled loops repeat until something happens in the loop body to change

the value of loop control variable.

Page 11: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

11

Example of event-controlled loopsExample of event-controlled loops

passWord = ""

Do While passWord <> "SHAZAM"

passWord = UCase(InputBox("What is the password?"))

Loop

Page 12: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

12

Counter-controlled LoopsCounter-controlled Loops

Is useful when the programmer knows how many times the loop should be executed.

Initialize the counter by setting it to a beginning value before entering the loop.

The counter is incremented (or decremented) by the same value during each repetition.

Page 13: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

13

ExampleExample

num = 1

Do While num <= 10

picOutput.Print num;

num = num + 1

Loop

Page 14: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

14

Do Until ……. LoopDo Until ……. Loop

Is executed until the condition becomes True Any Do While…. Loop can be rewritten as a Do

Until ….. Loop

Page 15: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

15

Example Example (requires the user to give a password (requires the user to give a password

before opening a file)before opening a file)

Private Sub cmdDisplay_Click()

Dim passWord As String, info As String

If UCase(txtName.Text) = "SECRET.TXT" Then

Do

passWord = UCase(InputBox("What is the password?"))

Loop Until passWord = "SHAZAM"

End If

Open txtName.Text For Input As #1

Input #1, info

picItem.Cls

picItem.Print info

Close #1

End Sub

Page 16: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

16

Example Example (years to deplete a saving account)(years to deplete a saving account)

Private Sub cmdEstimate_Click()

Dim amt As Single, yrs As Integer

' Years to deplete savings account

picResult.Cls

amt = 15000

yrs = 0

Do

amt = amt * 1.05 - 1000

yrs = yrs + 1

Loop Until amt <= 0

picResult.Print "It takes"; yrs; "years to deplete the account."

End Sub

Page 17: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

17

Comparing While… and Until Comparing While… and Until LoopsLoops

The Do While … Loop executes while the condition is true

The Do Until….. Loop executes until the condition is true

Both can be used to create any type of loop

Page 18: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

18

Processing List of Data with LoopsProcessing List of Data with Loops

EOF Function The EOF function tells us if we have read to

the end of a file. Checks for the end-of-file marker.

Page 19: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

19

EOF FunctionEOF Function

EOF(n) where n is the reference number for the file.

If there are more records to be read, EOF is False.

When the end-of-file marker is reached; EOF becomes True.

Page 20: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

20

Example of Example of EOFEOF

Open “Phone.txt” for Input As #1

Do While Not EOF(1)

Input #1, nom, phoneNum

picOutput.Print nom, phoneNum

Loop

Close #1

Page 21: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

21

Counters and AccumulatorsCounters and Accumulators

A Counter is a numeric variable that keeps track of the number of items that have been processed in the loop.

An Accumulator is a numeric variable that totals numbers.

Page 22: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

22

Example:Example: CounterCounter && Accumulator Accumulator

Private Sub cmdAnalyze_Click()

Dim numCoins As Integer, sum As Single, value As Single

Open "COINS.TXT" For Input As #1

numCoins = 0

sum = 0

Do While Not EOF(1)

Input #1, value

numCoins = numCoins + 1

sum = sum + value

Loop

picValue.Print "The value of the"; numCoins; "coins is"; sum; "cents."

Close #1

End Sub

Page 23: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

23

Example of a Data FileExample of a Data File

1, 1, 5, 10, 10, 25

Page 24: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

24

Output for the Previous ExampleOutput for the Previous Example

The value of the 6 coins is 52 cents.

Page 25: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

25

For ……... Next LoopFor ……... Next Loop

Is used to create a counting loop. Loop control variable has an initial value. Loop control variable has a terminating

value. Loop control variable has a Step value.

Page 26: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

26

Syntax of For…… Next LoopSyntax of For…… Next Loop

For loop-control-variable = initial To terminal

statement(s)

Next loop-control-variable

Page 27: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

27

Example Example ( display a table of the first 5 numbers and ( display a table of the first 5 numbers and

their square)their square)

Private Sub cmdDisplayTable_Click()

Dim i As Integer

‘Display a table of the first 5 numbers and their sqares

picTable.Cls

For i = 1 To 5

picTable.Print i; i ^ 2

Next i

End Sub

Initial Value

Loop Control variable

Terminating value

Page 28: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

28

Example Example ( step value of 2)( step value of 2)

For counter = 1 To 5 Step 2

picOutput.Print counter

Next counter

Page 29: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

29

When the For statement is When the For statement is first encounteredfirst encountered

This explanation assumes a positive step value The initial, terminal, and (if given ) step

value expression are evaluated. The loop control variable is assigned to the

initial value.

Page 30: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

30

This explanation assumes a positive This explanation assumes a positive step valuestep value

The value of the loop control variable is tested against the terminal value.

If the loop control variable is less than or equal to the terminal value, the loop body is executed.

If the loop control variable is greater than the terminal value, the loop body is skipped, and control passes to the first statement following the Next.

Page 31: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

31

When the When the NextNext statement is statement is encounteredencountered

The step value is added to the loop control variable. If there is no step value, +1 is added.

A check is performed to determine if the value of the loop control variable exceeds the terminal value.

Page 32: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

32

ContinuedContinued

If the loop control variable is less than or equal to the terminal value, control transfers back to the statement after the For statement and the loop is repeated.

Otherwise, the loop is exited, and execution continues with the statement following the Next.

Page 33: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

33

Rules for Using Rules for Using For ... NextFor ... Next loop loop

The initial, terminal, and step values cannot be modified in the loop body.

You should never modify the value of the loop control variable in the loop body.

Each For statement must end with a Next statement.

Page 34: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

34

Example Example (display 10 stars)(display 10 stars)

Private Sub cmdDisplay_Click()

Dim i As Integer

' Display a row of ten stars

picOutput.Cls

For i = 1 To 10

picOutput.Print "*";

Next i

End Sub

Page 35: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

35

Example Example (request a number and display a row of that many stars)(request a number and display a row of that many stars)

Private Sub cmdDisplay_Click()

Dim i As Integer, stars As Integer

' Display a row of stars

picOutput.Cls

stars = Val(InputBox("Row length (1-20) : "))

For i = 1 To stars

picOutput.Print "*";

Next i

End Sub

Page 36: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

36

Example Example (the step value is negative)(the step value is negative)

For Counter 8 To 1 Step -2

picOutput.Print Counter

Next Counter

Page 37: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

37

Nested LoopsNested Loops

For Outer = 1 To 4

For Inner = 1 To 2

..

..

Next Inner

Next Outer

Page 38: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

38

Example Example (display a 10 by 10 array of stars)(display a 10 by 10 array of stars)

Private Sub cmdDisplay_Click()

Dim i As Integer, j As Integer

' Display 10 x 10 square of stars

For i = 1 To 10

For j = 1 To 10

picOutput.Print "*";

Next j

picOutput.Print

Next i

End Sub

Page 39: Chapter 6 - Visual Basic Schneider1 Chapter 6 Repetition.

Chapter 6 - Visual Basic Schneider

39

Guidelines for Choosing a Loop:Guidelines for Choosing a Loop:

If counting loop, use a For…… Next Loop. If trailer-values and body is executed at least

once, use Do Until….. Loop. If trailer-value and nothing is known about the

first execution, use Do While…. Loop. If you are not sure use Do While….. Loop.