Programming Fundamentals

Post on 08-Feb-2016

28 views 4 download

description

Neal Stublen nstublen@jccc.edu. Programming Fundamentals. Making Decisions. Human Decisions. Think about a decision you've made today? How did you arrive at that decision? Was it a black-and-white decision for you? Our decisions can be complex?. Computer "Decisions". - PowerPoint PPT Presentation

transcript

PROGRAMMING FUNDAMENTALS

Neal Stublennstublen@jccc.edu

MAKING DECISIONS

Human Decisions Think about a decision you've made

today? How did you arrive at that decision? Was it a black-and-white decision for

you? Our decisions can be complex?

Computer "Decisions" Computer decisions always reduce

down to simple logic comparisons Something is true or something is false It has a boolean value of true or false The decision block in a flow diagram

requires a yes/no decisionIs the light red?Is the light yellow?Is the light green?

Boolean Decisions We use boolean expressions to

determine a true or false condition We implement a selection structure Dual-alternative selection (if-then-else) Single-alternative selection (if-then)

If-Then If the condition is true, then perform an action or

a sequence of actions

if condition then    actionendif

if time is 6pm then    begin classendif

If-Then-Else If the condition is true, then perform an action or a sequence of actions Else perform a different action or sequence of actions

if condition then    actionelse    another actionendif

if time is 6pm then    begin classelse    waitendif

Boolean Expressions An expression is just a statement the

computer will evaluate4 + 3x / 4

A boolean expression will be evaluated as either true or false

Relational operators are used in boolean expressions

Relational Operators Equivalence, = or == Greater than, > Less than, < Greater than or equal to, >= Less than or equal to, <= Not equal to, <> or !=

Also called comparison operators

Relational Operatorsif customerAge >= 65 then    discount = 0.10else    discount= 0.0endif

if customerAge <65 then discount = 0.0else discount = 0.10endif

Negation Operator A negation operator reverses the logic of a true

or false expression (NOT or !)

if age >= 21 then    allow purchaseendif

if NOT age >= 21 then    refuse purchaseendif

Example What logic can we use to implement the

following discount table:

Purchase Discount$0.00 to $25.00 5%

$25.01 to $50.00 10%

$50.01 to $100.00 15%

Over $100.00 20%

Implementing Minimal Conditions Selecting from a group of ranges, the

last check is never necessary If the table is complete, we rule out one

possibility with each check If total is not > 100 and total is not > 50

and total is not > 25, then total must be <= 25.

Compound Conditions Sometimes we need more complex logic

to make a decision

if I’m speeding then if I see a police car then    slow down immediately endifendif

Nested Decisionsif condition1 then    if condition2 then        take action    endifendif

if condition1 AND condition2 then    take actionendif

AND Operatorif x AND y then do somethingendif

“x AND y” is a boolean expression that can be evaluated as true or false

x y x AND yTrue True True

True False False

False True False

False False False

Short-Circuit Evaluationif x AND y then do somethingendif

If we know x is false, we know x AND y is also false.There’s no need to evaluate y.

Short-Circuit Exampleif age > 12 AND age < 65 then movieDiscount = 0.0endif

If age is less than or equal to twelve, the computer will not need to determine if age is greater than 65.

Example How would we implement the following

discount table:

On Sundays, senior citizens receive an additional 5% discount.

Purchase Discount$0.00 to $25.00 5%

$25.01 to $50.00 10%

$50.01 to $100.00 15%

Over $100.00 20%

OR Operatorif x OR y then do somethingendif

“x OR y” is a boolean expression that can be evaluated as true or false

x y x OR yTrue True True

True False True

False True True

False False False

Short-Circuit Evaluation?if x OR y then do somethingendif

Is there a short-circuit evaluation for the OR operator?If we know x is true, we know x OR y is also true.There’s no need to evaluate y.

OR Efficiencyif age < 12 then movieDiscount = 0.10endifif age > 65 then movieDiscount = 0.10endif

if age < 12 OR age > 65 then movieDiscount = 0.10endif

AND/OR Precedence AND operator is always evaluated

before the OR operator

c1 OR c2 AND c3 OR c4 c1 OR (c2 AND c3) OR c4

Precedence Exampleif age <=12 OR age >= 65 AND not Friday then discount = 0.10endif

A twelve year old still gets the discount on Friday.

if (age <=12 OR age >= 65) AND not Friday then discount = 0.10endif

Parentheses always clarify intention.

Summary Boolean expressions Relational operators AND Logic OR Logic Selection within ranges AND/OR precedence

Date Validation What logic would we need to validate a

user’s date input? The user enters separate values for the

month, day, and year.