cmsc 1041 algorithms iii problem solving and pseudocode
TRANSCRIPT
CMSC 104 1
Algorithms III
Problem Solving
and
Pseudocode
CMSC 104 2
Methods of Problem Solving
Decode this sentence:
Pdeo eo pda yknnayp wjosan.
CMSC 104 3
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.
CMSC 104 4
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?
CMSC 104 5
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
CMSC 104 6
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
CMSC 104 7
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.
CMSC 104 8
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.
CMSC 104 9
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?
CMSC 104 10
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$
CMSC 104 11
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.
CMSC 104 12
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.
CMSC 104 13
Brian’s Clothing Purchases Cont.
Brian started with start dollars. item1 + item2 = start - amountLeft start = item1 + item 2 + amountLeft
CMSC 104 14
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
CMSC 104 15
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.
CMSC 104 16
Uses of Pseudocode Cont.
• Must have a limited vocabulary.• Must be easy to learn.• Must produce simple, English-like
narrative notation.
CMSC 104 17
Control Structures
• Sequence• Selection• Repetition
CMSC 104 18
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
CMSC 104 19
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
CMSC 104 20
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-bodyend_while
CMSC 104 21
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