240 likes | 275 Views
C++ Programming. Chapter 4 SELECTION STRUCTURES. Objectives. Selection Criteria if..else statement relational operators logical operators The if-then-else Statement Nested if Statements The switch Statement Applications. true. false. Selection Criteria.
E N D
C++ Programming Chapter 4 SELECTION STRUCTURES PEG200/Saidatul Rahah
Objectives • Selection Criteria • if..else statement • relational operators • logical operators • The if-then-else Statement • Nested if Statements • The switch Statement • Applications PEG200/Saidatul Rahah
true false Selection Criteria • if-elsestatement:implements a decision structure for two alternatives Syntax: if (condition) statement executed if condition is true; else statement executed if condition is false; PEG200/Saidatul Rahah
Selection Criteria (cont.) • Relational expression: compares two operands or expressions using relational operators PEG200/Saidatul Rahah
Selection Criteria (cont.) • Relational Operators: • True 1 • False 0 PEG200/Saidatul Rahah
Selection Criteria (cont.) • Logical Operators PEG200/Saidatul Rahah
Logical Operators PEG200/Saidatul Rahah
Selection Criteria (cont.) • Precedence and Associativity of Operators (Table 4.2 page 190) PEG200/Saidatul Rahah
Use your brain power! • Using parentheses, determine the value of the following expression, assuming Note: Show your work 6 % 2 * 4 > 5 || 2 % 2 * 6 < 7 && 4 > 2 PEG200/Saidatul Rahah
1pt parentheses ((((6 % 2) * 4) > 5) || (((2 % 2) * 6) < 7) && (4 > 2))) (((0 * 4) > 5 ) || ((0 * 6) < (7 && 1)) ((0 > 5) || (0 < 7 && 1) (0 || 1 && 1) 2ptfor the working flow 0 || 1 1 1pt for answer PEG200/Saidatul Rahah
false true The if-else Statement • if-else performs instructions based on the result of a comparison • Place statements on separate lines for readability Syntax: PEG200/Saidatul Rahah
#include <iostream>int main(){ int number = 5; int guess; cout << "I am thinking of a number between 1 and 10" << endl; cout << "Enter your guess, please "; cin >> guess; if (guess == number) { cout << "Incredible, you are correct" << endl; } else { cout << "Sorry, try again" << endl; } return 0;} PEG200/Saidatul Rahah
The if-else Statement (cont.) • Compound statement: a sequence of single statements contained between braces, creating a block of statements • Any variable declared within a block is usable only within that block • Scope: the area within a program where a variable can be used; a variable’s scope is based on where the variable is declared PEG200/Saidatul Rahah
Let’s do Exercise! • Write the appropriate if statements for each of the following conditions: • If the slope is less than 0.5 set the variable flag to zero, else set flag to one. • If x is greater than y and z is less than 20, read in a value for p. • If distance is greater than 20 and it less than 35, read in a value for time. PEG200/Saidatul Rahah
true false true false true false Nested IF Statement • Nested if statement: an if-else statement completely contained within another if-else PEG200/Saidatul Rahah
Nested IF Statement (cont.) • General form of an if-else chain if(gender ==‘f’) cout<< “Female”; else if (gender==‘m’) cout<< “Male”; else cout<< “An invalid code for gender was entered”; PEG200/Saidatul Rahah
#include <iostream>int main(){ int number = 5;int guess;cout << "I am thinking of a number between 1 and 10" << endl;cout << "Enter your guess, please ";cin >> guess; if (guess == number) {cout << "Incredible, you are correct" << endl; } else if (guess < number) {cout << "Higher, try again" << endl; } else {cout << "Lower, try again" << endl; } return 0;} PEG200/Saidatul Rahah
Exercise again? • An angle is considered acute if it less than 90 degrees, obtuse if it greater than 90 degrees, and a right angle if it is equal to 90 degrees. Using this information, write a C++ program that accepts an angle, in degrees, and displays the type of angle corresponding to the degrees entered. PEG200/Saidatul Rahah
The switch Statement • switch statement: provides for one selection from many alternatives • switch keyword starts the statement; is followed by the expression to be evaluated • case keyword identifies a value to be compared to the switch expression; when a match is found, statements in this case block are executed • All further cases after a match is found are executed unless a break statement is found • default case is executed if no other case value matches were found (is optional) PEG200/Saidatul Rahah
S1 S2 Sn switch (gender) { case ‘f’: case ‘F’: cout<< “Female”; break; case ‘m’: case ‘M’: cout<< “Male”; break; default: cout<< “An invalid code for gender was entered”; } PEG200/Saidatul Rahah
Let test your brain power! • Rewrite the following if-else chain using a switch statement: if (factor==1) pressure =25.0; else if (factor==2) pressure =36.0; else if (factor==3)||if (factor==4)||if(factor==5) pressure =49.0; PEG200/Saidatul Rahah
Common Programming Errors • Using the assignment operator (=) instead of the relational operator (==) for an equality test • Assuming a structural problem with an if-else causes the error instead of focusing on the data value being tested • Using nested if statements without braces to define the structure PEG200/Saidatul Rahah
Exercise • Write a program to input a student IQ and gender. Display “Intelligent Male” if the student is a male with IQ of at least 100. Display “Not so intelligent Male” if the student is a male with IQ is less than 100. Display the same message for female students as well. • Thank You for Listening….. PEG200/Saidatul Rahah