Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

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

2 Fall 2004ENGR 111A - 10.12 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

3 Fall 2004ENGR 111A - 10.13 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.

4 Fall 2004ENGR 111A - 10.14 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

5 Fall 2004ENGR 111A - 10.15 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.

6 Fall 2004ENGR 111A - 10.16 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

7 Fall 2004ENGR 111A - 10.17 Flowchart representation of the if statement. Figure 4.1–2 LOGICAL CONTROL PROGRAMMING CONSTRUCTS Conditional statement Sequential Statement(s)

8 Fall 2004ENGR 111A - 10.18 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

9 Fall 2004ENGR 111A - 10.19 EXAMPLE x = some given value if x >= 0 y = sqrt (x) end

10 Fall 2004ENGR 111A - 10.110 EXAMPLE x = 10; y = 20; if x >= 0 & y >= 0 z = sqrt(x) + sqrt(y); w = log(x) – 3*log(y); end

11 Fall 2004ENGR 111A - 10.111 LOGICAL PROGRAMMING CONTRUCTS Nested “if” statements: if logical expression 1 statement group 1 if logical expression 2 statement group 2 end Note the indentions – an absolute must Nested Statement

12 Fall 2004ENGR 111A - 10.112 Typical flow Chart for nested if…end Logic

13 Fall 2004ENGR 111A - 10.113 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.

14 Fall 2004ENGR 111A - 10.114 Flowchart of the else structure. Figure 4.4–2 LOGICAL PROGRAMMING CONTRUCTS Write these words

15 Fall 2004ENGR 111A - 10.115 In-class Exercise (5 minutes) Suppose y = x 1/2 for x >= 0 and y = e x – 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.

16 Fall 2004ENGR 111A - 10.116 SOLUTION (Script File) % Solution to In-Class Exercise if x >= 0 y = sqrt (x); else y = exp (x) -1; end Did you indent properly?!

17 Fall 2004ENGR 111A - 10.117 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!!!

18 Fall 2004ENGR 111A - 10.118 LOGICAL PROGRAMMING CONSTRUCTS if logical expression 1 statement group1 elseif logical expression 2 statement group 2 else statement group 3 end

19 Fall 2004ENGR 111A - 10.119 if part elseif check else is here Note: else is NOT a conditional statement

20 Fall 2004ENGR 111A - 10.120 EXAMPLE Given: y = ln x for x > 10 y = x 1/2 for x >= 0 and x <= 10 y = e x – 1 for x < 0 Compute y if x has been assigned a scalar value.

21 Fall 2004ENGR 111A - 10.121 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!

22 Fall 2004ENGR 111A - 10.122 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.

23 Fall 2004ENGR 111A - 10.123 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

24 Fall 2004ENGR 111A - 10.124 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.

25 Fall 2004ENGR 111A - 10.125 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

26 Fall 2004ENGR 111A - 10.126 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 if- else-end statements

27 Fall 2004ENGR 111A - 10.127 LOGICAL PROGRAMMING CONSTRUCTS SYNTAX: switch expression (scalar or string) case value1 statement group 1 case value2 statement group 2 … otherwise statement group n end

28 Fall 2004ENGR 111A - 10.128 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.

29 Fall 2004ENGR 111A - 10.129 SOLUTION switch 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

30 Fall 2004ENGR 111A - 10.130 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

31 Fall 2004ENGR 111A - 10.131 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

32 Fall 2004ENGR 111A - 10.132 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


Download ppt "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."

Similar presentations


Ads by Google