CIS162AB - C

1 / 39
About This Presentation
Title:

CIS162AB - C

Description:

CIS162AB - C++ Flow Control if, while, do-while Juan Marquez (03_flow_control.ppt) Overview of Topics Pseudocode Control Structures Flowcharts Single and Compound ... – PowerPoint PPT presentation

Number of Views:12
Avg rating:3.0/5.0

less

Transcript and Presenter's Notes

Title: CIS162AB - C


1
CIS162AB - C
  • Flow Control if, while, do-while
  • Juan Marquez(03_flow_control.ppt)

2
Overview of Topics
  • Pseudocode
  • Control Structures
  • Flowcharts
  • Single and Compound Boolean Expressions
  • Single and Compound Statements
  • If, if-else, nested ifs
  • While, do-while, nested loops

3
Pseudocode
  • Pseudocode is a mixture of C code and English
    like statements.
  • Used when designing algorithms.
  • When designing, we dont necessarily want to be
    concerned about where semi-colons go. We want to
    concentrate on the design.
  • Ill use pseudocode throughout the course, so
    dont feel compelled to correct my syntax.
  • However, if at anytime you are not sure about a
    command, please be sure to ask for clarification.
    ?

4
Flow Control
  • The order in which statements are executed.
  • There are four control structures.
  • Sequence Control Structure
  • Selection Control Structure
  • Also referred to as branching (if and if-else)
  • Repetition Control Structure (loops)
  • Case Control Structure (switch)

5
Flowcharting
  • A flowchart is a pictorial representation of an
    algorithm or logical steps.
  • Each step is represented by a symbol and the
    arrows indicate the flow and order of the steps.
  • The shape of the symbol indicates the type of
    operation that is to occur.
  • Flowcharts may help the move visual students
    learn and understand logic.

6
Flowchart Symbols
Input or Output
Begin or End
Decision
Processing
Branch or Direction of Flow
7
1. Sequence Control Structure
  • The order statements are placed (sequenced)
  • cin gtgt price gtgt qty
  • subtotal price qty
  • cout ltlt subtotal
  • The only way to display the subtotal, statements
    must be in this order.

8
Flowchart Sequence Control
Begin
Input price, qty
subtotal price qty
Output subtotal
End
9
2. Selection Control ( if )
  • Simple if with single statement.
  • discountRate 1.00
  • if (qty gt 25)
  • discountRate .98
  • subtotal qty (price discountRate)

10
Flowchart if statement
discountRate 1.00
If qty gt 25
True
discountRate .98
False
Subtotal qty (price discountRate)
11
Selection Control (if-else)
  • Simple if-else with single statements.
  • DISCOUNT_RATE .98
  • if (qty gt 25)
  • subtotal qty (price DISCOUNT_RATE)
  • else
  • subtotal qty price
  • cout ltlt subtotal

12
Flowchart if-else statement
DISCOUNT_RATE .98
If qty gt 25
Subtotal qty (price DISCOUNT_RATE)
True
False
Subtotal qty price
Output subtotal
13
Boolean Expressions
  • Boolean expressions evaluate to true or false.
  • Must be enclosed in parenthesis
  • if (Boolean expression)
  • true statements (Yes)
  • else
  • false statements (No)

14
Compound Statements
  • Use braces to create a block of statements.
  • if (hours gt 40)
  • regularPay 40 payRate
  • overtimePay (hours 40)
    (payRate OVERTIME_RATE)
  • else
  • regularPay hours payRate
  • overtimePay 0
  • grossPay regularPay overtimePay

15
Incorrect if-else
  • if (hours gt 40)
  • regularPay 40 payRate
  • overtimePay (hours 40)
    (payRate OVERTIME_RATE)
  • else
  • regularPay hours payRate
  • overtimePay 0
  • grossPay regularPay overtimePay
  • overtimePay would always be set to zero.

16
Boolean Expressions
  • Simple Expressions
  • Have one comparison
  • (hours gt 40)
  • Compound Expressions
  • Have more than one comparison
  • Created by using And and Or operators
  • And - (qty gt 0 qty lt 51)
  • Or - (qty lt 0 qty gt 51)

17
And Operator -
  • Both conditions must be true.
  • if (qty gt 0 qty lt 51)
  • subtotal qty price
  • else
  • cout ltlt Quantity must be 1 50.
  • What happens if qty 0, qty 25, or qty 60?
  • A block with a single statement is valid.

18
Or Operator -
  • Either condition must be true.
  • if (qty lt 1 qty gt 50)
  • cout ltlt Quantity must be 1 -50.
  • else
  • subtotal qty price
  • What happens if qty 0, qty 25, or qty 60?

19
Pipe Character -
  • Where is the pipe character on the keyboard?
  • On most keyboards
  • It is right above the Enter key
  • Shares the key with the back slash - \
  • Must hold the shift key go get it
  • Instead of a solid line, it is shown as a broken
    line
  • For the Or operator, 2 pipe characters must be
    entered - .
  • For the And operator, 2 ampersands characters
    must be entered - .

