MatLab – Palm Chapter 3, Part 1 Files, Functions, and Data

Download Report

Transcript MatLab – Palm Chapter 3, Part 1 Files, Functions, and Data

MatLab – Palm Chapter 4, Part 2
The if and switch structure
Class 10.1
Sections: 4.4 and 4.6
Fall 2004
ENGR 111A - 10.1
1
RAT 10.1




Take out a piece of paper, write your name, team #,
today’s date and RAT 10.1 .
As an INDIVIDUAL, you have 2-minutes to determine the
value of y in the MatLab code shown below.
x = 10;
if x >= 12
y = sqrt(x);
else
y = x^2;
end
Pass your answer to the center aisle
Answer: y = 100
Fall 2004
ENGR 111A - 10.1
2
Learning Objectives

Students should be able to:

Use conditional statements to develop
logical program flow.



Fall 2004
if, elseif, and else commands
switch structure
Develop flow charts in standard notation.
ENGR 111A - 10.1
3
4.4 Conditional Statements



The MatLab conditional statements enable
us to write programs that make decisions
Understanding the IF-THEN-ELSE logic is
fundamental to all software development.
Make sure that you understand:



if statement on p. 201
else statement on p. 202/203
elseif statement on p. 205
Fall 2004
ENGR 111A - 10.1
4
LOGICAL CONTROL
PROGRAMMING CONSTUCTS


A conditional (Boolean) statement is an
expression which tests the validity of a
specified condition
e.g.,
z = I ==J
z=I>J
These are used in selection structures
(conditional statements) to control the
flow of a program.
Fall 2004
ENGR 111A - 10.1
5
LOGICAL CONTROL
PROGRAMMING CONSTRUCTS


Syntax of the if statement:
if logical expression
statements
end
Proper indentation is MANDATORY or
you will receive NO CREDIT!


Note you can right click and choose smart
indent in the m-file editor.
See page 187 for a flow chart
Fall 2004
ENGR 111A - 10.1
6
LOGICAL CONTROL
PROGRAMMING CONSTRUCTS
Flowchart
representation of the
if statement.
Conditional
statement
Figure 4.1–2
Sequential
Statement(s)
Fall 2004
ENGR 111A - 10.1
7
LOGICAL CONTROL
PROGRAMMING CONSTRUCTS





MATLAB starts at the beginning of the if
sequence
It proceeds one condition to the next
When it finds a true statement, the
appropriate section of the code is
executed
THE SEQUENCE IS THEN TERMINATED!!!
The last section of code is closed using the
keyword end
Fall 2004
ENGR 111A - 10.1
8
EXAMPLE
x = some given value
if x >= 0
y = sqrt (x)
end
Fall 2004
ENGR 111A - 10.1
9
EXAMPLE
x = 10;
y = 20;
if x >= 0 & y >= 0
z = sqrt(x) + sqrt(y);
w = log(x) – 3*log(y);
end
Fall 2004
ENGR 111A - 10.1
10
LOGICAL PROGRAMMING
CONTRUCTS

Nested “if” statements:
if logical expression 1
statement group 1
if logical expression 2
statement group 2
end
end

Nested
Statement
Note the indentions – an absolute must
Fall 2004
ENGR 111A - 10.1
11
Typical flow Chart for
nested if…end Logic
Fall 2004
ENGR 111A - 10.1
12
LOGICAL PROGRAMMING
CONTRUCTS
THE else STATEMENT:
If two mutually exclusive actions can occur as a result
of a decision, use the else statement.
if logical expression
statement group 1
else
statement group 2
end

See page 204 for a flow chart of a typical if-else
structure.
Fall 2004
ENGR 111A - 10.1
13
LOGICAL PROGRAMMING
CONTRUCTS
Write these
words
Flowchart of the
else structure.
Figure 4.4–2
Fall 2004
ENGR 111A - 10.1
14
In-class Exercise (5 minutes)



