CS 106, Winter 2009 Class 7, Section 4

Post on 24-Feb-2016

34 views 0 download

Tags:

description

CS 106, Winter 2009 Class 7, Section 4. Slides by: Dr. Cynthia A. Brown, cbrown@cs.pdx.edu Instructor section 4: Dr. Herbert G. Mayer, herb@cs.pdx.edu. 1. Implementing a Process. Briefly describe the process - PowerPoint PPT Presentation

Transcript of CS 106, Winter 2009 Class 7, Section 4

1

CS 106, Winter 2009Class 7, Section 4

Slides by: Dr. Cynthia A. Brown, cbrown@cs.pdx.eduInstructor section 4: Dr. Herbert G. Mayer, herb@cs.pdx.edu

2

Implementing a Process• Briefly describe the process• Elaborate it using use cases till you understand how it should work in all

situations. • Figure out what the objects are and what their events are. Decide what

internal state the process needs: what it needs to remember.• Develop tests based on the use cases.• Design the user interface. • Develop a flowchart for each event, and walk through the use cases and

tests to validate them.• Implement the process. In VB, use VB controls for objects, VB subroutines

for events, and global variables (or fields of controls) for remembering values.

• Test your implementation.

3

Implementation in VB

• Start by building the user interface. Include all the objects you need. Give them meaningful names.

• Set up a subroutine for each event.• Use Dim statements to define your global variables. Use

meaningful names!• Write some code and test it. Test as you go along.• Document everything with comments.• Save early and often. Be sure to save your project to

your flash drive at the end of each programming session.

4

FlowchartPush Buy button

Input a number?yes no

Handle bad input

end

Compute costAdd tip

end

Print result

5

Enlarging our Repertoire

• So far we know how to write VB statements that change the values of properties of controls. These can be used to write information to text boxes, write labels, change the color of controls, etc.

• Our next type of statement will be a conditional: it allows us to change what the program does based on the outcome of a test.

6

Tests and Choices

• To allow a program to make choices based on conditions we need to introduce a new programming construct

• But first we look at how we program the tests that will determine which branch our program takes

7

Boolean Expressions

• A Boolean expression, like a Boolean variable, is one that can evaluate to true or false

• The constants True and False are the simplest Boolean expressions

• More interesting examples are created by, for example, comparing two things

• Complex Boolean expressions are built up out of simple ones using Boolean operations

8

Relational Operators

• Relational Operators are used to create simple Boolean expressions

• They include:= equal?< > not equal?< less than?<= less than or equal?> greater than?>= greater than or equal?

9

Examples of True/False Expressions

Dim varA, varB, varC As DoublevarA = 1varB = 2varC = 2

varA < varB is truevarA <= varB is truevarC < varB is falsevarC <= varB is truevarB = varC is true ‘note dual role of the symbol =

10

Logical Operators

• More complex Boolean expressions are built using Boolean operators.

• The most common Boolean operators are And, Or, and Not

• Other Boolean operators, such as exclusive or, are available if needed

• Not reverses the truth of its argument:Not (True) = False and vice-versa

11

And

• And is true if and only if both its arguments are true

• This is called a truth table

X Y X And Y

T T T

T F F

F T F

F F F

12

Or

• Or is true if and only if at least one of its arguments is true. This differs somewhat from the usual meaning of “or”

X Y X Or Y

T T T

T F T

F T T

F F F

13

More Complex Expressions

• These can be worked out using truth tables• Consider (Not X) or (X and Y)

X Y Not X X and Y Not X or (X and Y)

T T F T T

T F F F F

F T T F T

F F T F T

14

Another ExampleShow Not (A And B) is equal to (Not A) Or (Not B)

A B A And B Not (A and B)

T T T F

T F F T

F T F T

F F F T

A B Not A Not B (Not A) Or (Not B)

T T F F F

T F F T T

F T T F T

F F T T T

15

A Couple of Pointers

