Chapter 5

advertisement
Repetition Structures
Chapter 5
5-1
Chapter 5 Objectives



The Loop Instruction
The While Instruction
Nested Loops
5-2
The Loop Instruction

Simple control structure allows
o
o
Instruction (or block of instructions) to be repeated
multiple times
Repeated fixed amount of times

A whole number
Flowcharting a Loop Instruction
Set index to 0
T
Index < 12?
Clock, minute roll
left 1 revolution
Clock, hour roll
left 1/12th
revolution
Add 1 to index
F
5-4
5.1
5.1
The Loop Instruction
Simplifies to:
5-5
5.1
Using Loop Instruction
 Drag Loop instruction
from bottom of
Method Editor
 It prompts you for
amount of times to
loop
 Creates empty slot
where instructions can
be placed
5-6
5.1
Computing Number of Times to Repeat
 What if you want something to loop and NOT have to
specify a particular number of repetitions?
o
o
o
o
Example: getting a ball to roll across into a goal regardless of
where the ball is initially placed
Use the soccerBall’s distance to function to calculate distance
to goal
Loop uses truncation: decimal portions of numbers are
discarded
Examples: objects loop 4 times not 4.8 or 3 times not 3.4
5-7
Loops Controlled by Variable



Ask user for
amount of times a
lion should roar
Place value in
variable
Loop the amount of
times user entered
5-8
Loop With Function Call
 Loop count can be computed by calling a
function that returns a number value
 Loop instruction automatically rounds
returned value down to whole number
5.1
Infinite Loops
 The loop that never stops
o
Use for objects that shouldn’t stop
 If placed in consecutive order…the next
instructions will NEVER occur, since the loop
NEVER ends!
 Place an infinite loop into a Do Together
structure with other items.
5-10
Infinite Loop Background Example
 Infinite loops
are good for
moving objects
in background
 This example
simulates
moving water
by changing
texture of
water
 Called from
main method
5-11
Infinite Loop Continual Motion
•
Helicopter
blades are
turning while
helicopter
rescues diver
5-12
Checkpoint




What type of structure is the Loop instruction?
What are three different types of loops?
What are different ways you can use a finite non
fixed loop?
What is an infinite loop?
5-13
5.2
The While Instruction
 Combines Loop and If/else statements
 Is a loop that repeats as long as its Boolean
condition is true
 Called conditional loop since loop is controlled by a
condition
 Also called pretest loop since test has to pass
before it does the instructions in loop
o
Otherwise it skips those instructions
5-14
5.2
While Instruction Flowchart

Loop’s condition is
tested before each
repetition of loop
o
o
If true it performs
a repetition and
starts over
If false the loop
terminates
5-15
Tennis Racket Example
 Tennis racket
is rotated 0.06
revolutions
until it is next
to the ball
 Ball then
moves forward
looking like it
was hit
 Uses
 Function call
 Relational
operation
5-16
5.2
Tennis Racket Flowchart
Start

Test loop’s condition:
is racket behind ball?
o
Racket Distance
Behind
ball > 0?
Racket turns
forward 0.06
revolution
o
Yes? Turn racket
forward 0.06
revolutions
No? Simulate racket
hitting ball by moving
forward 5 meters
Ball moves
forward 5 meters
End
5-17
Inserting While Statement

Drag While tile up to Method Editor

Choose True or False as placeholder from popup menu
5-18
Vanishing Cookie Example


Magician says
Abracadabra
In While loop
o
Cookie reduces in
opacity by 10% until
opacity is 0% or
cookie disappears
 Uses
o
o
o
Opacity property
Relational operation
Uses math to change
while condition
5-19
Shrinking Alice Example



In Alice in
Wonderland, Alice
drinks something
which causes her
to shrink which
allows her to go
thru a small door
While loop is used
to constantly shrink
her by half until
she is smaller than
door
Uses
o
o
Two function calls
Relational operation
5-20
Rescue Scuba Diver Example



Helicopter moves to
scuba diver
With While loop
Helicopter descends to
diver ½ meter at time
until 1 meter above
diver
Notice style is abruptly
o

To prevent jerky
movement
Ladder is lowered to
diver
5-21
Shark Chases Fish Example
 Common feature in popular "action films" is exciting
chase scene
 Hungry shark chases after and catches a fleeing fish
Shark Chases Fish Problem

How do we get shark to chase goldfish in a
chase-like action?
o
Shark should not immediately catch goldfish

o
Otherwise there would be no chase
Goldfish should appear to be fleeing
Shark Chases Fish Solution

To create a chase scene
o
o
o
o
Shark will swim short distance toward fish
At same time fish will swim short distance away
from shark
Fish will flee to a random location
As long as goldfish is 0.5 meter away from shark,
repeat above actions
Stepwise Refinement

Process of breaking problem into smaller tasks
o

Then break each task into simpler steps
Once storyboard completed write method for each
task
Storyboard: Shark Chases Fish
chase
While the goldfish is more than 0.5 meters away
from the shark
Do in order
shark point at the goldfish
Do together
shark swim (toward the goldfish)
goldfish flee (away from the shark)
shark eat (the goldfish)

shark swim, goldfish flee, and shark eat actions are complex

Use stepwise refinement to break them down into simple steps
Chase Storyboards
chase
While the goldfish is more than 0.5 meters from the shark
Do in order
Point the shark at the goldfish
Do together
shark swim
goldfish flee
shark eat (goldfish)
swim
flee
Do in order
turn torso left and move forward
turn torso right and move forward
turn torso left and move forward
Do together
wiggle tail
move to random location
eat
Parameter: what
Do in order
shark points at what
shark opens jaw and what disappears
shark closes jaw
Checkpoint



Why is the While instruction considered a
conditional loop?
What causes the While loop to stop repeating?
Why is the While loop called a pretest loop?
5-28
Nested Loops

A nested loop is a loop that is inside of another loop
The inner loop goes through all its iterations for every
single iteration of the outer loop

How many times does bee pace or move forward?

5-29
Ferris Wheel Example


Whole Ferris wheel will rotate
clockwise
Inner loop runs completely each
time outer loop runs once
Ferris Wheel Example


Outer loop executes 10 times and
inner loop executes 2 times
How many times does inner
wheels rotate?
o
Inner loop executed 20 times

2 wheel inner rotations * 10 outer
rotations
Homework




Read chapter 5
Answer questions in handout
Do lab assignments after handing in answered
questions
Due one week after assigned with 1 week grace
Download