+ All Categories
Home > Documents > Fall 2004ENGR 111A - 10.11 MatLab – Palm Chapter 4, Part 2 The if and switch structure Class 10.1...

Fall 2004ENGR 111A - 10.11 MatLab – Palm Chapter 4, Part 2 The if and switch structure Class 10.1...

Date post: 17-Dec-2015
Category:
Upload: william-simon
View: 220 times
Download: 2 times
Share this document with a friend
32
Fall 2004 ENGR 111A - 10.1 1 MatLab – Palm Chapter 4, Part 2 The if and switch structure Class 10.1 Sections: 4.4 and 4.6
Transcript
Page 1: Fall 2004ENGR 111A - 10.11 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

MatLab – Palm Chapter 4, Part 2The if and switch structure

Class 10.1Sections: 4.4 and 4.6

Page 2: Fall 2004ENGR 111A - 10.11 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 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

Page 3: Fall 2004ENGR 111A - 10.11 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 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.

Page 4: Fall 2004ENGR 111A - 10.11 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 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

Page 5: Fall 2004ENGR 111A - 10.11 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 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.

Page 6: Fall 2004ENGR 111A - 10.11 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 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

Page 7: Fall 2004ENGR 111A - 10.11 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 7

Flowchart representation of the if statement.

Figure 4.1–2

LOGICAL CONTROL PROGRAMMING CONSTRUCTS

Conditionalstatement

SequentialStatement(s)

Page 8: Fall 2004ENGR 111A - 10.11 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 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

Page 9: Fall 2004ENGR 111A - 10.11 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 9

EXAMPLE

x = some given value

if x >= 0

y = sqrt (x)

end

Page 10: Fall 2004ENGR 111A - 10.11 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 10

EXAMPLE

x = 10;

y = 20;

if x >= 0 & y >= 0

z = sqrt(x) + sqrt(y);

w = log(x) – 3*log(y);

end

Page 11: Fall 2004ENGR 111A - 10.11 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 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

Page 12: Fall 2004ENGR 111A - 10.11 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 12

Typical flow Chart for nested if…end Logic

Page 13: Fall 2004ENGR 111A - 10.11 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 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.

Page 14: Fall 2004ENGR 111A - 10.11 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 14

Flowchart of the else structure.

Figure 4.4–2

LOGICAL PROGRAMMING CONTRUCTS

Write these words

Page 15: Fall 2004ENGR 111A - 10.11 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 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.

Page 16: Fall 2004ENGR 111A - 10.11 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 16

SOLUTION (Script File)

% Solution to In-Class Exercise

if x >= 0

y = sqrt (x);

else

y = exp (x) -1;

end Did you indentproperly?!

Page 17: Fall 2004ENGR 111A - 10.11 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 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!!!

Page 18: Fall 2004ENGR 111A - 10.11 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 18

LOGICAL PROGRAMMING CONSTRUCTS

if logical expression 1 statement group1elseif logical expression 2 statement group 2else statement group 3end

Page 19: Fall 2004ENGR 111A - 10.11 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 19

if part

elseif check

else is hereNote: else isNOT a conditionalstatement

Page 20: Fall 2004ENGR 111A - 10.11 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 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.

Page 21: Fall 2004ENGR 111A - 10.11 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 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!

Page 22: Fall 2004ENGR 111A - 10.11 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 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.

Page 23: Fall 2004ENGR 111A - 10.11 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 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

Page 24: Fall 2004ENGR 111A - 10.11 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 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.

Page 25: Fall 2004ENGR 111A - 10.11 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 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

Page 26: Fall 2004ENGR 111A - 10.11 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 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

Page 27: Fall 2004ENGR 111A - 10.11 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 27

LOGICAL PROGRAMMING CONSTRUCTSSYNTAX:switch expression (scalar or string)

case value1

statement group 1

case value2

statement group 2

otherwise

statement group n

end

Page 28: Fall 2004ENGR 111A - 10.11 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 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.

Page 29: Fall 2004ENGR 111A - 10.11 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 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

Page 30: Fall 2004ENGR 111A - 10.11 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 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

Page 31: Fall 2004ENGR 111A - 10.11 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 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

Page 32: Fall 2004ENGR 111A - 10.11 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 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


Recommended