• Some math/relational expressions do not translate directly. For example, A < B <= C would be written as (A < B) And (B <= C)

• Be careful with And and Or. Normally both parts of an And expression are evaluated even if the first one is false, and both parts of an Or expression are evaluated even if the first one is true. Standard example: (X = 0) Or (Y/X <5)(could cause program to blow up if X = 0)

16

If Block

• VB uses Boolean expressions, along with If Blocks, to control the flow of execution of a program

If condition Then ‘here condition is a Boolean expression

action1Else

action2End If

17

If Block Example‘ compute shipping charge, with a discount for more expensive orders

If Price < DiscountShippingPrice ThenShippingCharge = Price * ShippingChargePercentPrice = Price + ShippingCharge

ElseShippingCharge = Price * DiscountShippingChargePercentPrice = Price + Shipping Charge

End If

18

If Block Example: Variation‘ compute shipping charge, with a discount for more expensive orders

If Price < DiscountShippingPrice ThenShippingCharge = Price * ShippingChargePercent

ElseShippingCharge = Price * DiscountShippingChargePercent

End If

Price = Price + Shipping Charge

19

If Block Flowchart

Condition true?yes no

Perfom action 1 Perfom action 2

Bringing the branches back togethergives the flowchart a better structure

20

If Block Options• The Else part can be omitted:If condition Then

action1End If

• There can be multiple ElseIf branchesIf condition1 Then ‘if condition1 is true do action1, end

action1ElseIf condition2 Then ‘if condition1 is F & condtion2 is T, do action2

action2Else ‘if both conditions are F, do action3

action3EndIf

21

Single Branch If Block ‘ compute shipping charge if applicableIf Price < FreeShippingPrice Then

ShippingCharge = Price * ShippingChargePercentPrice = Price + ShippingCharge

End If‘ if the block is not executed the price is unchanged

22

Multiple Branch If Block‘ Set thank you message based on tip sizeTipPercent = (TipAmount/BaseCharge) * 100If TipPercent < 15 Then

txtThankYou.Text = “Thanks.”ElseIf TipPercent < 20 Then

txtThankYou.Text = “Thank you and have a nice day.”ElseIf TipPercent < 25 Then

txtThankYou.Text = “Thank you very much! Have a nice day.”Else

txtThankYou.Text = “Thank you!! Have a GREAT Day!”End If

23

More Options

• You can nest entire if blocks inside the if or else part of another if block

• Nesting more than one or two deep is strongly discouraged! It makes the program hard to read

• Try to use Elseif or more complex conditions instead

24

Nested If’s‘ Select title based on language and sexIf Language = “French” Then

If Sex = Female ThenTitle = “Mademoiselle”ElseTitle = “Monsieur”Endif

ElseIf Language = “English” Then

If Sex = Female ThenTitle = “Miss”

Else Title = “Mister”EndIf

EndIf

25

Converting to ElseIfs‘ Select title based on language and sexIf Language = “French” And Sex = Female Then

Title = “Mademoiselle”ElseIf Language = “French” And Sex = Male Then

Title = “Monsieur”ElseIf Language = “English” And Sex = Female Then

Title = “Miss”ElseIf Language = “English” And Sex = Male Then

Title = “Mister”Else

Title = “” ‘ it’s always best to have an else caseEndIf

26

Select Case Blocks

• The select case block can be used when there are multiple options to choose from

• It can simplify program structure• It makes the logical structure of the program

clear when a nested if or long Elseif structure might not

27

Case Block exampleAssume position is a variable with a value between 1 and some number from 2 to 20

Select Case postionCase 1txtOutcome.Text = “Win” ‘several lines of code could go hereCase 2txtOutcome.Text = “Place”Case 3txtOutcome.Text = “Show”Case 4,5txtOutcome.Text = “Close but no cigar”Case ElsetxtOutcome.Text = “Out of the money”End Select

28

BREAK

10 minutes

29

Review of Assignment Program