the logical structure of algorithms l.
Skip this Video
Loading SlideShow in 5 Seconds..
The Logical Structure of Algorithms PowerPoint Presentation
Download Presentation
The Logical Structure of Algorithms

Loading in 2 Seconds...

play fullscreen
1 / 37

The Logical Structure of Algorithms - PowerPoint PPT Presentation

  • Uploaded on

The Logical Structure of Algorithms Algorithms Steps necessary to complete a task or solve a problem. Example: Recipe for baking a cake Will contain a list of ingredients Step-by-step instructions on what to do with those ingredients A recipe provides an algorithm for baking a cake.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

The Logical Structure of Algorithms

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
  • Steps necessary to complete a task or solve a problem.
  • Example: Recipe for baking a cake
    • Will contain a list of ingredients
    • Step-by-step instructions on what to do with those ingredients
    • A recipe provides an algorithm for baking a cake.
other algorithms
Other algorithms
  • When you learned the process for doing long division you learned an algorithm.
  • The Holtrop and Mennen Algorithm, used by naval architects to design the optimum propellers for a ship, contains thousands of steps.
algorithms are sequential
Algorithms are sequential
  • Usually we can think of the instructions in an algorithm as being executed one at a time.
  • They form what is sometimes called a sequential logic.
  • This is only part of the story, however…
  • As a software developer you need to be able to design, manipulate, and implement sequential algorithms
common patterns
Common patterns
  • There are a small set of patterns that exist in the design of sequential logic.
  • These patterns fall into categories that form the elements of logical structure.
  • They can be combined in myriad ways to form the logical structure of algorithms.
  • A software developer familiar with the design patterns of logical structure can more easily create and modify software.
  • In the design of the plumbing for a new building, architects have a selection of parts from which to build the system.
    • T-joints
    • Elbow joints
    • Many kinds of valves
    • Etc.
  • Architects need to know how the individual parts work.
  • And how they fit together.
elements of logical structure
Elements of logical structure
  • There are only a handful of basic elements that a software developer need learn.
  • In the 1960s Bohm and Jacopinini showed that algorithms are composed of three major structures:
    • Linear sequences
    • Branching routines
    • Loops
  • Modern computer programming focuses on these three elements of logical structure.
  • Bohm and Jacopini were not the first to use flowcharts but they were the first to formalize the process.
  • They used a simple system, two symbols
    • Rectangles to show each step in an algorithm
    • Diamond-shaped boxes to show a decision step or condititional.
  • We will use one additional symbol, an oval, to mark the beginning and end of an algorithm.
  • There should be only one terminator at the beginning of an algorithm and one at the end.
  • Each algorithm should have one entry point (beginning) and one exit point (end).
linear sequences
Linear sequences
  • The simplest element of logical structure is a linear sequence.
  • One instruction follows another in a straight line.
  • No branching
  • No looping
linear sequences15
Linear Sequences
  • Deceptively simple
  • Must meet the following criteria:
    • Entry and exit conditions need to be clear:
      • What conditions need to exist before the sequence starts?
      • What can we expect the situation to be when the sequence is finished?
    • Must be complete; don’t leave out necessary steps.
    • Steps must be in proper order
    • Each individual instruction must be correct; if one step is wrong, the entire algorithm is wrong.
  • Example: driving directions”
    • What if you leave out a turn?
    • What if you say to turn left, when you should have said right?
in short
In short
  • Linear sequences must…
    • Have clearly stated entry and exit conditions
    • Be complete
    • Be organized in the proper order
selection sequences
Selection Sequences
  • Sometimes an algorithm reaches a point where the sequence of steps can go one direction or another (a fork in the road).
  • This is called a selection sequence.
  • Also called a conditional or branching routine
selection sequences18
Selection Sequences

Consider a student who has a chemistry lab at 2pm on Fridays only:


If (Today is Friday)

Then (Get to lab by 2pm)

in summary
In Summary
  • Selection sequence occurs whenever the path of sequential logic (steps) in an algorithm splits into two or more paths.
  • Each path is called a branch.
binary and multiple branching
Binary and Multiple Branching
  • If there are two possible paths, then the routine is known as binary branching.
  • If there are more than two paths, multiple branching.
  • Binary branching: “Would you like vanilla ice cream?”
  • Multiple branching: “What flavor of ice cream would you like?”
writing multiple as binary
Writing multiple as binary
  • It is possible to write a multiple branching routine as a collection of binary branching routines.
  • Instead of “What flavor of ice cream would you like?” we can ask:
    • “Would you like vanilla ice cream?”
    • “Would you like chocolate ice cream?”
    • “Would you like strawberry ice cream?”
    • …for all 28 flavors.
writing multiple as binary23
Writing multiple as binary
  • Alice does not have an instruction for multiple branching.
  • Most programming languages do not.
  • We write all selection sequences as collections of binary branching routines.
binary bypass vs binary choice
Binary Bypass vs. Binary Choice
  • Two kinds of binary branching:
    • Binary bypass
    • Binary choice
  • In binary bypass, an instruction is either executed or bypassed.
  • In binary choice, one of two instructions is chosen.
binary choice vs binary bypass
Binary Choice vs. Binary Bypass
  • The difference is subtle but significant.
  • In binary bypass, it is possible that nothing will occur.
  • In binary choice, one of the two instructions, but not both will occur.
  • Sometimes we use more formal language to describe algorithms - pseudocode.
  • It looks something like the code in a computer programming language.
  • But it’s only a tool to help understand algorithms.
if then else
  • In pseudocode, a binary bypass is equivalent to an If/Then instruction:

If (today is Friday)

Then (get to chemistry lab by 2pm)

  • A binary choice is equivalent to an If/Then/Else instruction:

If (Today is Monday, or today is Wednesday, or today is Friday)

Then (go to math class)

Else (go to history class)

if then else32
  • Basic form:

If (condition)

Then (one or more instructions)

Else (one or more instructions)

  • Must have a condition
  • Any number of instructions can be executed along either branch.
repetition sequences looping
Repetition Sequences - Looping
  • A repetition sequence forms a loop in an algorithm.
  • It forms a branch backward to a previous instruction
  • A part of the algorithm is then repeated.
explaining the pseudocode
Explaining the pseudocode
  • In this algorithm, the word While is used for looping instead of the word If that was used for branching.
  • This tells the computer to loop back to the conditional expression when the block of code following the While is finished.
  • Each time the condition is true the computer will execute the block of code
  • When it is no longer true the block of code will be bypassed and the computer will move on to whatever comes next in the algorithm.
control variables
Control Variables
  • A variable holds a value that can change.
  • This loop has a control variable as its condition.
  • A control variable is a variable whose value controls whether or not a selection sequence will be executed.