CIS 115 Lecture 7 Selection / Decisions.

Slides:



Advertisements
Similar presentations
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 4- 1 STARTING OUT WITH Visual Basic 2008 FOURTH EDITION Tony Gaddis.
Advertisements

Making Decisions and Working With Strings
VB.Net Introduction - 2. Counter Example: Keep track the number of times a user clicks a button Need to declare a variable: Dim Counter As Integer Need.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 4- 1.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 4- 1.
Copyright © 2012 Pearson Education, Inc. Chapter 4: Making Decisions.
CSC110 Fall Chapter 5: Decision Visual Basic.NET.
Chapter 4 Making Decisions
Visual C++ Programming: Concepts and Projects
IS 1181 IS 118 Introduction to Development Tools VB Chapter 03.
Starting Out with Visual Basic.NET 2 nd Edition Chapter 4 Making Decisions and Working With Strings.
I would like you to develop a mobile application that calculates for me the discount on an item I want to purchase. Input:  User enters in a number for.
Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley C H A P T E R 4 Decision Structures and Boolean Logic.
Chapter 4 The If…Then Statement
Decision Structures and Boolean Logic
Computer Science Selection Structures.
CIS 115 Lecture 8. There are 3 control structures common to most computer languages that determine the flow, or path of execution, of the code:  Sequential.
Decisions with If Statements Chapter 4. 2 Structures Sequence Structure (so far) Each statement executed in sequence w/o branching into other directions.
Chapter 4 Controlling the Flow Adapted From: Starting Out with Visual Basic 2012 (Pearson)
Lecture Set 5 Control Structures Part A - Decisions Structures.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design First Edition by Tony Gaddis.
The Select Case Statement. Slide 4- 2 Select Case Statement Similar to If…Then…ElseIf  Performs a series of tests  Conditionally executes the first.
Copyright © 2012 Pearson Education, Inc. Chapter 4: Making Decisions.
Flow of Control Part 1: Selection
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley STARTING OUT WITH Python Python First Edition by Tony Gaddis Chapter 4 Decision.
Making Decisions. 4.1 Relational Operators Used to compare numbers to determine relative order Operators: > Greater than < Less than >= Greater than.
1 Boolean Expressions to Make Comparisons Boolean expression –Represents only one of two states –Expression evaluates to either true or false Expressions.
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 4: Making Decisions.
Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved X1 Chapter 3 Control Statements.
Visual Basic 2010 How to Program © by Pearson Education, Inc. All Rights Reserved.1.
Copyright © 2015, 2012, 2009 Pearson Education, Inc., Publishing as Addison-Wesley All rights reserved. Chapter 4: Making Decisions.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter Making Decisions and Working With Strings 4.
Chapter Making Decisions 4. Relational Operators 4.1.
Introduction to Programming Lecture Note - 2 Visual Basic Programming Fundamentals.
InputBox. Format of the InputBox Function Prompt - message to the user Title - text for the box's title bar Default - default text for user's input Xpos.
COMPUTER PROGRAMMING I 5.04 Apply Decision Making Structures.
© 2006 ITT Educational Services Inc. Introduction to Computer Programming: Unit 4: Chapter 4: Slide 1 Unit 4 Decisions Chapter 4 Making Decisions and Working.
110 F-1 Decisions and Conditions Chapter 4: We can design a form We can calculate To make our programs more powerful, we need to be able to make choices.
Using Control Structures. Goals Understand the three basic forms of control structures Understand how to create and manage conditionals Understand how.
1 CS161 Introduction to Computer Science Topic #6.
Controlling Program Flow with Decision Structures.
Copyright © 2015, 2012, 2009 Pearson Education, Inc., Publishing as Addison-Wesley All rights reserved. Chapter 4: Making Decisions 1.
Lecture 6 – Selection FTMK, UTeM – Sem /2014.
Chapter 4 Select … Case Multiple-Selection Statement & Logical Operators 1 © by Pearson Education, Inc. All Rights Reserved. -Edited By Maysoon.
Chapter 7 Conditional Statements. 7.1 Conditional Expressions Condition – any expression that evaluates to true/false value Relational operators are BINARY.
Slide 1 Chapter 4 The If…Then Statement  Conditional control structure, also called a decision structure  Executes a set of statements when a condition.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and.
CMSC201 Computer Science I for Majors Lecture 05 – Comparison Operators and Boolean (Logical) Operators Prof. Katherine Gibson Prof. Jeremy.
5.04 Apply Decision Making Structures
Making Decisions and Working With Strings
Visual Basic 6 (VB6) Data Types, And Operators
Chapter 4: Making Decisions.
Lecture 3- Decision Structures
Topics The if Statement The if-else Statement Comparing Strings
Chapter 4 Select…Case Multiple-Selection Statement & Logical Operators
Chapter 4: Decision Structures and Boolean Logic
Chapter 4: Making Decisions.
Chapter 4 Select…Case Multiple-Selection Statement & Logical Operators
Topics The if Statement The if-else Statement Comparing Strings
Chapter 4: Decision Structures and Boolean Logic
Chapter 4 Select…Case Multiple-Selection Statement & Logical Operators
Chapter 7 Conditional Statements
Summary Two basic concepts: variables and assignments Basic types:
Microsoft Visual Basic 2005: Reloaded Second Edition
Chapter 4 Select…Case Multiple-Selection Statement & Logical Operators
Chapter 4 Select…Case Multiple-Selection Statement & Logical Operators
Chapter 3: Selection Structures: Making Decisions
Boolean Expressions to Make Comparisons
Chapter 4: Decision Structures and Boolean Logic
Presentation transcript:

