Algorithm Design CS 105 Problem Solving Algorithm set
Algorithm Design CS 105
Problem Solving • Algorithm: set of unambiguous instructions to solve a problem – Breaking down a problem into a set of subproblems – Example: Clean the house • Without instructions – computers cannot do anything at all!
Algorithm design 1. Analysis and specification - Analyze: Understand/define the problem Specify: Specify particulars - Develop: Logical sequence of steps Test: Follow outline, test cases - Code: The steps into a programming language Test: Debug - Use the program Maintain: Correct errors, meet changing requirements 2. Algorithm development phase 3. Implementation phase 4. Maintenance phase
An example: Making a perfect piece of toast Variables What do we need: a loaf of bread, knife, toaster, plate, butter, cutting board Version 1 1. Move a loaf of bread on a cutting board 2. Cut a slice of bread with a knife 3. Move the slice of bread to the toaster 4. Turn toaster on 5. Wait for the toaster to finish 6. Move the toasted bread on a plate 7. Spread butter on the toast with knife Output
An example: Making a perfect piece of toast Variables: A= loaf of bread K= knife T= toaster P= plate B= butter CB= cutting board S= slice of bread Version 2 1. move A to CB 2. cut S with K 3. move S to T 4. turn on T 5. wait for T 6. move S to P 7. spread B on S with K
An example: Making toast for fussy friends: plain, butter, margarine Variables: A= loaf of bread K= knife T= toaster P= plate B= butter M= margarine F= friend CB= cutting board S= slice of bread X Version 3 Move A to CB FOR every F eating toast { Cut S with K Move S to T Turn on T Wait for T Move S to P IF F likes B { X=B } ELSE IF F likes M { X=M } ELSE { X= NOTHING } Spread X on S with K }
Basic concepts • Example contains concepts used in most algorithms • Instructions – simple and unambiguous • Variables – input and temporary • Subprocedures – smaller tasks • Looping: FOR each variable, WHILE – Act of repeating tasks • Conditional statements: IF ELSE – Selectively execute instructions
Pseudocode: Flowchart • Flowchart: diagram that represents an algorithm • Symbols: START , END INSTRUCTIONS CONDITIONALS LOOPS, FLOW OF CONTROL
Pseudocode: Flowchart Fixing non functioning lamp algorithm
Flowchart: Making toast for friends Start Variables: A= loaf of bread K= knife T= toaster P= plate B= butter M= margarine F= friend CB= cutting board S= slice of bread X Yes Done ? Move A to CB End No Cut S with K Move S to T Turn on T Wait for T Spread X on S with K Move S to P Set X to B Yes Want B? No No Want M? Yes Set X to M Set X to NONE
Add 30 to X Start Subtract 15 from X Yes Is X > 100? No Multiply X by 3 End Is X < 80? Yes Print X Yes No Divide X by 2 Is X an integer ? No Round it to the nearest integer
Add 30 to X IF ( x>100) { Subtract 15 from X } ELSE { Multiply X by 3 } IF ( x<80) { PRINT X } ELSE { Divide X by 2 IF ( X is an integer) { PRINT X } ELSE { Round X to the nearest integer PRINT X } } 1. 2. 3. 4. 5. Add 30 to X IF X >100, subtract 15 ELSE multiply X by 3 IF X<80, PRINT X END ELSE Divide by 2 1. IF X is an integer, PRINT X END 2. ELSE round X, then PRINT X END
- Slides: 12