chapter 5amanno/chapter_05 repetition structures.pdf · chapter 5 objectives the loop instruction...

32
Repetition Structures Chapter 5 5-1

Upload: phungdieu

Post on 22-Aug-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

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