Chapter 5

advertisement
Chapter 5: More on the Selection
Structure
Programming with Microsoft Visual Basic
.NET, Second Edition
Nested, If/ElseIf/Else, and Case
Selection Structures
Lesson A Objectives
• Include a nested selection structure in
pseudocode and in a flowchart
• Code a nested selection structure
• Desk-check an algorithm
• Recognize common logic errors in selection
structures
Programming with Microsoft Visual Basic .NET, Second Edition
2
Nested, If/ElseIf/Else, and Case
Selection Structures
Lesson A Objectives (continued)
• Code an If/ElseIf/Else selection structure
• Include a Case selection structure in pseudocode
and in a flowchart
• Code a Case selection structure
• Write code that uses the Is, TypeOf…Is, and Like
comparison operators
Programming with Microsoft Visual Basic .NET, Second Edition
3
Nested Selection Structures
• When a selection structure’s true path or its false
path contains another selection structure, the
inner selection structure is referred to as a
nested selection structure
Programming with Microsoft Visual Basic .NET, Second Edition
4
Nested Selection Structures
(continued)
Message
Criteria
You are too young to vote
Person is younger than 18
You can vote
Person is at least 18 years
old and is registered to vote
You need to register before
you can vote
Person is at least 18 years
old and is not registered to
vote
Programming with Microsoft Visual Basic .NET, Second Edition
5
Nested Selection Structures
(continued)
Part of Figure 5-3: Pseudocode showing the nested selection
structure in the true path
Programming with Microsoft Visual Basic .NET, Second Edition
6
Nested Selection Structures
(continued)
Part of Figure 5-5: Pseudocode showing the nested selection
structure in the false path
Programming with Microsoft Visual Basic .NET, Second Edition
7
Logic Errors in Selection Structures
•
Common logic errors with selection structures:
1. Using a logical operator when a nested selection
structure is needed
2. Reversing the primary and secondary decisions
3. Using an unnecessary nested selection structure
Programming with Microsoft Visual Basic .NET, Second Edition
8
Logic Errors in Selection Structures
(continued)
•
An algorithm is the set of step-by-step
instructions that accomplish a task
•
Desk-checking means that you use sample data
to walk through each of the steps in the
algorithm manually, just as if you were the
computer
•
Desk-checking is also called hand-tracing
Programming with Microsoft Visual Basic .NET, Second Edition
9
Logic Errors in Selection Structures
(continued)
Figure 5-7: A correct algorithm for the vacation procedure
Programming with Microsoft Visual Basic .NET, Second Edition
10
Logic Errors in Selection Structures
(continued)
Figure 5-8: Results of desk-checking the correct algorithm
shown in Figure 5-7
Programming with Microsoft Visual Basic .NET, Second Edition
11
Using a Logical Operator Rather
Than a Nested Selection Structure
Figure 5-9: Correct algorithm and an incorrect algorithm
containing the first logic error
Programming with Microsoft Visual Basic .NET, Second Edition
12
Reversing the Primary and
Secondary Decisions
Figure 5-11: Correct algorithm and an incorrect algorithm
containing the second logic error
Programming with Microsoft Visual Basic .NET, Second Edition
13
Using an Unnecessary Nested
Selection Structure
Figure 5-13: Correct algorithm and an inefficient algorithm
containing the third logic error
Programming with Microsoft Visual Basic .NET, Second Edition
14
The If/ElseIf/Else Form of the
Selection Structure
• Figure 5-16 shows
two versions of the
Visual Basic .NET
code for the grade
procedure
Figure 5-15: Letter grades and
messages
Programming with Microsoft Visual Basic .NET, Second Edition
15
The If/ElseIf/Else Form of the
Selection Structure (continued)
Figure 5-16: Two versions of the Visual Basic .NET code for the
grade procedure
Programming with Microsoft Visual Basic .NET, Second Edition
16
The Case Form of the Selection
Structure
Figure 5-18: Syntax and an example of the Select Case
statement
Programming with Microsoft Visual Basic .NET, Second Edition
17
Desk-Checking the Grade Procedure
Figure 5-19: Results of desk-checking the grade procedure
shown in Figure 5-18
Programming with Microsoft Visual Basic .NET, Second Edition
18
Using To and Is in an ExpressionList
• To keyword: specifies a range of minimum and
maximum values
Case 1 To 5
• Is keyword: specifies a range of values when you
know only one value, either the minimum or the
maximum
Case Is > 10
Programming with Microsoft Visual Basic .NET, Second Edition
19
The Is, TypeOf…Is, and Like
Comparison Operators
• The Is operator determines whether two object
references refer to the same object
• An object reference is a memory address within
the computer’s internal memory; it indicates
where in memory the object is stored
Programming with Microsoft Visual Basic .NET, Second Edition
20
The Is, TypeOf…Is, and Like
Comparison Operators (continued)
• The TypeOf…Is operator determines whether an
object is a specified type
• The Like operator uses pattern matching to
determine if one string is equal to another string
Programming with Microsoft Visual Basic .NET, Second Edition
21
The Is Comparison Operator
• Use the Is operator to determine whether two
object references refer to the same object
• An object reference is a memory address within
the computer’s internal memory
• Syntax: objectReference1 Is objectReference2
• The Is operator evaluates to True if:
objectReference1 is the same as
objectReference2; otherwise it evaluates to False
Programming with Microsoft Visual Basic .NET, Second Edition
22
The TypeOf…Is Comparison
Operator
• Use the TypeOf…Is operator to determine
whether an object is a specified type
• Syntax: TypeOf object Is objectType
• The TypeOf…Is operator evaluates to True if the
type of object is the same as objectType;
otherwise it evaluates to False
Programming with Microsoft Visual Basic .NET, Second Edition
23
The Like Comparison Operator
• The Like operator allows you to use pattern
matching to determine whether one string is
equal to another string
• Syntax: string Like pattern
• Both string and pattern must be String
expressions
• pattern can contain one or more of the patternmatching characters
• The Like operator evaluates to True if string
matches pattern; otherwise it evaluates to False
Programming with Microsoft Visual Basic .NET, Second Edition
24
The Like Comparison Operator
(continued)
Figure 5-24: Pattern-matching characters
Programming with Microsoft Visual Basic .NET, Second Edition
25
The Math Practice Application
Lesson B Objectives
• Include a group of radio buttons in an interface
• Designate a default radio button
• Include a check box in an interface
• Create a user-defined Sub procedure
• Generate random numbers using the Random
object and the Random.Next method
Programming with Microsoft Visual Basic .NET, Second Edition
26
The Math Practice Application
Lesson B Objectives (continued)
• Call a user-defined Sub procedure
• Invoke a radio button control’s Click event
procedure from code
• Process code when a form is first loaded into the
computer’s memory
Programming with Microsoft Visual Basic .NET, Second Edition
27
Completing the User Interface
• The application should display the addition or
subtraction problem on the screen, then allow the
student to enter the answer, and then verify that
the answer is correct
• If the student’s answer is not correct, the
application should give the student as many
chances as necessary to answer the problem
correctly
Programming with Microsoft Visual Basic .NET, Second Edition
28
Completing the User Interface
(continued)
Figure 5-28: Sketch of the Math Practice application’s user
interface
Programming with Microsoft Visual Basic .NET, Second Edition
29
Adding a Radio Button to the Form
• RadioButton control:
– Limits the user to one choice in a group of options
– Should have a unique access key, which allows
the user to select the button using the keyboard
Programming with Microsoft Visual Basic .NET, Second Edition
30
Adding a Radio Button to the Form
(continued)
• The selected button is called the default radio
button
• The selected button is either the radio button that
represents the user’s most likely choice or the
first radio button in the group
• Designate a radio button as the default radio
button by setting the button’s Checked property
to the Boolean value True
Programming with Microsoft Visual Basic .NET, Second Edition
31
Adding a Check Box Control to the
Form
• Checkbox controls: used for adding a check box
control to the interface
• Use check box controls to allow the user to select
any number of choices from a group of one or
more independent and nonexclusive choices
• Any number of check boxes on a form can be
selected at the same time
Programming with Microsoft Visual Basic .NET, Second Edition
32
Coding the Math Practice Application
• The Click event procedures for seven of the
controls and the Load event for the MathForm
need to be coded
• In this lesson, you code all but the Click event
procedures for the uiExitButton control and the
uiCheckAnswerButton and uiSummaryCheckBox
controls (which you code in Lesson C)
Programming with Microsoft Visual Basic .NET, Second Edition
33
Creating a User-Defined Sub
Procedure
• A user-defined Sub procedure is a collection of
code that can be invoked from one or more
places in an application
• Enter Private Sub SubName() just above the End
Class statement
• The End Sub will automatically be generated
Programming with Microsoft Visual Basic .NET, Second Edition
34
Creating a User-Defined Sub
Procedure (continued)
• The rules for naming a user-defined Sub
procedure are the same as for naming variables
• Sub procedure names should be entered using
Pascal case
– Capitalize the first letter in the name and the first
letter of each subsequent word in the name
Programming with Microsoft Visual Basic .NET, Second Edition
35
Generating Random Numbers
• Visual Studio .NET provides a pseudo-random
number generator
– Produces a sequence of numbers that meet
certain statistical requirements for randomness
• Dim GeneratorRandom As New Random()
• Methods
– Next(minValue, maxValue)
– NextDouble()
Programming with Microsoft Visual Basic .NET, Second Edition
36
Coding the uiGrade1RadioButton
and uiGrade2RadioButton Click
Event Procedures
• Use the Visual Basic .NET Call statement to call
(invoke) a user-defined Sub procedure
• Syntax: Call procedurename([argumentlist])
• The square brackets in the syntax indicate that
the argumentlist is optional
Programming with Microsoft Visual Basic .NET, Second Edition
37
Coding the uiAdditionRadioButton
and uiSubtractionRadioButton Click
Event Procedures
• When the user clicks the uiAdditionRadioButton
control or the uiSubtractionRadioButton control,
the control’s Click event procedure should:
– Display the appropriate mathematical operator
(either a plus sign or a minus sign) in the
uiOperatorPictureBox control
– Generate and display two random numbers in the
uiNum1Label and uiNum2Label controls
Programming with Microsoft Visual Basic .NET, Second Edition
38
Coding the Form’s Load Event
Procedure
• Instructions entered in the form’s Load event
procedure are processed when the application is
started and the form is loaded into memory
• To automatically display an addition problem
when the Math Practice interface first appears,
enter one of the following statements in the
MathForm’s Load event procedure
– Call GenerateAndDisplayNumbers()
– Me.uiAdditionRadioButton.PerformClick()
Programming with Microsoft Visual Basic .NET, Second Edition
39
Completing the Math Practice
Application
Lesson C Objectives
• Select the existing text in a text box control
• Code a check box control’s Click event
procedure
• Display and hide a control
Programming with Microsoft Visual Basic .NET, Second Edition
40
Coding the uiCheckAnswerButton
Click Event Procedure
• Need to code the Click event procedures for the
uiCheckAnswerButton and the
uiDisplaySummaryCheckBox controls
• Figure 5-49 shows the pseudocode for the
uiCheckAnswerButton control’s Click event
procedure
Programming with Microsoft Visual Basic .NET, Second Edition
41
Coding the uiCheckAnswerButton
Click Event Procedure (continued)
Figure 5-49:
Pseudocode for the
uiCheckAnswerButton
control’s Click event
procedure
Programming with Microsoft Visual Basic .NET, Second Edition
42
Coding the uiSummaryCheckBox
Click Event Procedure
• The uiSummaryCheckBox control’s Click event
procedure is responsible for both displaying and
hiding the uiSummaryGroupBox control
• The procedure should:
– Display the group box control when the user
selects the check box
– Hide the group box control when the user
deselects the check box
Programming with Microsoft Visual Basic .NET, Second Edition
43
Summary
• To create a selection structure that evaluates
both a primary and a secondary decision, place
(nest) the selection structure for the secondary
decision within either the true path or false path
of the selection structure for the primary decision
• To code a multiple-path (or extended) selection
structure, use either the If…Then…Else
statement or the Select Case statement
Programming with Microsoft Visual Basic .NET, Second Edition
44
Summary (continued)
• To limit the user to only one choice in a group of
two or more related and mutually exclusive
choices, add a radio button control
• To allow the user to select any number of choices
from a group of one or more independent and
nonexclusive choices, add a check box control
• To call (invoke) a user-defined Sub procedure,
use the Call statement
Programming with Microsoft Visual Basic .NET, Second Edition
45
Summary (continued)
• To process code when the form is loaded into
memory, enter the code in the form’s Load event
procedure
• To display or hide a control, set the control’s
Visible property
• To code a check box control’s Click event
procedure, use a selection structure to determine
whether the check box was either selected or
deselected by the user
Programming with Microsoft Visual Basic .NET, Second Edition
46
Download