Fall 2004ENGR 111A - 10.11 MatLab – Palm Chapter 4, Part 2 The if and switch structure Class 10.1...
-
Upload
william-simon -
Category
Documents
-
view
222 -
download
2
Transcript of Fall 2004ENGR 111A - 10.11 MatLab – Palm Chapter 4, Part 2 The if and switch structure Class 10.1...
Fall 2004 ENGR 111A - 10.1 1
MatLab – Palm Chapter 4, Part 2The if and switch structure
Class 10.1Sections: 4.4 and 4.6
Fall 2004 ENGR 111A - 10.1 2
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 3
Learning Objectives Students should be able to:
Use conditional statements to develop logical program flow.
if, elseif, and else commands switch structure
Develop flow charts in standard notation.
Fall 2004 ENGR 111A - 10.1 4
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 5
LOGICAL CONTROL PROGRAMMING CONSTUCTS
A conditional (Boolean) statement is an expression which tests the validity of a specified conditione.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 6
LOGICAL CONTROL PROGRAMMING CONSTRUCTS
Syntax of the if statement:if logical expressionstatements
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 7
Flowchart representation of the if statement.
Figure 4.1–2
LOGICAL CONTROL PROGRAMMING CONSTRUCTS
Conditionalstatement
SequentialStatement(s)
Fall 2004 ENGR 111A - 10.1 8
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 9
EXAMPLE
x = some given value
if x >= 0
y = sqrt (x)
end
Fall 2004 ENGR 111A - 10.1 10
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 11
LOGICAL PROGRAMMING CONTRUCTS Nested “if” statements:
if logical expression 1 statement group 1
if logical expression 2statement group 2
endend
Note the indentions – an absolute must
Nested Statement
Fall 2004 ENGR 111A - 10.1 12
Typical flow Chart for nested if…end Logic
Fall 2004 ENGR 111A - 10.1 13
LOGICAL PROGRAMMING CONTRUCTSTHE 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 14
Flowchart of the else structure.
Figure 4.4–2
LOGICAL PROGRAMMING CONTRUCTS
Write these words
Fall 2004 ENGR 111A - 10.1 15
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 16
SOLUTION (Script File)
% Solution to In-Class Exercise
if x >= 0
y = sqrt (x);
else
y = exp (x) -1;
end Did you indentproperly?!
Fall 2004 ENGR 111A - 10.1 17
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 18
LOGICAL PROGRAMMING CONSTRUCTS
if logical expression 1 statement group1elseif logical expression 2 statement group 2else statement group 3end
Fall 2004 ENGR 111A - 10.1 19
if part
elseif check
else is hereNote: else isNOT a conditionalstatement
Fall 2004 ENGR 111A - 10.1 20
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 21
SOLUTION (Script file)
% Solution to example
if x > 10
y = log (x)
elseif x >= 0
y = sqrt (x)
else
y = exp (x) -1
end
Does the order that I check things matter?YES!
Fall 2004 ENGR 111A - 10.1 22
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 23
SOLUTION
if logical expression1Statements group1
elseif logical expression2Statements group2
elseif logical expression3Statements group3
elseif logical expression4Statements group4
…else
Statement if all other cases are falseend
Fall 2004 ENGR 111A - 10.1 24
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) – DLess than 60 – F
Test your program for the grades of 95 and 72.
Fall 2004 ENGR 111A - 10.1 25
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 26
4.6 The switch StructureTHE “switch” STATEMENT:
Provides a convenient way to execute conditional code when there are many cases to choose from.
This construct can replace series of if-else-end statements
Fall 2004 ENGR 111A - 10.1 27
LOGICAL PROGRAMMING CONSTRUCTSSYNTAX: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 28
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 29
SOLUTIONswitch angle case 45 disp('Northeast') case 135 disp('Southeast') case 225 disp('Southwest') case 315 disp('Northwest') otherwise disp('Direction Unknown')end
Decision variable name
Value to test
Default case
Fall 2004 ENGR 111A - 10.1 30
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 31
SOLUTIONswitch 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 32
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