The logical structure of algorithms
Download
1 / 37

The Logical Structure of Algorithms - PowerPoint PPT Presentation


  • 874 Views
  • Updated 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.

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

PowerPoint Slideshow about 'The Logical Structure of Algorithms' - JasminFlorian


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

Algorithms l.jpg
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.


Other algorithms l.jpg
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 l.jpg
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 l.jpg
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.



Plumbers7 l.jpg
Plumbers

  • 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 l.jpg
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.



Flowcharts10 l.jpg
Flowcharts

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



Terminators l.jpg
Terminators

  • 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 l.jpg
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 l.jpg
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 l.jpg
In short

  • Linear sequences must…

    • Have clearly stated entry and exit conditions

    • Be complete

    • Be organized in the proper order


Selection sequences l.jpg
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 l.jpg
Selection Sequences

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

Start

If (Today is Friday)

Then (Get to lab by 2pm)



In summary l.jpg
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 l.jpg
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 l.jpg
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 l.jpg
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 l.jpg
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 l.jpg
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.




Pseudocode l.jpg
Pseudocode

  • 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 l.jpg
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 l.jpg
If/Then/Else

  • 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 l.jpg
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 l.jpg
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 l.jpg
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.


ad