Program Control Algorithms
Program Control Algorithms
CSCI 230
Program Control
- Algorithms
Dale Roberts, Lecturer
IUPUI
[email protected]
Dale Roberts
1
Algorithms
Algorithms is the are part of the problem solving
process
‘A’ in STAIR.
All computing problems can be solved by executing a
series of actions in a specific order, called an algorithm
Algorithm: procedure in terms of
Actions to be executed
The order in which these actions are to be executed
Program control
Specify order in which statements are to executed
Dale 2Roberts
Definition of Algorithm
Definition of an Algorithm
consists of unambiguous & computable operations
produce a result
halt in a finite amount of time. (Some scientists add a
restriction that the algorithm must halt in a reasonable
amount of time.)
Dale 3Roberts
Control Structures
Sequential execution
Statements executed one after the other in the order written
Transfer of control
When the next statement executed is not the next one in
sequence
Overuse of goto statements led to many problems
Bohm and Jacopini
All programs written in terms of 3 control structures
Sequence structures: Built into C. Programs executed sequentially by
default
Selection structures: C has three types: if, if/else, and switch
Repetition structures: C has three types: while, do/while and for
Dale 4Roberts
Pseudocode
Pseudocode
Artificial, informal language that helps us develop
algorithms
Similar to everyday English
Not actually executed on computers
Helps us “think out” a program before writing it
Easy to convert into a corresponding C program
Consists only of executable statements
Dale 5Roberts
Control Structures
Flowchart
Graphical representation of an algorithm
Drawn using certain special-purpose symbols connected
by arrows called flowlines
Rectangle symbol (action symbol):
Indicates any type of action
Oval symbol:
Indicates the beginning or end of a program or a section of code
Single-entry/single-exit control structures
Connect exit point of one control structure to entry point
of the next (control-structure stacking)
Makes programs easy to build
Dale 6Roberts
Errors in Control Structures
Syntax errors
Caught by compiler
Logic errors:
Have their effect at execution time
Non-fatal: program runs, but has incorrect output
Fatal: program exits prematurely
Dale 7Roberts
The if Selection Structure
Selection structure:
Used to choose among alternative courses of action
Pseudocode:
If student’s grade is greater than or equal to 60
Print “Passed”
If condition true
Print statement executed and program goes on to next
statement
If false, print statement is ignored and the program goes onto
the next statement
Indenting makes programs easier to read
C ignores whitespace characters
Dale 8Roberts
The if Selection Structure
Diamond symbol (decision symbol)
Indicates decision is to be made
Contains an expression that can be true or false
Test the condition, follow appropriate path
if structure is a single-entry/single-exit
structure
true
grade >= print “Passed”
60
false
Dale 9Roberts
The if Selection Structure
if structure is a single-entry/single-exit
structure
true
grade >= print “Passed”
60
false
Dale10Roberts
3.6 The if/else Selection Structure
if
Only performs an action if the condition is true
if/else
Specifies an action to be performed both when the condition
is true and when it is false
Pseudocode:
If student’s grade is greater than or equal to 60
Print “Passed”
else
Print “Failed”
Note spacing/indentation conventions
Dale11Roberts
The if/else Selection Structure
Flow chart of the if/else selection structure
false true
grade >= 60
Dale12Roberts
The if/else Selection Structure
Pseudocode for a nested if/else structure
If student’s grade is greater than or equal to 90
Print “A”
else
If student’s grade is greater than or equal to 80
Print “B”
else
If student’s grade is greater than or equal to 70
Print “C”
else
If student’s grade is greater than or equal to 60
Print “D”
else
Print “F”
Dale13Roberts
3.7 The while Repetition Structure
Repetition structure
Programmer specifies an action to be repeated while
some condition remains true
Pseudocode:
While there are more items on my shopping
list
Purchase next item and cross it off my list
while loop repeated until condition becomes false
Dale14Roberts
3.7 The while Repetition Structure
Example:
int product = 2;
while ( product <= 1000 )
product = 2 * product;
true
product <= 1000 product = 2 * product
false
Dale15Roberts
Summary: Structured Programming
Structured programming
Easier than unstructured programs to understand, test,
debug and, modify programs
Rules for structured programming
Rules developed by programming community
Only single-entry/single-exit control structures are used
Rules:
Rule #1.: Begin with the “simplest flowchart”
Rule #2.: Any rectangle (action) can be replaced
by two rectangles (actions) in sequence
Rule #3.: Any rectangle (action) can be replaced
by any control structure (sequence, if,
if/else, switch, while, do/while or for)
Rules 2 and 3 can be applied in any order and multiple times
Dale16Roberts
Summary: Structured-Programming
Rule 1 : Rule 2 : Rule 3 :
Begin with the Any rectangle can be replaced Replace any rectangle
simplest flowchart by two rectangles in sequence with a control structure
...
2 3
Rule Rule
3 3
All programs can be broken down into 3 controls
Sequence : handled automatically by compiler
Selection : if, if/else or switch
Repetition : while, do/while or for
Can only be combined in two ways: Nesting (Rule 3) and Stacking (Rule 2)
Any selection can be rewritten as an if statement, and any repetition can be
rewritten as a while statement
Dale17Roberts