Presentation is loading. Please wait.

Presentation is loading. Please wait.

Week 7 - Programming II Today – more features: – Loop control – Extending if/else – Nesting of loops Debugging tools Textbook chapter 7, pages 190-192.

Similar presentations


Presentation on theme: "Week 7 - Programming II Today – more features: – Loop control – Extending if/else – Nesting of loops Debugging tools Textbook chapter 7, pages 190-192."— Presentation transcript:

1 Week 7 - Programming II Today – more features: – Loop control – Extending if/else – Nesting of loops Debugging tools Textbook chapter 7, pages 190-192 (sections 7.2.3, 7.5, 7.6 )

2 Loop Controls Loops contain sets of commands that you want to do repeatedly. You might want to: – Skip commands in the current iteration – Stop the loop itself Why continue once you’ve found what you’re looking for !!

3 Skipping Ahead: Continue Continue – jumps to next loop iteration: for k = 1:25000 if x(k) > 0 continue end { more commands } end skip ahead

4 Early Termination: Break Break – ends the loop: for variable = {array of length n} ….. break end go to commands beyond end

5 Example – calculating interest until the amount doubles using a for loop: will calculate up to 1000 years, if necessary if condition decides when to terminate loop

6 only needed 10 years

7 Example – accept input, appending it to vector, until a negative number is entered: allow up to 1000 values, if necessary

8 negative value stops the input

9 Extensions of if/else As introduced, if/else allows for two choices: if expression {commands if expression is true } else {commands if false } end

10 What if there are more than 2 situations? 3 situations: find the largest of 3 variables a, b, c a ≥ b ≥ c a ≥ c ≥ b b ≥ a ≥ c b ≥ c ≥ a c ≥ b ≥ a c ≥ a ≥ b 4 situations: convert a compass angle to a direction: 0º  east 90º  north 180º  west 270º  south

11 Could use “nested” if/else commands

12 or

13 The “elseif” command if expression1 {commands if expression1 is true } elseif expression2 {commands if expression2 is true } else {commands if both expressions are false } end

14 Examples: Note – many elseifs are allowed, but only 1 “else”

15 Example – Hi-Lo: a guessing game with feedback select hidden number input guess correct? yes no provide hi/lo feedback 5 tries? yes no win lose

16

17 Loops within Loops – Nesting for index1 = array1 {outer loop commands} for index2 = array2 {inner loop commands} end {more outer loop commands} end can be more than 2 levels deep

18 Variable values by example 1 3 1 6 1 9 2 3 2 6 2 9 3 3 6 3 9 4 3 4 6 4 9 index1index2

19 Example – computing a table of z = x 2 +y 2 for x and y equal to the integers 1, 2,…6:

20 Example – matching of people’s skills and tasks: Situation: 4 tasks 4 people with different skills to do them Skill table as shown Goal – assign tasks to maximize the sum Example solution of 20 Job 1 Job 2 Job 3 Job 4 Joe7442 Sue6852 Bob4713 Liz6521

21 Solution – use nested loops to try all combinations, skipping repeats: First, let’s initialize variables: Job 1234 Joe7442 Sue6852 Bob4713 Liz6521

22 Next, start nested loops: Check for repeats and skip

23 Test a valid assignment for quality: And then terminate the 4 for loops:

24 The result: Job 1 Job 2 Job 3 Job 4 Joe7442 Sue6852 Bob4713 Liz6521

25 Debugging Tools so far, Run

26 Debugging ≡ finding and correcting errors (bugs) in programs Useful debugging tools: – Ability to stop a program in the middle of its execution (at a breakpoint) – Ability to examine variable values at that point – Ability to modify variable values at that point

27 controls for creating and removing breakpoints

28 indicator of breakpoint location (can have multiple breakpoints)

29 What shows up at the breakpoint Command window: Editor window: location indicator different prompt

30 Can single step (F10) or continue (F5) to the next breakpoint (or end)


Download ppt "Week 7 - Programming II Today – more features: – Loop control – Extending if/else – Nesting of loops Debugging tools Textbook chapter 7, pages 190-192."

Similar presentations


Ads by Google