360 likes | 484 Views
Chapter 5. Decisions. Outline and Objectives. Relational and Logical Operators If Blocks Select Case Blocks. Relational Operators. The execution of an If block is controlled by a condition A condition can be either true or false
E N D
Chapter 5 Decisions Chapter 5 - Visual Basic Schneider
Outline and Objectives Relational and Logical Operators If Blocks Select Case Blocks Chapter 5 - Visual Basic Schneider
Relational Operators • The execution of an If block is controlled by a condition • A condition can be either true or false • Conditions can be formed by using the six Relational operators and the three Logical operators Chapter 5 - Visual Basic Schneider
Relational Operators Chapter 5 - Visual Basic Schneider
Using Relational Operators on Strings • Computers use a special coding system to compare character strings called ANSI • The ANSI values of characters are given in Appendix A. A snippet included in Slide 34 • You do not need to memorize the table • Just know the numbers, small and capital letters Chapter 5 - Visual Basic Schneider
Example of Comparing Character Strings “Hope” < “Hopeful” “Chase” < “Chaz” True “ Cat” < “Cat” True “Pay” < “Pay “ True “Jones” <> “James” True True Chapter 5 - Visual Basic Schneider
Logical Operators • The result of a logical operator is also True or False • The three Logical Operators are: Not And Or • Precedence?! Chapter 5 - Visual Basic Schneider
Not • Not: Negates a single expression • Example: Suppose answ = “Y” Not (answ = “y”) is True Chapter 5 - Visual Basic Schneider
And • Takes two expressions, returns True only if both expressions are evaluated as being true • Example: Suppose answ = “Y” • (answ = “Y”) And (answ = “y”) is False Chapter 5 - Visual Basic Schneider
Or • Takes two expressions, returns true if either one of the expressions is evaluated as being true. • Example: Suppose answ = “Y” • (answ = “Y”) Or (answ = “y”) is True Chapter 5 - Visual Basic Schneider
Determine whether the following conditions are true or false? • (“Y” <> “X”) And (143.55 < 143.55) • (0 = 14) Or (6 ^ 2 - 3 <= 4 / 2 + 8) • (Not (6 = 7)) And (44 > 33) Chapter 5 - Visual Basic Schneider
Truth Tables • Not ( X And Y ) = • Not ( X Or Y ) = Chapter 5 - Visual Basic Schneider
Determine if True or False • a = 2, b=3 • a*a < b Or Not a*a <a • True • ((a=b) Or Not (b<a)) And ((a<b) Or (b=a+1)) • True • “9W” >= “9W” And “duck” < “Du” & ”ck” • False Chapter 5 - Visual Basic Schneider
Are the conditions equivelent? • Not(a<m); n>m • (a=b) and (a<b); a<>b • Not ((a=b) or (a=c)) ; a<>b and a<>c • Not (a>=b); (a<b) and not (a=b) Chapter 5 - Visual Basic Schneider
Write an Exp equal to the negation of • a>b • (a<b) and (c<>d) • (a=b) or (a=d) • Not ( (a=b) or (a>b) ) • (a<> “”) and (a<b) and (len(a) < 5) Chapter 5 - Visual Basic Schneider
Types of Decision Structures • If Block Statement • Single alternative: If...Then • Compound alternative: If Then...Else • Select Case Statement Chapter 5 - Visual Basic Schneider
Single Alternative Decision • An action is taken if the condition is true, otherwise the control goes to the next statement. • Syntax:If condition ThenactionEnd If • If condition is true, action is executed. Otherwise, action is skipped Chapter 5 - Visual Basic Schneider
Example of single-alternative decision If (grade > = 90) Then picOutput.Print “Excellent Student” letterGrade = “A” picOutput.Print “Your grade is “; letterGrade End If Chapter 5 - Visual Basic Schneider
Compound Alternative Decision • Syntax IfconditionThen action1 Else action 2 End If Chapter 5 - Visual Basic Schneider
Example of Compound If statement Private Sub cmdFindLarger_Click() Dim largerNum As Single If Val(txtFirstNum.Text) > Val(txtSecondNum.Text) Then largerNum = Val(txtFirstNum.Text) Else largerNum = Val(txtSecondNum.Text) End If picResult.Print "The larger number is"; largerNum End Sub Chapter 5 - Visual Basic Schneider
Important Points in Using If Statement • Use indentation • In the nested If statement, each If must have its own End If statement • Care should be taken to make If blocks easy to read and understand Chapter 5 - Visual Basic Schneider
If cond1 Then If cond2 Then action(s) End If End If If cond1 And cond2 Then action(s) End If Example This is easier to understand A confusing If Block Chapter 5 - Visual Basic Schneider
Compound Alternative Decision • Syntax Ifcondition1Then action1 ElseIfcondition2Then action 2 ElseIfcondittion3 Then action3 Else action4 End If Chapter 5 - Visual Basic Schneider
Example (find the larger of two numbers, and report if the two numbers are equal) Private Sub cmdFindLarger_Click() picResult.Cls If Val(txtFirstNum.Text) > Val(txtSecondNum.Text) Then picResult.Print "The larger number is"; txtFirstNum.Text ElseIf Val(txtSecondNum.Text) > Val(txtFirstNum.Text) Then picResult.Print "The larger number is "; txtSecondNum.Text Else picResult.Print "The two numbers are equal." End If End Sub Chapter 5 - Visual Basic Schneider
Example (find cost of phone call from NY to LA) Private Sub DisplayCost (length As Single) PicOutput.Print "Cost of call: "; FormatCurrency(Cost(length)) End Sub Private Function Cost (length As Single) As Single If length < 1 Then Cost = .46 Else Cost = .46 + (length –1) * .36 End If End Function Chapter 5 - Visual Basic Schneider
Single Line If Statement • Syntax IfconditionThenaction • There is no End If or Else blocks • If the condition is true, the action will be executed • If the condition is false, no action will be taken and the next statement will be executed Chapter 5 - Visual Basic Schneider
If 2 < n < 5 Then action(s) End If Wrong! (n > 2) And (n < 5) If 5 Then action(s) End If Examples If nThen action(s) End If If Not(n < m) Then action(s) End If Equivalent to If (n >= m) Then action2 Chapter 5 - Visual Basic Schneider
The Select Case Block • Similar to If statement • Used instead of compound If statements • Action is selected from a list of alternatives • Avoids confusion of deeply nested If blocks Chapter 5 - Visual Basic Schneider
Select Case Block (Syntax) Select Case selector Case value-list-1 action1 Case value-list-2 action2 ….. Case Else action of last resort End Select Chapter 5 - Visual Basic Schneider
Select Case Block Each value-list contains one or more of the following types of items separated by a comma • a constant • a variable • an expression • an inequality sign preceded by Is and followed by a constant, variable, or expression • a range expressed in the form a Tob, where a and b are constants, variables, or expressions. Chapter 5 - Visual Basic Schneider
Example of Select Case letterGrade = txtGrade.text Select Case letterGrade Case “A”, “B” picOutput.Print “ Good Work” Case “C” picOutput.Print “Average Work” Case Else picOutputPrint “Poor Work” End Select Chapter 5 - Visual Basic Schneider
Example of Select Case letterGrade = txtGrade.text Select Case letterGrade Case “A”, “B” picOutput.Print “ Good Work” Case “C” picOutput.Print “Average Work” Case Else picOutputPrint “Poor Work” End Select letterGrade = txtGrade.text If(letterGrade = “A” or letterGrade=“B”) Then picOutput.Print “ Good Work” Elseif (letterGrade=“C”) Then picOutput.Print “Average Work” Else picOutputPrint “Poor Work” End if Chapter 5 - Visual Basic Schneider
Example of If statement letterGrade = txtGrade.Text If (letterGrade = “A”) Or (letterGrade = “B”) Then picOutput.print “Good Work” ElseIf (letterGrade = “C”) Then picOutput.Print “Average Work” Else picOutput.Print “Poor Work” End If Chapter 5 - Visual Basic Schneider
Several different types of value-list Private Sub cmdInterpret_Click() Dim x As Integer, y As Integer, num As Integer x = 2 num = Val(txtNumber.Text) Select Case num Case 3 - x, x picPhrase.Print "Buckle my shoe."Case Is <= 4 picPhrase.Print "Shut the door."Case x + 3 To x * 3 picPhrase.Print "Pick up sticks."Case Else picPhrase.Print "Start all over again.“ End Select End Sub Chapter 5 - Visual Basic Schneider
Selector Is a String Variable Private Sub cmdInterpret_Click() Select Case txtFirstName.Text Case "Thomas" picSolution.Print "Correct." Case "Woodrow" picSolution.Print "Sorry, his full name was" picSolution.Print "Thomas Woodrow Wilson." Case "President" picSolution.Print "Are you for real?" Case Else picSolution.Print "Nice try, but no cigar." End Select End Sub Chapter 5 - Visual Basic Schneider