Sie sind auf Seite 1von 39

Algorithms, Flowcharts &

Program Design
ComPro

Definition
Algorithm:
o sequence of steps to be performed in order to solve a
problem by the computer.

Flowchart:
o graphical or symbolic representation of an algorithm
(diagrammatic representation of the step-by-step
solution to a given problem).

Program Design:
o steps a programmer should do before they start
coding the program in a specific language.
o Proper program design helps other programmers to
maintain the program in the future.

Example
The call-me algorithm:
o When your train arrives, call my mobile
phone.
o Meet me outside the railway station.

There are often many different algorithms


to accomplish any given task.
Each algorithm has advantages and
disadvantages in different situations.

Reason Using Algorithm


Efficiency: time, cost
Abstraction: complicated problems can be
distilled into simpler ones for which
wellknown algorithms.
Reusability: Algorithms are often reusable
in many different situations.

Expressing Algorithms
many different notations: natural
languages, pseudocode, flowcharts.
o Natural language: tend to be verbose and
ambiguous (rarely used for complex
algorithm).
o Pseudocode and flowcharts: are structured
ways, avoid many ambiguities common in
natural language statements.
Sometimes it is helpful in the description of an algorithm to supplement small
flowcharts with natural language and/or arithmetic expressions written inside
block diagrams to summarize what the flowcharts are accomplishing.

Example
Algorithm using natural language statements:
o Assume the first item is largest.
o Look at each of the remaining items in the list and if it is
larger than the largest item so far, make a note of it.
o The last noted item is the largest item in the list when the
process is complete.

Algorithm using pseudocode:


largest = La
for each item in the list (Length (L) 1), do
if the item largest, then
largest = the item
return largest

Benefits of Using Algorithms


Reduces the task into a series of smaller
steps of more manageable size.
Problems can be approached as a series
of small, solvable sub-problems.
Efficient.

Flowcharts
Flowchart is a type of diagram (graphical or
symbolic) that represents an algorithm or
process.
Each step in the process is represented by a
different symbol and contains a short
description of the process step.
The flow chart symbols are linked together
with arrows showing the process flow
direction.
A flowchart typically shows the flow of data in
a process.

Why Flowcharts
Flowcharts are used in analyzing,
designing, documenting or managing a
process or program in various fields.
Flowcharts are generally drawn in the
early stages of formulating computer
solutions.
Flowcharts often facilitate communication
between programmers and business
people.

Example
Read X, Y, Z
Compute Sum (S) as
X+Y+Z
Compute Average (A)
as S / 3
Compute Product (P)
as X x Y x Z

Advantages of Using Flowcharts


Communication: a better way of logical
communicating.
Effective analysis: problem can be analysed in
more effective way.
Proper documentation.
Efficient Coding: a guide or blueprint during the
systems analysis and program development
phase.
Proper Debugging: helps in debugging process.
Efficient Program Maintenance: easy with the help
of flowchart

Limitations of Using Flowcharts


Complex logic: Sometimes, the program
logic is quite complicated. In that case,
flowchart becomes complex and clumsy.
Alterations and Modifications: If alterations
are required the flowchart may require redrawing completely.
Reproduction: As the flowchart symbols
cannot be typed, reproduction of flowchart
becomes a problem.

Flowchart Symbols

Terminator: Start or End


Process
Decision: Yes/No question or True/False
Connector: jump in the process flow
Data: data input or output (I/O)
Delay
Arrow: flow of control in a process.

Basic Symbol
Name

Symbol

Use in Flowchart

Oval

Denotes the beginning or end of the program

Parallelogram

Denotes an input operation

Rectangle

Denotes a process to be carried out


e.g. addition, subtraction, division etc.

Diamond

Denotes a decision (or branch) to be made.


The program should continue along one of
two routes. (e.g. IF/THEN/ELSE)

Hybrid

Denotes an output operation

Flow line

Denotes the direction of logic flow in the program

Example

Terminator
Process
Decision
Connector
Data
Delay
Arrow

Example

Terminator
Process
Decision
Connector
Data
Delay
Arrow

Ex. : convert the length in feet to centimeter

Algorithm:

Flowchart

o Step 1: Input Lft


o Step 2: Lcm Lft x 30
o Step 3: Print Lcm

Pseudocode:
o Input the length in feet (Lft)
o Calculate the length in cm (Lcm) by
multiplying LFT with 30
o Print length in cm (LCM)

START

Input
Lft

Lcm Lft x 30

Print
Lcm

STOP

Ex. : read the two sides of a rectangle


and calculate its area
START

Algorithm
o Step 1: Input W,L
o Step 2: A L x W
o Step 3: Print A

Pseudocode

Input
W, L

ALxW

Print
A

STOP

o Input the width (W) and Length (L) of a rectangle


o Calculate the area (A) by multiplying L with W
o Print A

Ex. : calculate the roots of a quadratic equation


ax2 bx c 0

Equation:
Calculate: d = sqrt (b2 4ac), and
Roots:
o x1 = (b + d)/2a and
o x2 = (b d)/2a

Ex. Roots of Quadratic Eq.


Algorithm:
o
o
o
o
o

Step 1: Input a, b, c
Step 2: d=sqrt (bb 4 a c)
Step 3: x1=(b + d) / (2 x a)
Step 4: x2=(b d) / (2 x a)
Step 5: Print x1, x2

Pseudocode:
o
o
o
o
o

Input the coefficients (a, b, c)


Calculate d
Calculate x1
Calculate x2
Print x1 and x2

START

Input
a, b, c
d sqrt(b x b 4 x a x c)
x1 (b + d) / (2 x a)
X2 (b d) / (2 x a)
Print
x1 ,x2

STOP

