210 likes | 508 Vues
Algorithms II. Problem Solving and Pseudocode. Methods of Problem Solving. Decode this sentence: Pdeo eo pda yknnayp wjosan. Problem Solving. Now that we know what algorithms are, we are going to try some problem solving and write algorithms for the problems.
E N D
Algorithms II Problem Solving and Pseudocode
Methods of Problem Solving • Decode this sentence: Pdeo eo pda yknnayp wjosan.
Problem Solving • Now that we know what algorithms are, we are going to try some problem solving and write algorithms for the problems. • We’ll start with step-by-step instructions that solve a particular problem and then write a generic algorithm that will solve any problem of that type.
Someone stole a cookie from the cookie jar • Momma had just filled the cookie jar when the three children went to bed. That night one child woke up, ate half the cookies and went back to bed. Later the second child woke up, ate half the remaining cookies, and went back to bed. Still later the third child woke up, ate half the remaining cookies, leaving 3 cookies in the jar. How many cookies were in the jar to begin with?
Solve the Problem • 3 cookies left X 2 = 6 cookies left after 2nd child • 6 X 2 = 12 cookies left after 1st child • 12 X 2 = 24 = original number of cookies
A Generic Algorithm • What’s a generic algorithm for this problem? An algorithm that will work with any number of remaining cookies AND that will work with any number of children
Generic Algorithm for Cookie Problem • Get number of children as input from the user. • Get number of remaining cookies as input from the user. • While there are still children that have not raided the cookie jar, multiply the number of cookies by 2 and reduce the number of children by 1. • Print the original number of cookies.
Pseudocode • When we broke down the previous problem into steps, we expressed each step as an English phrase. • We can think of this as writing pseudocode for the problem. • Typically, pseudocode is a combination of English phrases and formulas. • If we know the programming language that we’ll be using, it can also include code fragments.
Brian’s Shopping Trip • Brian bought a belt for $9 and a shirt that cost 4 times as much as the belt. He then had $10. How much money did Brian have before he bought the belt and shirt?
Brian’s Shopping Trip • First we solve the problem to help us identify the steps. 9 + 4 X 9 = START$ -10 9 + 36 = START$ - 10 45 = START$ -10 55 = START$
Generic Algorithm • Now, we’ll make a generic algorithm to solve any problem of this type. • Instead of using actual amounts or a description of items, we’ll use variable names.
Brian’s Clothing Purchases • Brian’s belt cost $9. We’ll call this item1. • Brian’s shirt cost 4 times item1. So, we’ll call 4 the multiplier . • Brian’s shirt will be called item2. It can be calculated by item2 = multiplier X item1. • Since Brian had $10 left over, we’ll call that amountLeft.
Brian’s Clothing Purchases Cont. • Brian started with start dollars. • item1 + item2 = start - amountLeft • start = item1 + item 2 + amountLeft
Pseudocode for Brian’s Clothing Problem Algorithm • Get price of item1 from user • Get multiplier from user • Get amountLeft from user • Calculate item2 (item2 = multiplier X item1) • Calculate start (start = item1 + item2 + amountLeft) • Print “The starting amount = ” start
Uses of Pseudocode • Used in designing algorithms. • Used in communicating to users. • Used in implementing algorithms as programs. • Used in debugging logic errors in programs.
Uses of Pseudocode Cont. • Must have a limited vocabulary. • Must be easy to learn. • Must produce simple, English-like narrative notation.
Control Structures • Sequence • Selection • Repetition
Sequence • Series of steps or statements that are executed in the order they are written. • Example:Get num1 from user Get num2 from user sum = num1 + num2 Print “sum = “ sum
Selection • Defines one or two courses of action depending on the evaluation of a condition. • A condition is an expression that is either true or false. • Example:if condition (is true) do this else do that end_if
Repetition • Many times there will be a group of statements that should be repeated. • These statements will make up what is known as the body of a loop. • Example: while condition (is true) loop-body end_while
Pseudocode for Cookie Problem • Get number of children as input from the user, numChild. • Get number of remaining cookies as input from the user, cookiesLeft. • while (numChild > 0 ) cookiesLeft = cookiesLeft X 2 numChild = numChild - 1 • Print “Original number of cookies =” cookiesLeft