1 / 17

Algorithms III

Learn how to break down complex problems, write algorithms, and create structured programs using top-down design. Discover the stepwise refinement approach for easier problem solving.

bharsh
Download Presentation

Algorithms III

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algorithms III Top-Down Design

  2. Pseudocode and Then Some • We can write an algorithm for finding the average of two integers: Get an integer, num1, from the user Get an integer, num2, from the user sum = num1 + num2 average = sum / 2 Print “The average of “ num1 “ and ” num2 “ is ” average. • Steps 1, 2 & 5 will make use of code found in the run-time library.

  3. Investigating Steps 1 & 5 Get an integer, num1, from the user Print “The average = “ average. • Are these really single steps? • Each of them is really a sequence of steps, a subprogram. Two kinds of subprograms: • Functions - an answer is returned to the main program. • Procedures - no answer returned to the main program

  4. Functions and Procedures • In our example, the function that gets a value from the user and the procedure that prints out the answer were already written. • Many times it is necessary for us to write our own procedures or functions.

  5. More Problem Solving • If we look at the problem as a whole; it may seem impossible, because it is so complex. • Complex problems can be solved using a Top-Down approach aka Stepwise refinement • Break the problem into parts • Then break the parts into parts • Soon each of the parts will be easy to do

  6. Advantages of Top-down Design • Breaking the problem down into parts helps us to clarify what needs to be done. • At each step of refinement, the new parts become less complicated and therefore easier to figure out. • What if you’ve broken a problem down as much as you can and you still don’t know? • Missing information • More detail is needed

  7. A Practical Example • Scenario: • We own a home improvement company • We do painting, roofing and basement waterproofing • A section of town has recently had flooding • We want to send out waterproofing pamphlets to our customers in that area

  8. Our Algorithm • Get the customer list from a file • Sort the list according to zipcode • Make a new file of only the customers with the zipcode 21222 from the sorted customer list • Print an envelope for each customer in the new file

  9. Single steps ? • None of our steps are single steps • Employ Top-Down Design • Start with the large idea and break into large parts • Each part will end up being a function or a procedure

  10. Pseudocode for our Main Program • Call Get Customer List • Call Sort on customer list by zipcode • Call Make Target List from customer list using only zipcode 21222 • Call Print Envelopes using target list

  11. The Next Step • Write algorithms for each of the functions or procedures. • These may include steps that are really several steps, too. • Give names to these new functions and procedures. • Write algorithms for them. • Continue this process until done.

  12. Structured Programs • Top-down design will be used for all of our programming projects • This is the standard way of writing programs. • Programs produced using this method and using only the 3 kinds of structures, sequential, selection and repetition are called structured programs. • Structured programs are easier to modify later and also easier for other programmers to understand.

  13. Another Example • Problem: Write a program that draws this picture of a house.

  14. The Algorithm • Draw the outline of the house • Draw the chimney • Draw the door and doorknob • Draw the windows

  15. Similarities • All three windows are identical. • They are simply in different positions. • We can write a function called DrawWindow that will draw one window at a position we specify and call it 3 times with the three different positions. • Another benefit of Top-down design is reuseability. We are reusing the code for DrawWindow.

  16. The Pseudocode • Call DrawHouseOutline giving a position • Call DrawChimney giving position • Call DrawDoor giving position • Call DrawWindow giving position #1 • Call DrawWindow giving position #2 • Call DrawWindow giving position #3

  17. Problem Solving Techniques • We have investigated three problem solving techniques: • Multiple attacks • Working backwards • Top-down design

More Related