280 likes | 286 Views
Learn how to calculate total pay based on hours worked and pay rate, determine overtime, and use logical operators in decision-making. Examples and exercises included.
E N D
Decisions • Given hours worked and pay rate, calculate total pay • What if you work overtime? • How do you indicate if your work overtime? • How about double overtime? COSC175-Selection
<less than <= less than or equal to > greater than >= greater than or equal to == equals != not equal to Relational Operators COSC175-Selection
Examples • 10 > 2 • 'a' < 'c' Why is this true? • x != y • temp > humidity • num == 35 • initial != ‘Q’ COSC175-Selection
Logicals: AND && OR || NOT ! COSC175-Selection
Examples 1. if ((sex == 'F') && (city_code == 18) && (gpa >= 3.7)) cout << "Merit Award" << endl; 2. if ((zip == "48002") || (zip == "48003") || (zip == "48004")) cout << "LOCAL“ << endl; COSC175-Selection
“Short-Circuit” Evaluation • Process in which the computer evaluates a logical expression from left to right and stops as soon as the value of the expression is known • one True in || -> True • one False in && -> False Example: int age; int height; age = 25; height = 70; • ((age > 50) && (height > 60)) 2. ((height > 60) || (age > 40))
Selection/Decision • Test – true or false • One operation performed if true • One operation performed if false • Keywords • if, else COSC175-Selection
if Syntax if ( Expression ) statement NOTE: statement can be a single statement, a null statement, or a compound statement. COSC175-Selection
if statement is a selection of whether or not to execute a statement (which can be a single statement or an entire block) TRUE expression FALSE statement COSC175-Selection
Examples • if (taxCode == ‘T’ ) price = price + taxRate*Price; 2. if (num < 0 ) { // compound statement cout << "Negative" << endl; numNegs = numNegs + 1; } 3. if (age < 21 ) cout << "Under Age" COSC175-Selection
if-else Syntax if ( Expression ) StatementA else StatementB NOTE: StatementA and StatementB each can be a single statement a null statement, or a compound statement. COSC175-Selection
if..else provides two-way selection between executing one of 2 clauses (the if clause or the else clause) TRUE FALSE expression if clause else clause COSC175-Selection
int carDoors, driverAge; float premium, monthlyPayment; . . . if ( (carDoors == 4 ) && (driverAge > 24) ) { premium = 650.00 cout << "LOW RISK “ << endl; } else { premium = 1200.00 cout << “ HIGH RISK ” << endl; } monthlyPayment = premium / 12.0 + 5.00; COSC175-Selection
Example Convert temperature from fahrenheit to celsius or from celsius to fahrenheit based on C or F COSC175-Selection
code int main() { float temp; float newTemp; char units; cout << " Enter temperature and C or F" cin >> temp >> units; if (units == 'F') { newTemp = (5 * (temp – 32) )/9; cout << temp<< "Degrees F = " <<newTemp<<" Degrees C“; } else { newTemp = ((9 * temp)/5) + 32; cout << "Degrees C = " << newTemp << " Degrees F“ << endl; } } // end main COSC175-Selection
Exercises: • Write the statements that allow you to input a number and prints whether it is positive or negative. • Write the statements necessary to input the price of apples and the price of oranges. Then print either "THE APPLES COST MORE" or "THE ORANGES COST MORE. How would you handle the situation where the cost was the same? • Write the statements that allow you to input a number and prints whether it is odd or even. COSC175-Selection
Nested selection - Example if (hrsWorked <= 40 ) totPay = hrsWorked * payRate; else { regPay = 40 * payRate; if (hrsWorked <= 60) { otPay = (hrsWorked – 40) * (1.5 * payRate); totPay = regPay + otPay; } else { otPay = 20 * (1.5 * payRate); doubleOtPay = (hrsWorked – 60) * (2 * payRate); grossPay = regPay + otPay + doubleOtPay; } } COSC175-Selection
if (x > 0) cout << “Positive” << endl; else if (x < 0) cout << “Negative” << endl; else cout << “Zero” << endl; if (x > 0) cout << “Positive” << endl; else if (x < 0) cout << “Negative” << endl; else cout << “Zero” << endl; Writing a nested if statement as a Multiple-Alternative Decision COSC175-Selection
cin >> testGrade if (testGrade >= 90) letterGrade = ‘A‘; else if (testGrade >= 80) && testGrade < 90 letterGrade = 'B‘; else if (testGrade >= 70) && testGrade < 80 letterGrade = 'C‘; else if (testGrade >= 60) && testGrade < 70 letterGrade = 'D‘; else if testGrade < 60 letterGrade = 'F‘; • Why is italicized code not necessary? COSC175-Selection
cin >> testGrade if (testGrade >= 90) letterGrade = 'A‘; else if (testGrade >= 80 ) letterGrade = 'B‘; else if (testGrade >= 70 ) letterGrade = 'C‘; else if (testGrade >= 60 ) letterGrade = 'D‘; else letterGrade = 'F‘; COSC175-Selection
Nested if Statements if ( Expression1 ) Statement1 else if ( Expression2 ) Statement2 . . . else if ( ExpressionN ) StatementN else Statement N+1 EXACTLY 1 of these statements will be executed. COSC175-Selection
Multi-way Branching if ( creditsEarned >= 90 ) cout << “SENIOR STATUS “; else if ( creditsEarned >= 60 ) cout <<“JUNIOR STATUS “; else if ( creditsEarned >= 30 ) cout << “SOPHOMORE STATUS “; else cout << “FRESHMAN STATUS “; COSC175-Selection
if (age < 16) charge = 7; if ((age >= 16) && (age < 65)) charge = 10; if (age >= 65) charge = 5; if (age < 16 ) charge = 7; else if ((age >= 16) && (age < 65)) charge = 10; else if (age >= 65 ) charge = 5; Use nested logic rather than straight thru logic COSC175-Selection
Testing Selection Control Structures • to test a program with branches, use enough data sets so that every branch is executed at least once • this is called minimum complete coverage COSC175-Selection
Dangling elseelse matches nearest unmatched if if (animal == “dog”) if (weight > 40) cost = 15; else cost = 10; if (animal == “dog”) if (weight > 40) cost = 15; else cost = 10; COSC175-Selection
switch • Use for multiple tests of one variable switch (selector) { case label1: statement 1 case label2: statement 2 .. case label n: statement n default: statement e } COSC175-Selection
Example cin >> menuOpt; switch (menuOpt) { case 1: cout << "Beginners“; break; case 2: cout << "Advanced Beginner“; break; case 3: cout << "Intermediate“; break; default: cout << "Invalid Option“ } //END CASE COSC175-Selection
Example cin >> menuOpt; switch (menuOpt) { case 1: case 2: cout << “Buckle my shoe“; break; case 3: case 4: cout << “Shut the door“; break; case 5: case 6: cout << “Pick up stickse“; break; default: cout << "Invalid Option“ } //END CASE COSC175-Selection