Chapter 6 Algorithmic Problem Solving Chapter 6: Algorithmic Problem 1
Download
Report
Transcript Chapter 6 Algorithmic Problem Solving Chapter 6: Algorithmic Problem 1
Chapter 6
Algorithmic Problem Solving
Chapter 6: Algorithmic Problem
Solving
1
Algorithm
Algorithm: a well defined computational
procedure consisting of a set of
instructions, that takes some value(s)
as input, and produces some value(s),
as output.
Al-Khowarizmi Algorismus Algorithm
Chapter 6
Algorithm
2
Algorithm
Input
Chapter 6
Algorithm
Algorithm
Output
3
Algorithm
Algorithm embeds logic of
solution.
Algorithm is converted to program.
Understanding
the problem
Writing an
algorithm
Algorithmic problem solving:
writing an algorithm -- tough
Verifying the
algorithm
translate algorithm to code -- easy
Converting to
code
Chapter 6
Algorithm
4
Software and hardware
Software: algorithms,
programs.
Hardware: computers
(CPU, disk drive,
keyboard, etc.)
ingredients
recipe
(software)
:
Cooking
utensils
(hardware)
bah kut teh
Chapter 6
Software and hardware
5
Euclidean algorithm
First documented algorithm by Euclid (300 B.C.)
to compute greatest common divisor (gcd).
Examples: gcd(3,21) = 3; gcd(15,40) = 5.
1. Let A and B be integers with A > B 0.
2. If B = 0, then the gcd is A and the algorithm ends.
3. Otherwise, find q and r such that
A = qB + r where 0 r < B
Note that we have 0 r < B < A and gcd(A,B) = gcd(B,r).
Replace A by B, B by r. Go to step 2.
Chapter 6
Euclidean algorithm
6
Euclidean algorithm
Walk through the algorithm with examples:
A = 40, B =15. A = 2B + 10 A = 15 ; B = 10
A = 1B + 5
A = 2B + 0
gcd is 5
A = 10 ; B = 5
A=5;B=0
1. Let A and B be integers with A > B 0.
2. If B = 0, then the gcd is A and the algorithm ends.
3. Otherwise, find q and r such that
A = qB + r where 0 r < B
Note that we have 0 r < B < A and gcd(A,B) = gcd(B,r).
Replace A by B, B by r. Go to step 2.
Chapter 6
Euclidean algorithm
7
Data types and structures
Data types: integer, real number, character,
Boolean, pointer, etc. Examples: 32, 0.0264,
'a', true.
Data structures: arrays, records, files, etc.
Program = Algorithm + Data Structures
Data are stored in variables in a program.
Variables take up memory space in the
computer.
Chapter 6
Data types and structures
8
A C program
A sample C program
/* A simple C program to read a number & compute and display
its square by using the multiplication (*) operator. */
#include <stdio.h>
main ()
/* a C program always has a main function */
{
int n;
/* this declares an integer variable 'n' */
printf ("\nEnter the number to be squared: ");
scanf ("%d", &n);
printf ("Using the * operator, the square of %d is %d.\n\n",
n, n*n);
}
Chapter 6
A C program
9
Characteristics of an algorithm
Each step must be exact.
Must terminate.
Must be effective.
Must be general.
Chapter 6
Characteristics of an algorithm
10
Pseudo-code
How to represent an algorithm?
Pseudo-code
Flowchart
Pseudo-code: a combination of English text,
mathematical notations, and keywords from
the programming language.
Chapter 6
Pseudo-code
11
Pseudo-code
To find average, min and max among a list.
First, you initialise sum to zero, min to a very big number, and max to a very
small number.
Then, you enter the numbers, one by one.
For each number that you have entered, assign it to num and add it to the
sum.
At the same time, you compare num with min, if num is smaller than min, let
min be num instead.
Similarly, you compare num with max, if num is larger than max, let max be
num instead.
After all the numbers have been entered, you divide sum by the numbers of
items entered, and let ave be this result.
End of algorithm.
Chapter 6
Pseudo-code
12
Pseudo-code
To find average, min and max among a list.
sum count 0
{ sum = sum of numbers;
count = how many numbers are entered? }
{ min to hold the smallest value
min ?
eventually }
max ?
{ max to hold the largest value eventually }
for each num entered,
increment count
sum sum + num
if num < min then min num
if num > max then max num
ave sum/count
Chapter 6
Pseudo-code
13
Flowchart
Diagrammatic form:
terminator
connector
process box
decision box
Chapter 6
Pseudo-code
14
Flowchart
To find
minimum and
maximum
among a list.
A
Yes
No
increment count
sum sum + num
start
sum count 0
min ?
max ?
end of
input?
ave
num/count
num<min?
Yes
min num
No
A
Chapter 6
end
Pseudo-code
num>max? Yes
No
max num
15
Control structures
Sequence
implied; one after another
Branching (selection)
select alternative path based on condition
(true/false)
example: if x 0 then a = b/x;
if tired then rest
else work;
Chapter 6
Control structures
16
Control structures
Loop (repetition)
bounded loop:
for x = 1 to 10 do { statements };
unbounded loop:
while (condition) do { statements };
repeat/iterate statements in loop body until
condition changes
must make sure loop terminates
Chapter 6
Control structures
17
Homework
Try exercises behind chapter 6.
Chapter 6
Homework
18