CIS 115 Lecture 7 Selection / Decisions

Control Structures There are 3 control structures common to most computer languages that determine the flow, or path of execution, of the code: Sequential Selection / Decisions Repetition / Looping

VB Decisions Visual Basic decision statements If…Then…ElseIf…Else one-way selection structure If…Then…Else two-way selection structure If…Then…ElseIf multi-way selection structure If…Then…ElseIf…Else Select Case

If…Then Decision Structure provides one choice Evaluate the condition: True or False Ex: Is it cold outside? True – execute code Ex: If yes, wear a coat False – do not execute code Ex: If no, Condition True False Conditional Code

If…Then Statement Syntax If condition Then statement[s] End If Syntax explanation: If , Then, and End – Keywords Condition – True/False value, variable, function call or expression Statement[s] – one or more code statements to be executed if condition is true

Conditions The execution of an If block is controlled by a condition Must be (or evaluate to) either true or false Can be a value, variable, or function call (Boolean DataType) Can be formed by using the six Relational operators and the three Logical operators

Boolean Variables A flag is a Boolean variable that signals when some condition exists in the program Since a Boolean variable is either True or False, it can be used as the condition of an If Note that an operator is not required (there is alternate syntax that does use operator) If blnQuotaMet Then lblMessage.Text = “Congratulations you have met your sales quota" End If

Boolean Functions Boolean Functions return a single True or False Value Since Boolean Functions return either True or False, a Boolean Function Call can be used as the condition of an If Note that an operator is not required (there is alternate syntax that does use operator) If isNumeric(strInput) Then intNumber = Val(strInput) End If

Relational Operators Often a condition is formed using a relational operator A relational operator determines if a specific relationship exists between two values > Greater than < Less than = Equal to <> Not equal to >= Greater than or equal to <= Less than or equal to

Relational Operators (cont.) Relational operators are binary – meaning they use two operands Either or both relational operator operands may be values, variables, expressions or function calls length <= 10 (Is length less than or equal to 10) len * wid > max + 1 (Is len * wid greater than max + 1) Val(txtNum.Text) = 0 (Is Val result equal to 0 – not assignment) Relational operators yield a True or False result