Ex.
START

Algorithm:
Input
VALUE1,VALUE2

o?

Pseudocode:
o?

is
VALUE1>VALUE2

MAX VALUE1

MAX VALUE2

Print
The largest value is, MAX

STOP

Program Design
The phase of program development:
o Determination of hardware and software
resources needed by the program are
identified and the logic to be used by the
program.

Program Design consists of the steps a


programmer should do before they start
coding the program in a specific language.

Activities in Program Design


Understanding the Program (user need)
System Analyst
o variety of documentation items (include
screen layouts, narrative descriptions,
documentation showing, the processing
steps, etc.
o Understanding the purpose of a program
(inputs, processing, outputs)

Using Design Tools to Create a Model


Develop Test Data

Test Data
Test data consists of the user providing
some input values and predicting the
outputs.
This can be quite easy for a simple
program and the test data can be used to
check the model to see if it produces the
correct results.

Components of Program Design


Problem definition, leading to a program
specification,
Modular program design, which refines the
specification,
Module composition, which translates
specification into executable program,
Module/program evaluation and testing,
during which you refine the program and find
errors,
Program documentation, which pervades all
other phases.

Approach
The two most common ones are
procedural programming and objectoriented programming.
Procedures may use objects, and objects
usually use procedures, called methods.
The object-oriented code takes more
planning and is significantly larger, but it is
generally accepted to be easier.

Approach

Object-Oriented Formulations
The process of creating an objectoriented (OO) formulation in program
design involves at least three stages:
o Object-Oriented Analysis (OOA),
o Object-Oriented Design (OOD), and
o Object-Oriented Programming (OOP).

Object-Oriented Analysis
Find objects and classes
o Create an abstraction of the problem domain.
o Give attributes behaviours, classes, and objects
meaningful names.
o Identify structures pertinent to the systems complexity and
responsibilities.
o Observe information needed to interact with the system, as
well as information to be stored.
o Look for information re-use; are there multiple structures;
can sub-systems be inherited?

Define the attributes


Define the behavior
Diagram the system

Object-Oriented Analysis
Find objects and classes
Define the attributes
o
o
o
o
o
o
o
o

Select meaningful names.


Describe the attribute and any constraints.
What knowledge does it possess or communicate?
Put it in the type or class that best describes it.
Select accessibility as public or private.
Identify the default, lower and upper bounds.
Identify the different states it may hold.
Note items that can either be stored or re-computed.

Define the behavior


Diagram the system

Object-Oriented Analysis
Find objects and classes
Define the attributes
Define the behavior
o
o
o
o
o
o
o
o

Give the behaviours meaningful names.


What questions should each be able to answer?
What services should it provide?
Which attribute components should it access?
Define its accessibility (public or private).
Define its interface prototype.
Define any input/output interfaces.
Identify a constructor with error checking to supplement the
intrinsic constructor.
o Identify a default constructor.

Diagram the system

Object-Oriented Analysis

Find objects and classes


Define the attributes
Define the behavior
Diagram the system
o Employ an OO graphical representation.

Object-Oriented Design
Improve and add to the OOA results during OOD.
Divide the member functions into constructors, accessors, agents
and servers.
Design the human interaction components.
Design the task management components.
Design the data management components.
Identify operators to be overloaded.
Identify operators to be defined.
Design the interface prototypes for member functions and for
operators.
Design code for re-use through kind of and part of hierarchies.
Identify base classes from which other classes are derived.
Establish the exception handling procedures for all possible errors.

Object-Orientedness
Object-based modular structure:
o Systems are modularized on the basis of their data structure.

Data Abstraction:
o Objects should be described as implementations of abstract data types.

Automatic memory management:


o Unused objects should be de-allocated by the language system.

Classes:
o Every non-simple type is a module, and every high-level module is a
type.

Inheritance
o A class may be defined as an extension or restriction of another.

Polymorphism and dynamic binding:


o Entities are permitted to refer to objects of more than one class and
operations can have different realizations in different classes.

Multiple inheritances:
o Can declare a class as heir to more than one class.

Summary
Algorithm is the sequence of steps to be
performed in order to solve a problem by
the computer.
Three reasons for using algorithms are
efficiency, abstraction and reusability.
Algorithms can be expressed in many
different notations, including natural
languages, pseudocode, flowcharts and
programming languages.

Summary
Analysis of algorithms is the theoretical
study of computer program performance
and resource usage, and is often practised
abstractly without the use of specific
programming language or implementation.
The practical goal of algorithm analysis is
to predict the performance of different
algorithms in order to guide program
design decisions.

Summary
Most algorithms do not perform the same
in all cases; normally an algorithms
performance varies with the data passed
to it.
Typically, three cases are recognized: the
best case, average case and worst case.
Worst case analysis of algorithms is
considered to be crucial to applications
such as games, finance and robotics.

Summary
Flowchart : diagrammatic representation of
the step-bystep solution to a given problem.
Flowcharts are used in analyzing, designing,
documenting or managing a process or
program in various fields.
Benefits of using flowcharts include ease of
communication, effective and efficient
analysis and coding, proper documentation
and maintenance.
Limitations of using flowcharts include
complex logic and multiple modifications.

Summary
Program Design consists of the steps a programmer
should do before they start coding the program in a
specific language.
Program design must be extremely structured, having
the ultimate intentions of performing a specific
calculation efficiently with attractive, understandable,
efficient programs.
Three broad areas of activities in program design: (1)
Understanding the Program, (2) Using Design Tools to
Create a Model and (3) Develop Test Data
The process of creating an OO formulation in program
design involves at three stages: 1) OOA, 2) OOD, and
3) OOP.

Das könnte Ihnen auch gefallen