Uploaded by Prof Shebaz Memon

4. Session - 4 - Flowchart & Algorithm

advertisement
Definition
•A
flowchart depicts pictorially the sequence in which
instructions are carried out in an algorithm.
• A flowchart is a schematic representation of an
algorithm or a stepwise process, showing the steps of
boxes of various kinds and their order by connecting
these with arrows.
• Flowcharts are used not only as aids in developing
algorithms but also to document algorithms.
• Flowcharts are used in designing or documenting a
process or program.
Need for flowchart
•
1. Efficient Communication: since its represented in pictorial form a
flowchart seems to be the better way of communicating the logic to the
programmers or any common man.
•
2. Efficient Analysis: With the help of a flowchart problem can be analyzed
effectively.
•
3. Proper Documentation: flowchart plays an important role in
understanding the logic of complicated and lengthy problems. Hence it is
very much required to document the flowcharts along with algorithms.
•
4. Easy and efficient coding: by looking at the flowchart writing programs
is a straight forward approach.
•
5. Program Debugging: flowchart helps in debugging process i.e., to
identify the logical errors in the program.
•
6. Program Maintenance: Maintaining the software or set of programs
becomes easy.
Drawbacks of flowchart
• (i)
Complex logic: For complicated logic the flowchart
becomes complex and clumsy.
• (ii) Alterations and modifications: if there is a change in
the logic, the flowchart has to be completely rewritten
and requires lot of time.
• (iii) Reproduction: in the case of any problem,
reproduction of flowchart becomes problem since the
flowchart symbols cannot be typed.
Four Flowchart Structures
• Sequence
• Decision
• Repetition
• Case
Sequence Structure
• A series of actions are performed in sequence.
• The
pay-calculating example was a sequence
flowchart.
Decision Structure
• One of two possible actions is taken, depending
on a condition.
Decision Structure
•A
new symbol, the diamond, indicates a yes/no
question. If the answer to the question is yes, the flow
follows one path. If the answer is no, the flow follows
another path
NO
YES
Decision Structure
• In the
flowchart segment below, the question “is x < y?”
is asked. If the answer is no, then process A is
performed. If the answer is yes, then process B is
performed.
NO
YES
x < y?
Process A
Process B
Decision Structure
• The flowchart segment below shows how a decision
structure.
Flowchart
NO
YES
x < y?
Calculate a
as x plus y.
Calculate a
as x times 2.
Decision Structure
• The
flowchart segment below shows a decision
structure with only one action to perform.
Flowchart
NO
YES
x < y?
Calculate a
as x times 2.
Repetition Structure
•A
repetition structure represents part of the program
that repeats. This type of structure is commonly known
as a loop.
Repetition Structure
• Notice
the use of the diamond symbol. A loop tests a
condition, and if the condition exists, it performs an
action. Then it tests the condition again. If the condition
still exists, the action is repeated. This continues until
the condition no longer exists.
Repetition Structure
• In
the flowchart segment, the question “is x < y?” is
asked. If the answer is yes, then Process A is performed.
The question “is x < y?” is asked again. Process A is
repeated as long as x is less than y. When x is no longer
less than y, the repetition stops and the structure is
exited.
YES
x < y?
Process A
Repetition Structure
• The
flowchart segment below shows a repetition
structure.
Flowchart
YES
x < y?
Add 1 to x
Controlling a Repetition Structure
• The
action performed by a repetition structure must
eventually cause the loop to terminate. Otherwise, an
infinite loop is created.
• In this flowchart segment, x is never changed. Once the
loop starts, it will never end.
• QUESTION: How can this
YES
flowchart be modified so
x < y?
Display x
it is no longer an infinite
loop?
Controlling a Repetition Structure
• ANSWER: By adding an action within the repetition that
changes the value of x.
YES
x < y?
Display x
Add 1 to x
A Pre-Test Repetition Structure
• This
type of structure is known as a pre-test repetition
structure. The condition is tested BEFORE any actions
are performed.
YES
x < y?
Display x
Add 1 to x
A Pre-Test Repetition Structure
• In
a pre-test repetition structure, if the condition does
not satify, the loop will never begin.
A Post-Test Repetition Structure
• This
flowchart segment shows a posttest repetition structure.
• The condition is tested AFTER the
actions are performed.
• A post-test repetition structure always
performs its actions at least once.
Display x
Add 1 to x
YES
x < y?
A Post-Test Repetition Structure
• The
flowchart segment below shows a post-test
repetition structure.
Display x
Flowchart
Add 1 to x
YES
x < y?
Case Structure
• One of several possible actions is taken, depending
on the contents of a variable.
Case Structure
• The structure below indicates actions to perform
depending on the value in years_employed.
CASE
years_employed
1
bonus = 100
2
3
bonus = 200
bonus = 400
Other
bonus = 800
Case Structure
If years_employed = 2,
bonus is set to 200
If years_employed = 1,
bonus is set to 100
1
bonus = 100
If years_employed = 3,
bonus is set to 400
If years_employed is
any other value, bonus
is set to 800
CASE
years_employed
2
3
bonus = 200
bonus = 400
Other
bonus = 800
Connectors
• Sometimes a flowchart will not fit on one page.
•A
connector (represented by a small circle) allows you to connect
two flowchart segments.
A
Connectors
• The
“A”
connector
indicates that the second
flowchart segment begins
where the first segment
ends.
START
A
END
A
Modules
• A program module (such as a function) is represented by a special
symbol.
Modules
•The position of the module
symbol indicates the point the
module is executed.
•A separate flowchart can be
constructed for the module.
START
Read Input.
Call calc_pay
function.
Display results.
END
Combining Structures
•
•
Structures
are
commonly combined
to
create
more
complex algorithms.
This
flowchart
segment shows two
decision structures
combined.
NO
YES
x > min?
Display “x is
outside the limits.”
NO
YES
x < max?
Display “x is
outside the limits.”
Display “x is
within limits.”
Review
• What do each of the following symbols represent?
(Answer on next slide)
Answer
• What do each of the following symbols represent?
Terminal
Input/Output
Operation
Process
Decision
Connector
Module
Review
• Name the four flowchart structures.
(Answer on next slide)
Answer
•
Sequence
•
Decision
•
Repetition
•
Case
Review
• What type of structure is this?
(Answer on next slide)
Answer
• Repetition
Review
• What type of structure is this?
(Answer on next slide)
Answer
• Sequence
Review
• What type of structure is this?
(Answer on next slide)
Answer
• Case
Review
• What type of structure is this?
(Answer on next slide)
Answer
• Decision
Algorithm
• An
algorithm is a precise specification of a sequence of
instructions to be carried out in order to solve a given
problem.
• An Algorithm is a technique to solve a given problem
systematically.
• An Algorithm is a step-by-step approach to solve a
given problem in finite number of steps.
• It takes a set of input values and processes it and gives
the output.
• Each instruction tells what task is to be performed.
Properties of Algorithm
• It should be simple.
• It may accept zero or more inputs.
• It should be precise with no ambiguity.
• It should have finite number of steps.
• It should produce at least one output.
Need for algorithm
•
1. Efficient Communication: Since an algorithm is written in English like
language, it seems to be the better way of communicating the logic. i.e. a
procedure to solve a given problem to the users.
•
2. Efficient Analysis: With the help of an algorithm problem can be
analysed effectively. There can be number of algorithms for solving a given
problem. Based on the analysis, a suitable and efficient algorithm can be
selected.
•
3. Proper Documentation: The selected algorithm has to be documented,
which will be useful to identify the logical errors.
•
4. Easy and efficient coding: the algorithm act as blue print during program
development. It will be easier to write efficient program using high level
language.
•
5. Program Maintenance: Maintaining the software or set of programs
becomes easy.
Disadvantages of algorithm
•
(i) Developing algorithms for large and complex problems is time
consuming and difficult to understand.
•
(ii) Understanding complex logic is tedious.
Execises:
• Write
an algorithm and draw a flowchart for the
following:
•
Calculate the area of a rectangle.
•
Calculate simple interest. (Simple Interest = Principle amount * Rate of
interest * Time in years)
•
Determine given number is odd or even.
•
Determine given number is positive, negative or zero.
•
Display the first 10 positive integer numbers.
•
Display numbers between given ranges. (e.g. if start=5 and end =10, then
display 5 6 7 8 9 10)
•
Find the sum of digits of the given number. (e.g. given number is 325 so
the result is 10 i.e. 3+2+5=10)
Download