Suppose y = x1/2 for x >= 0
and y = ex – 1 for x < 0
Write a program (.m script file) to
calculate y assuming that x already has
a scalar value.
Test your program for x = 3 and x = -2.
Fall 2004
ENGR 111A - 10.1
15
SOLUTION (Script File)
% Solution to In-Class Exercise
if x >= 0
y = sqrt (x);
else
y = exp (x) -1;
Did you indent
end
properly?!
Fall 2004
ENGR 111A - 10.1
16
LOGICAL PROGRAMMING
CONSTRUCTS
The elseif statement:
When three actions can occur as a result
of a decision, the else and elseif
statements are used along with the if
statement.
Remember: ONLY ONE ACTION WILL
ACTUALY OCCUR!!!
Fall 2004
ENGR 111A - 10.1
17
LOGICAL PROGRAMMING
CONSTRUCTS
if logical expression 1
statement group1
elseif logical expression 2
statement group 2
else
statement group 3
end
Fall 2004
ENGR 111A - 10.1
18
if part
elseif check
else is here
Note: else is
NOT a
conditional
statement
Fall 2004
ENGR 111A - 10.1
19
EXAMPLE
Given:
y = ln x for x > 10
y = x1/2 for x >= 0 and x <= 10
y = ex – 1 for x < 0
Compute y if x has been assigned a scalar
value.
Fall 2004
ENGR 111A - 10.1
20
SOLUTION (Script file)
% Solution to example
if x > 10
Does the order
that I check
y = log (x)
things matter?
elseif x >= 0
YES!
y = sqrt (x)
else
y = exp (x) -1
end
Fall 2004
ENGR 111A - 10.1
21
LOGICAL PROGRAMMING
CONSTRUCTS
As a TEAM, take three minutes to
complete the following exercise.
Write the syntax for the if-elseif-else-end
construct if there are more than three
alternatives.
Fall 2004
ENGR 111A - 10.1
22
SOLUTION
if logical expression1
Statements group1
elseif logical expression2
Statements group2
elseif logical expression3
Statements group3
elseif logical expression4
Statements group4
…
else
Statement if all other cases are false
end
Fall 2004
ENGR 111A - 10.1
23
In-class Assignment 10.1-1



As an INDIVIDUAL, you have 10 minutes.
Write an .m script file that converts a numerical
test score to a letter grade.
(90 –100) – A
(80 – 89) – B
(70 – 79) – C
(60 – 69) – D
Less than 60 – F
Test your program for the grades of 95 and 72.
Fall 2004
ENGR 111A - 10.1
24
SOLUTION (Script file)
% Program grades.m
grade = 72;
if grade >=90
letter = 'A'
elseif grade >= 80
letter = 'B'
elseif grade >= 70
letter = 'C'
elseif grade >= 60
letter = 'D'
else
letter = 'F'
end
Fall 2004
ENGR 111A - 10.1
25
4.6 The switch Structure
THE “switch” STATEMENT:


Provides a convenient way to execute
conditional code when there are many
cases to choose from.
This construct can replace series of ifelse-end statements
Fall 2004
ENGR 111A - 10.1
26
LOGICAL PROGRAMMING
CONSTRUCTS
SYNTAX:
switch expression (scalar or string)
case value1
statement group 1
case value2
statement group 2
…
otherwise
statement group n
end
Fall 2004
ENGR 111A - 10.1
27
EXAMPLE for “switch”


Suppose you are given a variable angle
in degrees to represent the following
directions: Northeast, Southeast,
Southwest, and Northwest.
Use the switch statement to display the
desired direction given the angle.
Fall 2004
ENGR 111A - 10.1
28
SOLUTION
switch angle
Decision variable name
case 45
Value to test
disp('Northeast')
case 135
disp('Southeast')
case 225
disp('Southwest')
case 315
Default case
disp('Northwest')
otherwise
disp('Direction Unknown')
end
Fall 2004
ENGR 111A - 10.1
29
EXAMPLE #2 for “switch”


You input a numerical value of a
quantity in one set of units (e.g.,
centimeters) and you desire an output
in another set of units (e.g., inches,
feet, or meters, etc…).
Write a program using the switch-case
construction that transforms a length in
centimeters, inches, feet, meters, etc…
to length in centimeters
Fall 2004
ENGR 111A - 10.1
30
SOLUTION
switch units
case {'inch','in'} % ‘units’ contains type of
y = x*2.54;
% input, output is in cm
case {'feet','ft'}
y = x*2.54*12;
case {'meter','m'}
y = x*100;
case {'centimeter','cm'}
y = x;
case {'millimeter','mm'}
y = x/10;
otherwise
disp(['Unknown Units: ' units])
y = NaN;
end
Fall 2004
ENGR 111A - 10.1
31
Assignment 10.1




Individual assignment.
Due: Nov. 9, 2004
Palm’s MatLab: Chaper 4; #16, 19a,
and 35.
Read Section 4.5 in the Palm MATLAB
book
Fall 2004
ENGR 111A - 10.1
32