l02 - introduction to algorithms - جامعة نزوى 151 –introduction to algorithms 1...
Post on 07-Apr-2018
217 views
Embed Size (px)
TRANSCRIPT
COMP 151 Introduction to Algorithms 1
Introduction to Algorithms
Dr. Saleh Al-Hatali
COMP 151
Introduction to Algorithms
COMP 151 - Introduction to Algorithms 1
What is an Algorithm?
A typical programming task can be divided into two phases:
Problem solving phase
Produces an ordered sequence of steps that describes the solution of problem
This sequence of steps is called an algorithm
Implementation phase
This phase implements the program in some programming language
COMP 151 - Introduction to Algorithms 2
COMP 151 Introduction to Algorithms 2
What is an Algorithm?
Algorithm
A sequence of unambiguous instructions to solve a problem
A well-defined procedure that takes some value(s) as input, process it and produces some value(s), as output
COMP 151 - Introduction to Algorithms 3
What is an Algorithm?
Computer
Problem
Algorithm
Input Output
COMP 151 - Introduction to Algorithms 4
COMP 151 Introduction to Algorithms 3
What is an Algorithm?
Hence algorithm has three parts:
Input
Processing or transformation
Output
COMP 151 - Introduction to Algorithms 5
Properties of an Algorithm Finiteness
Terminates in finite number of steps
Definiteness Each step must be clearly and carefully
specified
Input Valid inputs clearly specified
Output Can be proved to produce the correct output
given a valid input
Effectiveness Steps must be simple and atomic
COMP 151 - Introduction to Algorithms 6
COMP 151 Introduction to Algorithms 4
Steps in Problem Solving
First produce a general algorithm (one can use pseudocode)
Refine the algorithm successively to get step by step detailed algorithm that is very close to a computer language.
COMP 151 - Introduction to Algorithms 7
What is Pseudocode?
Pseudocode
Artificial, informal language used to develop algorithms
Similar to everyday English
Understood by programmers
Not executed on computers
Used to think out a program before coding
Easy to convert into C++ program
COMP 151 - Introduction to Algorithms 8
COMP 151 Introduction to Algorithms 5
Assignment
name = expression
set name = expression
name expression
Example
RemainingFunds = CheckingBalance +
SavingsBalance
Pseudocode Primitives
COMP 151 - Introduction to Algorithms 9
Conditional selection
if (condition) then
activity
Example
if (sales have decreased) then
lower the price by 5%
Pseudocode Primitives (continued)
COMP 151 - Introduction to Algorithms 10
COMP 151 Introduction to Algorithms 6
Conditional selection
if (condition) then
activity
else
activity
end if
Example
if (year is leap year) then
daily total = total / 366
else
daily total = total / 365
end if
Pseudocode Primitives (continued)
COMP 151 - Introduction to Algorithms 11
Repeated execution
while (condition)
body
Examplewhile (tickets remain to be sold)
sell a ticket
Pseudocode Primitives (continued)
COMP 151 - Introduction to Algorithms 12
COMP 151 Introduction to Algorithms 7
Indentation shows nested conditions
if (not raining) then
if (temperature == hot) then
go swimming
else
play golf
else
watch television
Pseudocode Primitives (continued)
COMP 151 - Introduction to Algorithms 13
Pseudocode Example
Write an algorithm to read the
final mark of a certain course
and determine if the student
passes or fails the course.
COMP 151 - Introduction to Algorithms 14
COMP 151 Introduction to Algorithms 8
Pseudocode Example
Pseudocode:
Input the final mark
if mark is below 60
Print FAIL
else
Print PASS
COMP 151 - Introduction to Algorithms 15
Pseudocode Example
Detailed Algorithm:
Step 1: Input MARK
Step 2: if (MARK < 60) then
Print FAIL
else
Print PASS
endif
COMP 151 - Introduction to Algorithms 16
COMP 151 Introduction to Algorithms 9
What is a Flowchart?
A graphical representation of the sequence of operations in an information system or program
A graphical way to express an algorithm
A picture is worth a thousand words
COMP 151 - Introduction to Algorithms 17
Flowchart Example
PRINT
PASS
Step 1: Input MARK
Step 2: if (MARK < 60) then
Print FAIL
else
Print PASS
endif
START
Input
MARK
IS
MARK
COMP 151 Introduction to Algorithms 10
Flow Chart Symbols
There are no one definition for flowcharting symbols
There are some guidelines for commonly used symbols
Just be sure that when using these symbols you are consistent with their meaning
COMP 151 - Introduction to Algorithms 19
Basic Flowchart Shapes and Definitions
Start / End
The start or end of a workflow
Process
Process or action
Connector
Used to connect one part
of a flowchart to another
Decision
Decision point in a process or
workflow
Input / Output
Data: Inputs to, and outputs
from, a process
COMP 151 - Introduction to Algorithms 20
COMP 151 Introduction to Algorithms 11
Flow Chart Symbols
The Start/Stop Symbol is used at the beginning and end of a flowchart
Start
COMP 151 - Introduction to Algorithms 21
Stop
Flow Chart Symbols
The Process Symbol represents any process, function, or action and is the
most frequently used symbol in
flowcharting
C A + B
COMP 151 - Introduction to Algorithms 22
COMP 151 Introduction to Algorithms 12
Flow Chart Symbols
The Input/Output Symbol represents data that is available for input or resulting from
processing (i.e. customer database
records)
Display SUM
COMP 151 - Introduction to Algorithms 23
Flow Chart Symbols
The Decision Symbol is a junction where a decision must be made. A single entry
may have any number of alternative
solutions, but only one can be chosen
A > B?
COMP 151 - Introduction to Algorithms 24
NoYes
COMP 151 Introduction to Algorithms 13
Flow Chart Symbols
The Connector Symbol represents the exit to, or entry from, another part of the same
flow chart. It is usually used to break a
flow line that will be continued elsewhere.
COMP 151 - Introduction to Algorithms 25
General Rules for Flowcharts
All boxes of the flowchart are connected with Arrows (Not lines).
Flowchart symbols have an entry point on the top of the symbol with no other entry points. The exit point for all flowchart symbols is on the bottom except for the Decision symbol.
The Decision symbol has two exit points; these can be on the sides or the bottom and one side.
COMP 151 - Introduction to Algorithms 26
COMP 151 Introduction to Algorithms 14
Various Structures of Algorithm
Sequence (also known as Order or Process)
Decision (also known as Selection)
Repetition (also known Iteration or Looping)
COMP 151 - Introduction to Algorithms 27
The Sequence Structure
This is the default structure of programs. Flow will transfer from start to end in sequence unless encountered by selection or repetitionstructures.
Is also known as Process.
COMP 151 - Introduction to Algorithms 28
COMP 151 Introduction to Algorithms 15
The Sequence Structure
Example: Write an algorithm to add two numbers and display their sum
Start
Step 1: Read num1
Step 2: Read num2
Step 3: sum num1 + num2
Step 4: Display sum
Stop
COMP 151 - Introduction to Algorithms 29
The Sequence Structure
COMP 151 - Introduction to Algorithms 30
STOP
START
Inputnum1, num2
sum num1 + num2
Displaysum
COMP 151 Introduction to Algorithms 16
The Sequence Structure
Start
Read
Num1
Sum Num1 + Num2
Read
Num2
Display
Sum
Stop
Another Way:
1. begin
2. get num1
3. get num2
4. set sum num1 + num2
5. display sum
6. end
COMP 151 - Introduction to Algorithms 31
Exercises
Write the pseudocode and draw the
flowchart to find and display the
following:
1.The difference of two numbers.
2.Both the sum and difference of two
numbers.
3.To read the first and last names and display
a greeting, such as Hello Ahmed Al-
Rashdi
COMP 151 - Introduction to Algorithms 32
COMP 151 Introduction to Algorithms 17
The Selection Structure
Decision (Selection)
Instructions are written based on some conditions. If the particular condition or conditions are satisfied then the program flow is in one route. Otherwise, it follows another route. ie, based on conditions the selection of program flow is jumped into some ways.
COMP 151 - Introduction to Algorithms 33
The Selection Structure
This structure is also known as if-else structure
Example:If A > B then
print A
else
print B
endif
COMP 151 - Introduction to
Recommended