Relational Operators (cont.) Either or both relational operator operands may be expressions Math operators are evaluated before relational operators x+y and a-b are evaluated first Each result is then compared using the > operator Either or both relational operator operands may be function calls If x + y > a - b Then lblMessage.Text = "It is true!" End If If Val(txtInput.Text) < getMinValue() Then lblMessage.Text = "Invalid: Below Minimum" End If

Logical Operators And Or Xor Not These operators are used to evaluate boolean values and will yield a boolean result And Both operands must be true for the overall expression to be true, otherwise it is false Or One or both operands must be true for the overall expression to be true, otherwise it is false Xor One operand (but not both) must be true for the overall expression to be true, otherwise it is false Not Reverses the logical value of an expression

The And Operator The truth table for the And Operator True False False Expression 1 Expression 2 Expression 1 And Expression 2 True False False False True False False False False True True True If temperature < 20 And minutes > 12 Then lblMessage.Text = “Temperature is in the danger zone." End If AndAlso operator works identically but does not test minutes>12 if temperature<20 is false

The Or Operator The truth table for the Or Operator True False True Expression 1 Expression 2 Expression 1 Or Expression 2 True False True False True True True True True False False False If temperature < 20 Or temperature > 100 Then lblMessage.Text = “Temperature is in the danger zone." End If OrElse operator works identically but does not test temperature>100 if temperature<20 is true

The Xor Operator The truth table for the Xor Operator True False True Expression 1 Expression 2 Expression 1 Xor Expression 2 True False True False True True True True False False False False If total > 1000 Xor average > 120 Then lblMessage.Text = “You may try again." End If

The Not Operator The truth table for the Not Operator True False Expression 1 Not Expression 1 True False False True If Not temperature > 100 Then lblMessage.Text = "You are below the max temp." End If

Example: Checking Numerical Ranges Checking for a value inside a range uses And Checking for a value outside a range uses Or Must pay careful attention to differences in resulting range using: < vs <= or > vs >= Check problem requirements for ranges carefully If x >= 20 And x <= 40 Then lblMessage.Text = “Value is in the acceptable range." End If If x < 20 Or x > 40 Then lblMessage.Text = “Value is outside the acceptable range." End If

Precedence of Logical Operators Logical operators have an order of precedence just as arithmetic operators do From highest to lowest precedence Not And Or Xor As with arithmetic operations, parentheses are often used to clarify order of operations

Relational & Logical Operators Combined For example, in the statement If x < 0 And y > 100 Or z = 50 x < 0 And y > 100 is evaluated first If the And condition is true, we then evaluate True Or z = 50 If the And condition is false, we then evaluate False Or z = 50 If the Or condition is to be evaluated first parentheses must be used If x < 0 And (y > 100 Or z = 50)

All Operators Precedence Parenthesis Arithmetic Exponential Multiplication / Division Integer Division MOD Addition / Subtraction String Concatenation Relational Operators (< , > , >= , <= , <>) Logical Operators Not And Or, Xor)

Arithmetic, Relational, & Logical Operators Combined Evaluate the following if a=5, b=7, x=100, y=30 If x > a * 10 And y < b + 20 Evaluating the math operators leaves us with If x > 50 And y < 27 Evaluating the relational operators leaves If True And False Evaluating the logical operators leaves False Parentheses make order of operations clear If (x > (a * 10)) And (y < (b + 20))

If…Then Examples If (intSales > 50000) Then blnGetsBonus = True End If ----------------------------------------------------------------- If ((blnGetsBonus)Or((intMissedDays < 2)And(intSales > 30000))) intDaysOff = intDaysOff + 1 intEmpRating += 1 If (Not(isNumeric(txtInput.text))) Then txtInput.text = “” MsgBox(“Please enter a number in the textbox”) If (intGrade >= 80)And(intGrade < 90) Then lblMessage.text = “B” If ((Val(txtGrade.text) < 0)Or(Val(txtGrade.text) > 100)) Then lblMessage.text = “Invalid Grade: Not in the range 0-100”

