Repetition Structures Chapter 5 5-1. Chapter 5 Objectives The Loop Instruction The While Instruction...

Post on 16-Dec-2015

229 views 1 download

Transcript of Repetition Structures Chapter 5 5-1. Chapter 5 Objectives The Loop Instruction The While Instruction...

Repetition StructuresChapter 5

5-1

Chapter 5 Objectives The Loop Instruction The While Instruction Nested Loops

5-2

The Loop Instruction

Simple control structure allowso Instruction (or block of instructions) to be

repeated multiple timeso 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

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 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 stopso 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

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

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 loopo 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 propertyo Relational

operationo 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

Useso Two function callso Relational

operation5-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 abruptlyo To prevent jerky

movement Ladder is lowered

to diver5-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 fisho At same time fish will swim short distance

away from sharko Fish will flee to a random locationo As long as goldfish is 0.5 meter away from

shark, repeat above actions

Stepwise Refinement Process of breaking problem into smaller

taskso 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 Storyboardschase

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 locationeat

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