Post on 22-Aug-2018
transcript
The Loop Instruction
Simple control structure allows
o Instruction (or block of instructions) to be repeated multiple times
o Repeated fixed amount of times
A whole number
Flowcharting a Loop Instruction
5-4
Set index to 0
Index < 12? Clock, minute roll
left 1 revolution
Clock, hour roll
left 1/12th
revolution
Add 1 to index
T
5.1
F
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 Example: getting a ball to roll across into a goal regardless of where the ball is initially placed
o Use the soccerBall’s distance to function to calculate distance to goal
o Loop uses truncation: decimal portions of numbers are discarded
o Examples: objects loop 4 times not 4.8 or 3 times not 3.4 5-7
5.1
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
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
5.1
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
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
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 If true it performs
a repetition and starts over
o If false the loop terminates
5-15
5.2
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
Tennis Racket Flowchart
Test loop’s condition: is racket behind ball? o Yes? Turn racket
forward 0.06 revolutions
o No? Simulate racket hitting ball by moving forward 5 meters
5-17
5.2
Start
Racket Distance
Behind
ball > 0?
Racket turns
forward 0.06
revolution
Ball moves
forward 5 meters
End
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 Opacity property
o Relational operation
o 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 Two function calls
o 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
Otherwise there would be no chase
o Goldfish should appear to be fleeing
Shark Chases Fish Solution
To create a chase scene
o Shark will swim short distance toward fish
o At same time fish will swim short distance away from shark
o Fish will flee to a random location
o 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
Do in order
turn torso left and move forward
turn torso right and move forward
turn torso left and move forward
flee
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