If…Then vs If…Then…Else The If…Then construct will execute or ignore a group of statements (do something or do nothing) The If…Then…Else construct will execute one group of statements or another group (do this or do that) Condition False True Statement(s) If False Statement(s) If True Condition True False Statement(s) If True

If…Then…Else Decision Structure provides two choices Evaluate condition: True or False True – execute code in If…Then block False – execute code in Else Block One of the two choices must be selected They are mutually exclusive Condition False True Statement(s) If False Statement(s) If True

If…Then…Else Syntax Syntax explanation: If condition Then statement[s]1 Else statement[s]2 End If Syntax explanation: If , Then, Else, and End – Keywords Condition – True/False value, variable, function call or expression Statement[s]1 – executed if condition is True Statement[s]2 – executed if condition is False

If…Then…Else Examples If (intSales > 50000) Then blnGetsDoubleBonus = True decBonus = 4000.00 Else decBonus = 2000.00 End If ----------------------------------------------------------------- If (Not(isNumeric(txtInput.text))) Then MsgBox(“You did not enter a valid number – program will end”) End intNumber = Val(txtInput.text) If (intTemp >= 60)And(intTemp < 90)And(VisibRating() > 5) Then lblMessage.text = “Go - Weather conditions are ideal” lblMessage.text = “Wait - Weather conditions unacceptable”

If…Then…ElseIf Decision Structure allows for multiple mutually exclusive choices Each of the conditions is tested in sequence When a condition is true, the corresponding code is executed and the remaining conditions are ignored C1 True Statement(s)1 False C2 True Statement(s)2 False C3 True Statement(s)3 False

If…Then…ElseIf Conditions If it is very cold Then Wear a coat Elseif it is chilly Wear a light jacket Elseif it is windy Wear a windbreaker Elseif it is hot Wear no jacket The order of the conditions is vital Wrong order can result in wrong decision What if it’s chilly and windy? If windy is tested before chilly, you’d go out with a windbreaker when you need a jacket

If…Then…ElseIf Syntax Syntax explanation: If , Then, ElseIf, and End – Keywords Condition1 thru n – True/False value, variable, function call or expression Statement[s]1 – executed if condition1 is True Statement[s]2 – executed if condition1 is False and if condition2 is True Statement[s]n – executed if condition1 thru (n-1) is False and if conditionn is True If condition1 Then statement[s]1 ElseIf condition2 statement[s]2 • • • ElseIf conditionn statement[s]n End If

If…Then…ElseIf Examples If sngAvg < 59.5 Then lblGrade.Text = "F" ElseIf sngAvg < 69.5 Then lblGrade.Text = "D" ElseIf sngAvg < 79.5 Then lblGrade.Text = "C" ElseIf sngAvg < 89.5 Then lblGrade.Text = "B" ElseIf sngAvg <= 100 Then lblGrade.Text = "A" End If In each example, does the order of the conditions matter? What happens if the order is reversed in each example? If radCredCrd.checked Then CredCrdPayment(decSubTot) ElseIf radDebCrd.checked Then DebCrdPayment(decSubTot) ElseIf radCheck.checked Then CheckPayment(decSubTot) End If

If…Then…ElseIf…Else (Trailing Else) Else is simply an If…Then…ElseIf with an Else at the end Called a Trailing Else If the initial If and none of the ElseIf conditions are True, the trailing Else statement(s) will be executed C1 True Statement(s)1 False C2 True Statement(s)2 False C3 True Statement(s)3 False Statement(s)Else

If…Then…ElseIf …Else Syntax Syntax explanation: Same as If..Then…ElseIf thru statement[s] n Statement[s]Else – executed if condition1 thru n (all previous conditions) are False If condition1 Then statement[s]1 • • • ElseIf conditionn statement[s]n Else statement[s]Else End If

