PROBLEM SOLVING What should I wear today? Which sport should I do? Which cell phone is best for me?...
-
date post
15-Jan-2016 -
Category
Documents
-
view
216 -
download
0
Transcript of PROBLEM SOLVING What should I wear today? Which sport should I do? Which cell phone is best for me?...
PROBLEM SOLVING
• What should I wear today?• Which sport should I do?• Which cell phone is best for me?• Which team is probably the winner?• Will Euro be raised in the next month?• …
There are lots of problems in our daily life
What should I wear today?• Look outside the window• If it is cold
• Wear sweatshirt and a coat• Else, wear a shirt or t-shirt
• If it is raining• Take an umbrella
Many real world problems can be solved with a definite solution method.
Programming is, first and foremost, a problem solving activity
The mathematician George Polya, an authority on problem solving, hasdivided problem solving into a four step activity
1. Understanding the problem:• What data goes in? What will the result be? who knows about this problem?
The problem should be expressed clearly.2. Devising a plan:
• A paper exercise. Once the problem is understood you must devise the plan of action to solve the problem. The inputs, outputs must be determined and the solution method should be demonstrated by flow diagrams.
3. Implement the plan:• How do I code and implement my plan ?
4. Evaluating:• Has the problem been solved – can you demonstrate this?
PROBLEM SOLVING
Sample problem: Pizza Dough Recipe (1 dough ball)
1. Gather Ingredients
2. Combine sugar (1tbs), salt (1tbs), olive oil (1tbs), flour (1cup) in mixing bowl
3. Turn on mixer
4. Add 1/4 cup of flour
5. If dough comes off the sides go to step 6, otherwise go back to step 4
6. Knead 15 minutes
7. Let rest for at least 45 minutes in warm area
tbs: table spoon
1. Gather Ingredients
2. Combine sugar (N tbs), salt (N tbs), olive oil (N tbs), flour (N cups) in mixing bowl
3. Turn on mixer
4. Add N/4 cup of flour
5. If dough comes off the sides go to step 6, otherwise go back to step 4
6. Knead 15 minutes
7. Let rest for at least 45 minutes in warm area
Sample problem: Pizza Dough Recipe (N dough ball)
1. Gather Ingredients
2. Combine sugar (N tbs), salt (N tbs), olive oil (N tbs), flour (N cups) in mixing bowl
3. Turn on mixer
4. Add N/4 cup of flour
5. If dough comes off the sides go to step 6, otherwise go back to step 4
6. Knead 15 minutes
7. Let rest for at least 45 minutes in warm area
PIZZA DOUGH ALGORITHM
Sequence of Statements
1. Gather Ingredients
2. Combine sugar (N tbs), salt (N tbs), olive oil (N tbs), flour (N cups) in mixing bowl
3. Turn on mixer
4. Add N/4 cup of flour
5. If dough comes off the sides go to step 6, otherwise go back to step 4
6. Knead 15 minutes
7. Let rest for at least 45 minutes in warm area
PIZZA DOUGH ALGORITHM
N: variable
Conditional
1. Gather Ingredients
2. Combine sugar (N tbs), salt (N tbs), olive oil (N tbs), flour (N cups) in mixing bowl
3. Turn on mixer
4. Add N/4 cup of flour
5. If dough comes off the sides go to step 6, otherwise go back to step 4
6. Knead 15 minutes
7. Let rest for at least 45 minutes in warm area
PIZZA DOUGH ALGORITHM
Sub routinesmini algorithms
ALGORITHM
• An algorithm is set of steps for carrying out a task that can be written down and implemented
• An algorithm includes the steps you take to solve a problem manually
• An algorithm specifies how to manipulate information
• A finite set of unambiguous instructions performed in a prescribed sequence to achieve a goal
Al-Khwarizmi was a Persian mathematician who wrote a book on calculating with Hindu numerals in the 9th century CE. When translated to Latin, a pluralized form of his name (algorismus) became synonymous with a system of calculation.
REPRESENTING of ALGORITHMS
Flow diagrams
• An algorithm can be schematically expressed by flow diagrams. • Flow diagram shows components of a program and relation between these components.• Flow diagrams displays an algorithm by boxes and arrows.
Basic flow diagram symbols:
Ellipse Shows start and finish of an algorithm.
Parallelogram Shows data input or output
Rectangle Shows any process, function or action to do.(i.e. Arithmetic operations and value assignments )
Rhomb Shows a decision according to a condition
Arrows Shows connection and direction between symbols
1. Gather Ingredients
2. Combine sugar (N tbs), salt (N tbs), olive oil (N tbs), flour (N cups) in mixing bowl
3. Turn on mixer
4. Add N/4 cup of flour
5. If dough comes off the sides go to step 6, otherwise go back to step 4
6. Knead 15 minutes
7. Let rest for at least 45 minutes in warm area
PIZZA DOUGH ALGORITHM
FINISH
START
N=?
Gather Ingredients
Turn on mixer
Combine sugar (N tbs)…
Add N/4 cup of flour
dough comes off the sides?
Knead 15 minutes
Let rest for at least 45 minutes in warm area
Yes
Algorithms
Variables, value assignment and variable operations
• A variable can be a number, a letter or a word.• The value of a variable can be changed anytime.• Variable values can be determined
• Before being used• By user input, • While the program running, by calculation.
X=5 ; variable X created and X is equal to 5Y=X ; variable Y created and Y is equal to 5X=6 ; X is changed from 5 to 6 (Y is still 5)X=X+Y ;X becomes 11Y=Y+1 ; (or Y++), Y is incremented by one, Y=6X-- ; X is decremented by one, X=10Z=X+Y ; variable Z created and its value is 16T=T+Z ; There is a mistake here, the value of T can not be known.
Example:
Example: Define two number variables, increment one of them, add them and exit.
STARTX=10,Y=20X++Z=X+Y
FINISH
START
X=4, Y=8
Z=X+Y
FINISH
X++
X Y Z
4 8
5 8
5 8 13
Variable analyze:
Pseudo Code:
Flow Diagram:
Algorithms
User input and screen output
• A program can be thought as a closed box:• The user of a program can not see the variables freely. • The user can not change the flow of a program whenever he wants.
• But, a program can interactively communicate with the user.• User can input data when asked • The program outputs any data to the user.
Algorithms
User input and screen output
• Algorithm can ask for user input when needed
N=?
• Algorithm can output the value of a variable in order to infoem the user
PRINT Z
INPUT N
PRINT Z
User enters a number and N is assigned to that value
User see the value of Z on the screen
Algorithms
User input and screen output
Example: Write an algorithm that inputs two numbers, multiplies them and outputs the result
START
FINISH
Z=X*Y
X=?, Y=?
PRINT Z
START:INPUT X,YZ=X*YPRINT Z
FINISH
Algorithms
Control operations and Conditionals
• Control operations allow us to alter the normal sequential flow of control in an algorithm.
• A control operation has two output, true or false
• A control operation always have a condition to make a decision.
X>Y truefalse
Condition to control
……
Do this if condition is false (if X≤Y) Do this if condition is true (if X>Y)
Some condition statements:
X>Y ;true if X is greater than Y, X==Y ;true if X is equal to YX<=Y+Z ;true if X is smaller than or equal to Y+ZX%2==0 ;true if X mod 2 is equal to 0 (if X is an even number)
X>Y && X<Z ; true if X is smaller than Z and greater than Y
X>6 || X%4==1 ; true if X is greater than 6 or X mod 4 is equal to 1 (X can be 1,5, 6, 7,..)
Algorithms
Control operations and Conditionals
X is even number and smaller than Y : X%2==0 && X<Y
X is a digit : X>=0 && x<10
X is not between 10 and 15 : X<=10 || X>=15
Algorithms
Control operations and Conditionals
Example: Write an algorithm that inputs two numbers and prints the bigger one
START
FINISH
X=?, Y=?
PRINT X
X>Y true
PRINT Y
START:INPUT X,YIF X>Y
PRINT XELSE
PRINT YFINISH
Algorithms
Loops and Iterative structures
• Sometimes, a part of an algorithm needs to be repeated more than once• Loops enables us to repeat a process until specified condition is satisfied
Condition Holds
Instructions.
True
InstructionsLoop Structure
Algorithms
Loops and Iterative structures
WHILE Loop
BEGINX=0WHILE(X<10)
X=X+1PRINT X
FINISH? …
true
• The instructions under While statement are repeated while the condition holds.• While loop first controls the condition, then executes the instructions according to the control
statemet.• For example the algorithm below will print the value of X as 10.
This operation is done while X<10
Algorithms
Loops and Iterative structures
Do-while Loop
BEGINX=10DO
X=X+1WHILE(X<10)PRINT X
FINISH
• The instructions between Do and While statement are repeated while the condition holds.• Do-While loop first executes the instructions and then controls the condition. If the condition
holds, repeats the statement• For example the algorithm above will print the value of X as 11.
This operation is repeated until X<10?
Statement
true
Algorithms
Loops and Iterative structures
Example: Write an algorithm that calculates the sum of first N counting numbers (N is an input from user) and outputs the result (use while loop)
START
FINISH
N=?
S<=N
S=1 T=0
T=T+SPRINT T
S=S+1
true
STARTS=1T=0INPUT NWHILE (S<=N)
T=T+SS=S+1
PRINT TFINISH
While loop
Algorithms
Loops and Iterative structures
Example: Write an algorithm that calculates the sum of first N counting numbers (N is an input from user) and outputs the result (use do-while loop).
START
FINISH
N=?
S<=N
S=0 T=0
T=T+S
PRINT T
S=S+1
true
STARTS=0T=0INPUT NDO
T=T+SS=S+1
WHILE (S<=N)PRINT T
FINISH
Do-while loop
Algorithms
Nested structures (while-if)
Example: Write an algorithm that continuously inputs a number from the user and counts the number of odd numbers entered . Algorithm prints the count value and exits if the user enters 0.
START
X=?
S=0
X%2==1
S++
X>0true
true
FINISH
PRINT S
Do-while loop
If structure
STARTS=0DO
INPUT XIF(X%2==1)
S++WHILE (X>0)PRINT S
FINISH
Algorithms
Nested structures (if-if)
Example: Write an algorithm that inputs three numbers, then prints the biggest one.
START
X=? Y=? Z=?
X>Y
X>Z
PRINT X PRINT Z
Y>Z
PRINT Y PRINT Z
FINISH
true
true true
STARTINPUT X,Y,ZIF (X>Y)
IF(X>Z)PRINT X
ELSEPRINT Z
ELSEIF(Y>Z)
PRINT YELSE
PRINT ZFINISH