tutorial 6: the repetition structure1 tutorial 6 the repetition structure

25
Tutorial 6: The Repetition St ructure 1 Tutorial 6 The Repetition Structure

Upload: herbert-nash

Post on 04-Jan-2016

260 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 1

Tutorial 6The Repetition Structure

Page 2: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 2

The Repetition Structure (Looping)Lesson A Objectives

After completing this lesson, you will be able to: Code the repetition structure using the For…Next

and Do…Loop statements Write pseudocode for the repetition structure Create a flowchart for the repetition structure Display a message in the Output window while an

application is running Change the location and size of a control while an

application is running Initialize and update counters and accumulators

Page 3: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 3

The Repetition Structure

Most programs also contain the selection structure, which you learned about in Tutorials 4 and 5

Programmers use the repetition structure, referred to more simply as a loop, when they need the computer to repeatedly process one or more program instructions until some condition is met, at which time the loop ends

In a pretest loop, the evaluation occurs before the instructions within the loop are processed

In a posttest loop, the evaluation occurs after the instructions within the loop are processed

Page 4: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 4

The For … Next Loop

You can use the For…Next statement to code a loop whose instructions you want processed a precise number of times

Syntax:

For counter = startValue To endValue [Step stepValue]

[instructions you want repeated]

Next [counter] counter is the name of a numeric variable and it keeps track

of how many times the loop instructions are repeated startValue, endValue, and stepValue must be numeric and

they can be either positive or negative, integer or non-integer (default stepValue is 1)

Page 5: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 5

A For … Next Example

Dim intCount As Integer

For intCount = 0 to 3 Step 1

Debug.WriteLine(intCount)

Next intCount

Dim intCount As Integer

For intCount = 3 to 0 Step -1

Debug.WriteLine(intCount)

Next intCount

Dim intCount As Integer

For intCount = 0 to 10 Step 2

Debug.WriteLine(intCount)

Next intCount

Dim sngLoc As Single

For sngLoc = 0.5 To 15 Step 0.5

Debug.WriteLine(sngLoc)

Next sngLoc

Page 6: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 6

Flowchart and Pseudocode

Hexagon Repeat for intCount = 1 to 3 by 1

Display intCount

Next IterationintCount

+=1 > 3

1

Display intCount

Page 7: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 7

The Do…Loop Statement

Pretest condition Pretest condition

Do While Condition

[loop instructions]

Loop

Do Until Condition

[loop instructions]

Loop

Posttest condition Posttest condition

Do

[loop instructions]

Loop While Condition

Do

[loop instructions]

Loop Until Condition

• Unlike the For…Next statement, the Do…Loop statement can be used to Code both a pretest loop and a posttest loop• The Do…Loop statement begins with the Do clause and ends with the Loop clause

Page 8: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 8

Loop Examples

Dim intCount As Integer = 1

Do While intCount < 3

Debug.WriteLine(intCount)

intCount += 1

Loop

Dim intCount As Integer = 1

Do Until intCount > 3

Debug.WriteLine(intCount)

intCount += 1

Loop

Dim intCount As Integer = 1

Do

Debug.WriteLine(intCount)

intCount += 1

Loop While intCount < 3

Dim intCount As Integer = 1

Do

Debug.WriteLine(intCount)

intCount += 1

Loop Until intCount > 3

Page 9: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 9

Do While Pretest Loop

intCount = 1

Repeat while intCount < 3

Display intCount

Add 1 to intCount

End Repeat

intCount = 1

intCount <= 3

intCount += 1

F

T

Display intCount

Page 10: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 10

Do Until Posttest Loop

intCount = 1

Repeat

Display intCount

Add 1 to intCount

End Repeat until intCount > 3

intCount = 1

intCount > 3

intCount += 1

F

T

Display intCount

Page 11: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 11

Using Counters and Accumulators

Counters and accumulators are used within a repetition structure to calculate subtotals, totals, and averages

Initialized (usually to 0 or 1) outside the loop and updated within the loop

A counter is a numeric variable used for counting something and is typically updated by 1

An accumulator is a numeric variable used for accumulating (adding together) and is updated by an amount that varies

Initializing means to assign a beginning value to the counter or accumulator

Updating, also called incrementing, means adding a number to the value stored in the counter or accumulator

Page 12: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 12

Using CollectionsLesson B Objectives

After completing this lesson, you will be able to:

Access the controls in the Controls collection

Code the repetition structure using the For Each…Next statement

Create an object variable

Create a collection