If…Then…ElseIf…Else Examples If sngAvg < 59.5 Then lblGrade.Text = "F" ElseIf sngAvg < 69.5 Then lblGrade.Text = "D" ElseIf sngAvg < 79.5 Then lblGrade.Text = "C" ElseIf sngAvg < 89.5 Then lblGrade.Text = "B" ElseIf sngAvg <= 100 Then lblGrade.Text = "A“ Else lblGrade.Text = "Invalid" End If If intCredScr >= 700 Then strLoanType = “Prime” intLoanRate = 1 ElseIf intCredScr >= 600 Then strLoanType = “Standard” intLoanRate = 2 ElseIf intCredScr >= 500 Then strLoanType = “Risk” intLoanRate = 3 ElseIf intCredScr >= 400 Then strLoanType = “HiRisk” intLoanRate = 4 Else MsgBox(“Not Qualified“) End End If

Nested If If Statements Within If Statements Any type of statement may be used inside the statement(s) portion of any form of If This includes other If statements If statements within If statements create a more complex decision structure called a Nested If

Nested If Example A customer qualifies for a special rate loan if: If credit score is higher than 650 and Income is more than 30000 Or Debt is less than 1000 Or If credit score is higher than 700 If intCredScr > 650 Then If decIncome > 30000 Then lblMessage.Text = “qualified" ElseIf DecDebt < 1000 lblMessage.Text = “qualified“ Else lblMessage.Text = “not qualified“ End If ElseIf intCredScr > 700 Then

Select Case Statement Similar to If…Then…ElseIf Performs a series of tests Conditionally executes the first true condition Select Case is different in that: A single test expression may be evaluated The test expression is listed once The possible values of the expression are then listed with their conditional statements Case Else may be included and executed if none of the values match the expression

Select Case Statement Examples Select Case Val(txtInput.Text) Case 1 MsgBox("Day 1 is Monday.") Case 2 MsgBox("Day 2 is Tuesday.") Case 3 MsgBox("Day 3 is Wednesday.") Case 4 MsgBox("Day 4 is Thursday.") Case 5 MsgBox("Day 5 is Friday.") Case 6 MsgBox("Day 6 is Saturday.") Case 7 MsgBox("Day 7 is Sunday.") Case Else MsgBox("The value is invalid.") End Select Select Case strAnimal Case "Dog“,"Cat" MsgBox("House Pet") Case "Cow“,"Pig“,"Goat" MsgBox("Farm Animal") Case "Lion“,"Tiger“,"Bear" MsgBox("Oh My!") End Select Select Case intScore Case Is >= 90 strGrade = “A” Case 80 to 89 strGrade = “B” Case 70 to 79 strGrade = “C” Case 60 to 69 strGrade = “D” Case 0 to 59 strGrade = “F” End Select

Example Decision Problems Write a program that will prompt the user to input a number. Check for valid input. If the input is invalid (non-numeric) – give an error message via MsgBox and end the Event Procedure. If valid – assign the number to a variable and output the number to the user Now experiment with validity checking for more restrictive input criteria with numbers (ex: only numbers from 1-100, only integers, only positive integers, etc.) and text (ex: only single characters, only the letters a-d, etc.)

Example Decision Problems Write a program that inputs 2 values and displays their positive difference. For example, if the first input is 6 and the second input is 9, then the positive difference is 3 (note: 3 is still the answer if the first input is 9 and the second input is 6). Now add the code to handle invalid (non-numeric) input .

Example Decision Problems Write a VB application to have the user input via textbox an integer from 1 t0 100,000 (inclusive). Determine if the input is a valid. If invalid, give an error message, clear the textbox, and end the event procedure (discuss). If valid, use a boolean function to determine if the integer is even or odd and use an integer function to determine if the integer is a perfect square (return the root if yes, return -1 if no). Report your results via label. Write a VB application to have the user input a 2 digit binary number via input box. Determine if the input is a valid 2 digit binary number. If not give a specific error message and terminate the app. If valid, convert the number to a decimal value (try using a function to do this) and report the results via message box. (try with 3 digits)

Homework Lab 6 and Homework 6 Visual Basic – Decisions See handout for details and due date Questions?