PowerPoint Presentation - C3I Systems 2

Download Report

Transcript PowerPoint Presentation - C3I Systems 2

Flow of Control: Loops
Lecture 9: Supporting Material
Dr Kathryn Merrick
Tuesday 31st March, 2009
Overview
 Writing programs that can repeat
operations
 for loops
 while loops
Reference: Text book Ch 4.
A Motivating Example
 Recall the
robot_vision_simulator?
 It could calculate the service of
one cadet, based on their uniform
colour.
 What if we want a robot to monitor
its surroundings or act repeatedly
for some period of time…?
Loops
 Computer programs can repeat operations using
loops
 This saves the programmer (you!) from writing out
the same code multiple times
 Many programming languages have two or three
types of loops. MATLAB has two:
 for loops
 while loops
for Loops
Overview: for Loops
“Used when you know how
many repetitions are required.”
Example: Data Processing
% loop to print 10 numbers and their squares
for x=1:10
x_squared = x*x;
fprintf(‘%d squared is %d\n’, x, x_squared);
end
Nested Loops
% code to print all the times-tables from
% the 1-times-table up to the 12-times-table
for x=1:12 % repeat for each times-table
fprintf(‘\nThe %d-times-table:\n’, x);
fprintf(‘-------------------\n’);
for y=1:12 % repeat for each entry in table
x_times_y = x*y;
fprintf(‘%d times %d is %d\n’, x, y, x_times_y);
end
end
Beware! Time Complexity
 Often want to optimse the time it takes code to run
 For one loop the time complexity is equal to the number n of
iterations (repetitions) of the loop
 Written O(n)
 In a nested loop the time complexity is number of iterations of the
first loop multiplied by the number of iterations of the nested loop:
 Eg: O(n2)
 This gets really slow if:
 n is large
 there many levels of nesting
Demo 1:
Using for Loops in Functions
A Robot Simulator for Movement
Syntax: for Loops
for ( counter_variable = range )
code to be repeated goes here
end
Programmer or
function user
know the range to
use a for loop
while Loops
Overview: while Loops
“Used when you don’t know how many
repetitions are required,
but
you know some condition about when
to stop repeating.”
Demo 2:
Using while Loops in Functions
A Robot Simulator for Finding Food
Problem Solving With while Loops
 The bouncing height of a ball is determined by its
starting height and elasticity:
ht+1 = ht x elasticity2
Where elasticity is between 0 and 1.
How many times will
the ball bounce
between given starting
and stopping heights?
From Problem to Program…
1. Understand the problem ‘in English’
2. Develop a rough solution on paper
3. Implement the solution in MATLAB
4. Test your solution
Demo 3:
Using while Loops in Functions
Bouncing Ball
Syntax: while Loops
while ( Boolean condition goes here )
code to be repeated goes here
end
Beware! The Infinite Loop
while true
fprintf(‘This is a never ending loop\n’);
end
 Beware! You could end up with an infinite loop without
such an obvious condition
 This blatant example is the basis of a simple computer
virus or denial of service attack
Some More Interesting Robots…
Summary
 After today’s lecture you
should be able to:
 Write functions that can
repeat operations
 Use a for loop
 Use a while loop