Algorithmic Problem Solving - PowerPoint PPT Presentation

About This Presentation
Title:

Algorithmic Problem Solving

Description:

3. Otherwise, find q and r such that. A = qB r where 0 r B ... terminator. connector. process box. decision box. Chapter 6. Pseudo-code. 15. Flowchart ... – PowerPoint PPT presentation

Number of Views:19
Avg rating:3.0/5.0
Slides: 19
Provided by: cen7150
Category:

less

Transcript and Presenter's Notes

Title: Algorithmic Problem Solving


1
Chapter 6
  • Algorithmic Problem Solving

2
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
3
Algorithm
4
Algorithm
  • Algorithm embeds logic of solution.
  • Algorithm is converted to program.
  • Algorithmic problem solving
  • writing an algorithm -- tough
  • translate algorithm to code -- easy

5
Software and hardware
  • Software algorithms, programs.
  • Hardware computers (CPU, disk drive, keyboard,
    etc.)

6
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 gt 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 lt B Note that we have 0 ? r lt
B lt A and gcd(A,B) gcd(B,r). Replace A by B, B
by r. Go to step 2.
7
Euclidean algorithm
  • Walk through the algorithm with examples A 40,
    B 15.

A 2B 10 ? A 15 B 10 A 1B 5 ?
A 10 B 5 A 2B 0 ? A 5 B 0
gcd is 5
1. Let A and B be integers with A gt 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 lt B Note that we have 0 ? r lt
B lt A and gcd(A,B) gcd(B,r). Replace A by B, B
by r. Go to step 2.
8
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.

9
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 ltstdio.hgt
  • 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, nn)

10
Characteristics of an algorithm
  • Each step must be exact.
  • Must terminate.
  • Must be effective.
  • Must be general.

11
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.

12
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.
13
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 ?
? min to hold the smallest value eventually
max ? ? max to hold the largest value
eventually for each num entered, increment
count sum ? sum num if num lt min then min ?
num if num gt max then max ? num ave ? sum/count
14
Flowchart
  • Diagrammatic form
  • terminator
  • connector
  • process box
  • decision box

15
Flowchart
  • To find minimum and maximum among a list.

16
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

17
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

18
Homework
  • Try exercises behind chapter 6.
Write a Comment
User Comments (0)
About PowerShow.com