Create parallel collections

Enable and disable a control

Page 13: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 13

The Controls Collection

The controls contained on a Windows form belong to the Controls collection in Visual Basic .NET

A collection is simply a group of one or more individual objects treated as one unit

Identifies by an index, automatically assigned by Visual Basic .NET when object is created

Refer to a control Controls.Item(index)

Controls are numbered LIFO – that is, the last control object has an index = 0

The value of Controls.Count gives the number of controls on a form

Page 14: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 14

Accessing the Controls Collection

Dim intX As Integer = 0

For intX = 0 To Controls.Count – 1

Debug.WriteLine(Controls(intX).Name)

Next intX

Dim intX As Integer = 0

Do While intX < Controls.Count

Debug.WriteLine(Controls(intX).Name)

If TypeOf Controls.Item(intX) Is TextBox Then

Controls.Item(intX).Text = “”

End If

intX += 1

Loop

Page 15: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 15

Object Variables

An object variable is a memory location that can store the address of an object

The address indicates where the object is located in the computer’s internal memory

An object variable is initialized to the keyword Nothing, which simply means that the object variable does not currently contain an address

You assign an object variable

objStateTextBox = Me.StateTextBox

Page 16: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 16

The For Each…Next Statement The For Each…Next statement is used to code a loop whose

instructions you want processed for each object in a collection

For Each element In group

[processing statements for element]

Exit For

Next element

Dim objTextBox As TextBox

For Each objTextBox In Me.Controls

If objTextBox.Text = “Hello” Then

Exit For

End If

Next

Page 17: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 17

Flowchart and Pseudocode for the For Each … Next

Repeat for each Control in Collection

if control is a label

remove border

end if

end repeat

Repeat for each Control in Controls collection

Remove the borderIs control a label?

F

T

stop

Page 18: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 18

Creating a User-Defined Collection

A user-defined collection allows you to group related controls together

To define a collection

Dim collectionName As New Collection() To insert an object into the collection

collectionName.Add(object[, key]) To access an object in the collection

objMyObject = collectionName(index)

objMyObject = collectionName(key) To remove an object from the collection

collectionName.Remove(index|key)

Page 19: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 19

Creating a User-Defined Collection

'declare form-level collections

Private mCheckBoxCollection As New Collection()

Private Sub GradeForm_Load(ByVal sender As Object, _

ByVal e As System.EventArgs) Handles MyBase.Load

Dim intCtr As Integer

For intCtr = 0 To Controls.Count - 1

If TypeOf (Controls(intCtr)) Is CheckBox Then

mCheckBoxCollection.Add(Controls(intCtr))

End If

Next

Page 20: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 20

Parallel Collection

Collections whose objects are related in some way are called parallel collections

You can indicate to the computer that two collections are parallel collections by setting the key argument for each object in one of the collections to the name of the corresponding object in the other collection

For intCtr = 0 To Controls.Count - 1

If TypeOf (Controls(intCtr)) Is TextBox Then

mTextBoxCollection.Add(Controls(intCtr), _

Replace(Controls(intCtr).Name, "TextBox", _

"CheckBox"))

End If

Next

Page 21: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 21

The Enabled Property

Private Sub ProcessCheckBox(ByVal sender As Object, _

ByVal e As System.EventArgs) Handles Proj1CheckBox.Click, …

Dim objCB As CheckBox, objTB As TextBox

objCB = sender ' assign sender to the object variable

objTB = mTextBoxCollection(oCB.Name)

If objCB.Checked Then

objTB.Enabled = True

objTB.Focus()

Else

objTB.Text = ""

objTB.Enabled = False

End If

End Sub

Page 22: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 22

Completing the Grade Calculator ApplicationLesson C Objectives

After completing this lesson, you will be able to:

Select the existing text when the user tabs to a

text box

Prevent a form from closing

Page 23: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 23

Coding the DisplayButton’s Click Event Procedure

You still need to code the DisplayButton’s

Click event procedure, the GradeForm’s

Closing event procedure, and the Enter event

procedure for the text boxes

You begin with the DisplayButton’s Click

event procedure as the pseudocode in Figure

6-50 illustrates

Page 24: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 24

Page 25: Tutorial 6: The Repetition Structure1 Tutorial 6 The Repetition Structure

Tutorial 6: The Repetition Structure 25

Coding the GradeForm’sClosing Event Procedure

A form’s Closing event occurs when a

form is about to be closed

You can close a form using either the

Close button on its title bar, or the

Me.Close( ) statement in code