loops - kocw

15
Loops Hyoungshick Kim Department of Computer Science and Engineering College of Information and Communication Engineering Sungkyunkwan University Computer Programming for Engineers (2014 Spring)

Upload: others

Post on 07-Dec-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Loops - KOCW

Loops

Hyoungshick Kim

Department of Computer Science and Engineering

College of Information and Communication Engineering

Sungkyunkwan University

Computer Programming for Engineers (2014 Spring)

Page 2: Loops - KOCW
Page 3: Loops - KOCW

• 3 control structures (Bohm and Jacopini) are sufficient to express any algorithm – Sequence structure

• Programs executed sequentially by default

– Selection structures

• if, if/else, switch

– Repetition structures

• while, do/while, for

goto's are

bad!

• "Go To Statement Considered Harmful" Edsger W. Dijkstra, CACM Mar 1968 http://www.acm.org/classics/oct95/ Communications of the ACM, Vol. 11, No. 3, March 1968, pp. 147-148

Control structures

Edsger W. Dijkstra

1930-2002

Page 4: Loops - KOCW

for loop

Execute a collection of statements a fixed number of times. for x=expression

statements

end

The expression is evaluated once before the loop starts. The value is called the control value. The statements are executed one time for each column in the control value. In the code above, x is the loop variable.

Before each “execution pass,” the loop variable (x) is assigned to the corresponding column of control value

1st column on first pass,

2nd column on second pass, and so on

Execution continues with

any statements beyond the

end

Page 5: Loops - KOCW

The most common value for expression is a row vector of integers, starting at 1, and increasing to a limit n

for x=1:n

statements

end

The control value is simply the row vector [ 1 2 3 4 … n ]

Hence, the statements are executed n times.

– The first time through, the value of x is set equal to 1;

– the kth time through, the value of x is set equal to k.

for loops, most common use (1)

Page 6: Loops - KOCW

for x=1:n

statements

end

is the same as

xValues = 1:n;

for x=xValues

statements

end

The expression can be created before the loop itself,

so

for loops, most common use (2)

Page 7: Loops - KOCW

Calculation of loan

TASK: Create a m-file to show the history of loan amount during the duration N with the amount

of initial loan L, fixed monthly interest

rate R, and fixed monthly payment MP.

The loan amount at this month = the loan amount at last month * (1+R) - MP

Example input:

N = 6;

L = 100;

R = 0.13;

MP = 15

Example output:

100.0000

98.0000

95.7400

93.1862

90.3004

87.0395

83.3546

Page 8: Loops - KOCW

switch, case, otherwise end (1)

switch expression

case testval1

statements1

case testval2

statements2

otherwise

statementsOther

end

Let VAL be value of expression.

Assume VAL is a scalar double.

Does VAL equal testval1?

Yes: Execute statements1

Jump past end.

No:

Does VAL equal testval2?

Yes: Execute statements2

Jump past end

No:

Execute statementsOther

Jump past end

Move to code beyond end

Any number of cases are allowed.

Page 9: Loops - KOCW

switch expression

case testval1

statements1

case testval2

statements2

otherwise

statementsOther

end

VAL (the value of expression)

need not be a scalar double. It

can also be a char array.

MATLAB uses strcmp (string

compare) to check equality of

VAL to the various testval1,

testval2, etc.

switch, case, otherwise end (2)

Page 10: Loops - KOCW

while

while expression

statements

end

Evaluate expression

If TRUE, execute statements

If FALSE, jump past end

repeat

Executing commands an undetermined number of times.

while expression

statements

end

Page 11: Loops - KOCW

Example using tic/toc

tic is a built-in MATLAB function that starts a timer.

Every subsequent call to toc (also MATLAB built-in) returns the

elapsed time (in seconds) since the originating call to tic.

The code below will cause the program to “pause” for one second

before proceeding.

tic

while toc<1

end

It would be clumsy to do this without a while-loop

Page 12: Loops - KOCW

try/catch

try

statements1

catch

statements2

end

The try block is executed;

If a run-time error occurs, the

remainder of try block is skipped and

the catch block is executed

If no error occurs, the catch block is not executed

Page 13: Loops - KOCW

factorial

TASK: Create a m-file function to draw the results of n! where 1 n 10.

Page 14: Loops - KOCW

Fibonacci numbers vs square numbers

TASK: Create a m-file function to draw the results of Fibonacci function compared with n2 where 1 n 14.

Hint: F(n) = F(n-1)+F(n-2) if n > 1

and F(0) = 0, F(1) = 1

Page 15: Loops - KOCW

Questions?