20
Notes on Boolean Expressions
  • Short-circuit evaluation if the evaluation of
    the entire expression can be determined by the
    result of the first expression, the second
    expression is not evaluated.int y 1, x 0if
    (y gt 0 x gt 0) // T or F
  • Not operator (!)( y ! 0) //This statement
    is OK, but the not( !(y 0)) //outside the
    parentheses can be confusing.

21
Booleans Only True or False
  • C does the math to get to a True or False.
  • true 1, false 0
  • Non-zeros converted to true, which is a one.
  •   if ( (5 7) (!6) )
  • T T (!T)
  • T F
  • 1 0 1 T

22
Nested if Statements - Indented
  • if (qty gt 0)
  • if (qty lt 51)
  • subtotal qty price
  • else
  • cout ltlt Quantity must be lt 51
  • else
  • cout ltlt Quantity must be gt 0

23
Matching else to if
  • How are else statements matched with an if?
  • Compiler works its way back. When an else is
    encounter, it looks back to find an if that has
    not been matched to an else.
  • Why do we indent each level?
  • We indent to make programs easier to read.
    Indenting has no effect on how compiler matches
    an else to an if.

24
Multiway BranchingIndenting not always practical
  • if (qty lt 26)
  • discount 0
  • else
  • if (qty lt 51)
  • discount .01
  • else
  • if (qty lt 76)
  • discount .02
  • else
  • if (qty lt 101)
  • discount .03 more

25
Multiway Branching
  • if (qty lt 26)
  • discount 0
  • else if (qty lt 51)
  • discount .01
  • else if (qty lt 76)
  • discount .02
  • else if (qty lt 101)
  • discount .03
  • else
  • discount .04

26
Conditional Operator Expression
  • if (qty gt 25)
  • discountRate 0.98
  • else
  • discountRate 1.00
  • discountRate (qty gt 25) ? .98 1.00

27
Assignment () vs Comparison ()
  • if (x 12) // always true
  • if (x 12) // comparison
  • To prevent accidental assignment, state constant
    first.
  • if (12 x)
  • Compiler will report this as a syntax error.

28
3. Repetition Control (loops)
  • loop a group of statements that are repeated
    until a certain conditions occurs to stop it.
  • while loop
  • do-while loop
  • for-loop (covered later)

29
While Loop Example
  • count 3 //initialize controlling variable
  • while (count gt 0)
  • cout ltlt count
  • count--
  • Output
  • 3 2 1 

30
While Loop
  • Controlling Boolean expression evaluated before
    executing loop body.
  • Controlling variable must be initialized.
  • Boolean expression must be true to enter loop
    body.
  • No semicolon after Boolean expression.
  • It is possible that body is not executed at all.
  • Boolean expression must be false to get out of
    loop.
  • Controlling variable must be modified inside
    loop.
  • Execution continues with next statement after
    loop.

31
Flowchart While Loop
Initialization important for While Loop
count 3
while count gt 0
False
True
Output count
Skip or Exit Loop
Represents Loop
count--
Next statement
32
Do-while Loop Example
  • count 3
  • do
  • cout ltlt count
  • count--
  • while (count gt 0)
  • Output
  • 3 2 1

33
Do-while Loop
  • Controlling Boolean expression evaluated after
    executing body.
  • So, body is always executed at least one time.
  • Initialization of controlling variable not
    necessarily required if it will be initialized
    inside the loop.
  • Boolean expression must be false to get out of
    loop.
  • Controlling variable must be modified inside
    loop.
  • Semicolon required after Boolean expression.
  • Execution continues with next statement after
    loop.

34
Flowchart Do-while Loop
count 3
Output count
Loop will be executed at least one time, because
the condition is at the bottom.
count--
Represents Loop
while count gt 0
True
False - Exit Loop
Next statement
35
Loop Summary
  • Incrementor count
  • Decrementor count--
  • Infinite loop expression that always evaluates
    to true
  • Avoid using as the operator.
  • Controlling variable must be altered within the
    loop.
  • Use Control-C to terminate an infinite loop.
  • When to use a while or do-while will become
    evident as we continue to use and learn each
    loop.

36
Nested Loops
  • count 3
  • while (count gt 0)
  • cout ltlt endl ltlt count
  • count--
  • count2 1
  • do
  • cout ltlt count2
  • count2
  • while (count2 lt 4)

3
1 2 3
2
1 2 3
1
1 2 3
37
While Loop Error
  • Semi-colon after expression creates an infinite
    loop with a single statement that does nothing.
  • DO NOT DO THIS.
  • while (count gt 0)
  • cout ltlt count
  • count--

38
4. Case Control Structure
  • Switch statement covered later.

39
Summary
  • Control Structures
  • Flowcharts
  • Single and Compound Boolean Expressions
  • Single and Compound Statements
  • If, if-else, and nested ifs
  • While, do-while, and nested loops
Write a Comment
User Comments (0)