Programming with Microsoft Visual Basic 2010 5th Edition Chapter Four The Selection Structure Previewing the Monthly Payment Calculator Application The Monthly Payment Calculator application uses the selection structure 2 Figure 4-1 Message box Figure 4-2 Monthly payment amount shown in the interface 3 Lesson A Objectives After studying Lesson A, you should be able to: Write pseudocode for the selection structure Create a flowchart to help you plan an application’s code Write an If...Then...Else statement Include comparison operators and logical operators in a selection structure’s condition Change the case of a string Determine the success of the TryParse method 4 Making Decisions in a Program Three basic control structures Sequence Selection Repetition All procedures in an application are written using one of more of these structures Procedures in previous chapters used sequence structure only 5 Making Decisions in a Program (cont’d.) Selection structure Chooses one of two paths based on condition Also called a decision structure Example: If employee works over 40 hours, add overtime pay Condition Decision expression evaluating to true or false 6 Making Decisions in a Program (cont’d.) Single-alternative selection structure Tasks performed only when condition is true Dual-alternative selection structure One set of tasks performed if condition is true Called true path Different set of tasks performed if condition is false Called false path If and end if Denotes selection structure’s beginning and end Else denotes beginning of false path 7 Making Decisions in a Program (cont’d.) Figure 4-3 Selection structures you might use today 8 Making Decisions in a Program (cont’d.) Example: Kanton Boutique Figure 4-4 Problem specification for Kanton Boutique 9 Figure 4-5 Interface for the Kanton Boutique application Figure 4-6 Pseudocode containing only the sequence structure 10 Figure 4-7 Modified problem specification and pseudocode containing a single-alternative selection structure 11 Making Decisions in a Program (cont’d.) Decision symbol Diamond shape in a flowchart Represents the selection structure’s condition Other symbols Oval: Start/stop symbol Rectangle: Process symbol Parallelogram: Input/output symbol 12 Figure 4-8 Single-alternative selection structure shown in a flowchart 13 Figure 4-9 Modified problem specification and pseudocode containing a dual-alternative selection structure 14 Figure 4-10 Dual-alternative selection structure shown in a flowchart 15 Coding Single-Alternative and DualAlternative Selection Structures If…Then…Else statement Used to code single and dual-alternative selection structures Statement block Set of statements in each path Syntax and examples shown in Figure 4-11 on next slide 16 Figure 4-11 Syntax and examples of the If…Then…Else statement (continues) 17 Figure 4-11 Syntax and examples of the If…Then…Else statement (cont’d.) 18 Comparison Operators Comparison operators Used to compare two values Always result in a True or False value Rules for comparison operators They do not have an order of precedence They are evaluated from left to right They are evaluated after any arithmetic operators in the expression 19 Figure 4-12 Listing and examples of commonly used comparison operators 20 Comparison Operators (cont’d.) Using comparison operators: Swapping numeric values Sample application displays the lowest and highest of two numbers entered by the user Figure 4-14 Sample run of the Lowest and Highest application 21 Comparison Operators (cont’d.) Figure 4-15 Pseudocode containing a single-alternative selection structure 22 Figure 4-16 Flowchart containing a single-alternative selection structure 23 Figure 4-17 Display button’s Click event procedure 24 Comparison Operators (cont’d.) Values input by the user are stored in variables with procedure scope A temporary variable is used when values must be swapped Declared within statement block Block-level variable Block scope Restricts use of variable to statement block in which it is declared 25 Comparison Operators (cont’d.) Figure 4-18 Illustration of the swapping concept 26 Comparison Operators (cont’d.) Using comparison operators: Displaying the sum or difference Sample application displays the sum or difference of two numbers entered by the user Figure 4-19 Sample run of the Addition and Subtraction application 27 Comparison Operators (cont’d.) Figure 4-20 Pseudocode containing a dual-alternative selection structure 28 Figure 4-21 Pseudocode containing a dual-alternative selection structure 29 Figure 4-22 Calculate button’s Click event procedure 30 Logical Operators Logical operators Used to create compound conditions Expressions evaluate to a Boolean value True or False Six logical operators in Visual Basic Not, And, AndAlso, Or, OrElse, Xor 31 Figure 4-23 Listing and examples of logical operators (continues) 32 Figure 4-23 Listing and examples of logical operators (cont’d.) 33 Logical Operators (cont’d.) Truth tables Show how logical operators are evaluated Short-circuit evaluation Bypasses evaluation of condition when outcome can be determined without it Operators using technique: AndAlso, OrElse Example: If state = "TN" AndAlso sales > $5000 Then… If state is not TN, no need to evaluate sales > $5000 34 Figure 4-24 Truth tables for the logical operators 35 Logical Operators (cont’d.) Using the truth tables Scenario: Calculate a bonus for a salesperson Bonus condition: “A” rating and sales > $9,000 Appropriate operators: And, AndAlso (more efficient) Both conditions must be true to receive bonus Sample code: strRating = "A” AndAlso dblSales > 9000 36 Logical Operators (cont’d.) Using logical operators: Calculating gross pay Scenario: Calculate and display employee gross pay Requirements for application Verify hours are within range (>= 0.0 and <= 40.0) If data is valid, calculate and display gross pay If data is not valid, display error message Can accomplish this using AndAlso or OrElse Data validation Verifying that input data is within expected range 37 Comparing Strings Containing Letters Scenario: Display “Pass” if ‘P’ is entered in txtLetter control Display “Fail” if ‘F’ is entered in txtLetter control Can use the OrElse or the AndAlso operator Note that ‘P’ is not the same as ‘p’ They have different Unicode values 38 Figure 4-28 Examples of using string comparisons in a procedure 39 Converting a String to Uppercase or Lowercase String comparisons are case sensitive CharacterCasing property: Three case values: Normal (default), Upper, Lower ToUpper method: Converts string to uppercase ToLower method: Converts string to lowercase Syntax and examples shown in Figure 4-29 on next two slides 40 Figure 4-29 Syntax and examples of the ToUpper and ToLower methods (continues) 41 Figure 4-29 Syntax and examples of the ToUpper and ToLower methods (cont’d.) 42 to Uppercase or Lowercase (cont’d.) Using the ToUpper and ToLower Methods: Displaying a Message Procedure requirements Display message “We have a store in this state” Valid states: IL, IN, KY Must handle case variations in the user’s input Can use ToLower or ToUpper Can assign a String variable to the input text box’s value converted to uppercase 43 Figure 4-29 Examples of using the ToUpper and ToLower methods in a procedure 44 Comparing Boolean Values Boolean variable: Contains either True or False Naming convention: “Is” denotes Boolean type Example: blnIsInsured When testing for a True value, it is not necessary to include the “= True” Examples in Figure 4-32 on next slide 45 Comparing Boolean Values (cont’d.) Figure 4-32 Examples of using Boolean values in a condition 46 Comparing Boolean Values (cont’d.) Comparing Boolean values: Determining whether a string can be converted to a number TryParse method returns a numeric value after converting the string, or 0 if it cannot be converted TryParse also returns a Boolean value indicating success or failure of the conversion attempt Use Boolean value returned by TryParse method in an If…Then…Else statement 47 Figure 4-33 Syntax and example of using the Boolean value returned by the TryParse method 48 Summary of Operators Precedence of logical operators Evaluated after any arithmetic or comparison operators in the expression Summary listing of arithmetic, concatenation, comparison, and logical operators in Figure 4-36 in text 49 Lesson A Summary Single and dual-alternative selection structures Use If...Then...Else statement Use comparison operators to compare two values Use a temporary variable to swap values contained in two variables Use logical operators to create a compound condition Use text box’s CharacterCasing property to change text to upper- or lowercase 50 Lesson A Summary (cont’d.) Use ToUpper and ToLower to temporarily modify the case of input text Use Boolean return value of TryParse method to determine whether string was successfully converted to numeric value Arithmetic operators are evaluated first, then comparison operators, and finally logical operators 51 Lesson B Objectives After studying Lesson B, you should be able to: Group objects using a GroupBox control Calculate a periodic payment using the Financial.Pmt method Create a message box using the MessageBox.Show method Determine the value returned by a message box 52 Creating the Monthly Payment Calculator Application Program requirement Calculate monthly payment on car loan Application needs The loan amount (principal) The annual percentage rate (APR) of interest The life of the loan (term) in years 53 Creating the Monthly Payment Calculator Application (cont’d.) Adding a group box to the form Group box: Container control for other controls GroupBox tool: Used to add group box control to interface Group box control provides: Visual separation of related controls Ability to manage the grouped controls by manipulating the group box control Lock controls to ensure that they are not moved Be sure to set TabIndex after placement of controls 54 Coding the Monthly Payment Calculator Application Procedures required according to TOE chart Click event procedure code for the two buttons Code for TextChanged, KeyPress, and Enter events for text boxes Procedures that are already coded btnExit Click event and TextChanged events for the text boxes Procedure to code in Lesson B btnCalc button’s Click event procedure 55 Figure 4-42 TOE chart for the Monthly Payment Calculator application 56 Coding the Monthly Payment Calculator Application (cont’d.) Coding the btnCalc control’s Click event procedure Calculate monthly payment amount Display result in lblPayment control Determine need for named constants and variables Constants: Items that do not change each time procedure invoked Variables: Items will likely change each time 57 Coding the Monthly Payment Calculator Application (cont’d.) Figure 4-43 Pseudocode for the btnCalc control’s Click event procedure 58 Figure 4-44 Partially completed Click event procedure 59 Using the Financial.Pmt Method Financial.Pmt method Calculates periodic payment on loan or investment Must ensure that interest rate and number of periods are expressed in same units (months or years) Convert annual interest rate to monthly rate by dividing by 12 Convert annual term to monthly term by multiplying by 12 60 Figure 4-45 Basic syntax and examples of the Financial.Pmt method 61 Using the Financial.Pmt Method (cont’d.) Figure 4-46 Selection structure’s true path coded in the procedure 62 The MessageBox.Show Method MessageBox.show method Displays message box with text message, caption, button(s), and icon Use sentence capitalization for text message Use book title capitalization for caption Icons Exclamation or question: Indicates user must make a decision before continuing Information: Indicates informational message Stop: Indicates serious problem 63 The MessageBox.Show Method (cont’d.) Figure 4-50 Values returned by the MessageBox.Show method (continues) 64 The MessageBox.Show Method (cont’d.) Figure 4-50 Values returned by the MessageBox.Show method (cont’d.) 65 Lesson B Summary Group box: A container control that treats its contents as one unit Use GroupBox tool to add a group box Use Financial.Pmt method to calculate loan or investment payments MessageBox.Show method displays message box with text, one or more buttons, and icon 66 Lesson C Objectives After studying Lesson C, you should be able to: Prevent the entry of unwanted characters in a text box Select the existing text in a text box 67 Coding the KeyPress Event Procedures KeyPress event Occurs when key is pressed while control has focus Character corresponding to pressed key is sent to KeyPress event’s e parameter KeyPress event can be used to prevent users from entering inappropriate characters Use e parameter’s KeyChar property to determine pressed key Use Handled property to cancel key if needed 68 Figure 4-57 Examples of using the KeyChar and Handled properties in the KeyPress event procedure 69 Coding the KeyPress Event Procedures (cont’d.) Figure 4-58 CancelKeys procedure 70 Coding the Enter Event Procedures Enter event Occurs when text box receives focus If text is selected, user can replace existing text by pressing key Can use Enter event to select all of text SelectAll method Selects all text contained in text box Add to each text box’s Enter event procedure 71 Coding the Enter Event Procedures (cont’d.) Figure 4-59 Syntax and an example of the SelectAll method 72 Lesson C Summary KeyPress event occurs when user presses key Use KeyPress event to cancel unwanted key pressed by user Use SelectAll method to select all contents of text box Enter event occurs when text box receives focus Use Enter event to process code when control receives focus 73