Presentation is loading. Please wait.

Presentation is loading. Please wait.

C++ Programming, Namiq Sultan1 Chapter 4 Making Decisions Namiq Sultan University of Duhok Department of Electrical and Computer Engineerin Reference:

Similar presentations


Presentation on theme: "C++ Programming, Namiq Sultan1 Chapter 4 Making Decisions Namiq Sultan University of Duhok Department of Electrical and Computer Engineerin Reference:"— Presentation transcript:

1 C++ Programming, Namiq Sultan1 Chapter 4 Making Decisions Namiq Sultan University of Duhok Department of Electrical and Computer Engineerin Reference: Starting Out with C++, Tony Gaddis, 2 nd Ed.

2 C++ Programming, Namiq Sultan2 4.1 Relational Operators Relational operators allow you to compare numeric values and determine if one is greater than, less than, equal to, or not equal to another.

3 C++ Programming, Namiq Sultan3 Table 4-1

4 C++ Programming, Namiq Sultan4 Table 4-2

5 C++ Programming, Namiq Sultan5 The Value of a Relationship Relational expressions are also know as a Boolean expression Warning! The equality operator is two equal signs together ==

6 C++ Programming, Namiq Sultan6 Table 4-3 Assume x is 10 and y is 7

7 C++ Programming, Namiq Sultan7 Program 4-1 //This program displays the values of true and false states. #include using namespace std; int main() { int trueValue, falseValue, x = 5, y = 10; trueValue = x < y; falseValue = y== x; cout << "True is " << trueValue << endl; cout << "False is " << falseValue << endl; } Program Output True is 1 False is 0

8 C++ Programming, Namiq Sultan8 4.2 The if Statement The if statement can cause other statements to execute only under certain conditions.

9 C++ Programming, Namiq Sultan9 Program 4-2 //This program averages 3 test scores #include using namespace std; int main(void) { int score1, score2, score3; float average; cout << "Enter 3 test scores and I will average them: "; cin >> score1 >> score2 >> score3; average = (score1 + score2 + score3) / 3.0; cout << "Your average is " << average << endl; if (average > 95) cout << "Congratulations! That's a high score!\n"; }

10 C++ Programming, Namiq Sultan10 Program Output with Example Input Enter 3 test scores and I will average them: 80 90 70 [Enter] Your average is 80 Program Output with Other Example Input Enter 3 test scores and I will average them: 100 100 100 [Enter] Your average is 100 Congratulations! That's a high score!

11 C++ Programming, Namiq Sultan11 Table 4-5

12 C++ Programming, Namiq Sultan12 Be Careful With Semicolons if (expression) statement; Notice that the semicolon comes after the statement that gets executed if the expression is true; the semicolon does NOT follow the expression Expression Statement(s) TrueFalse

13 C++ Programming, Namiq Sultan13 Program 4-3 //This program demonstrates how a misplaced semicolon //prematurely terminates an if statement. #include using namespace std; int main() { int x = 0, y = 10; cout << “x is " << x << " and y is " << y << endl; if (x > y); // misplaced semicolon! cout << “x is greater than y\n"; // Always executed } Program Output X is 0 and Y is 10 X is greater than Y

14 C++ Programming, Namiq Sultan14 Programming Style and the if Statement The conditionally executed statement should appear on the line after the if statement. The conditionally executed statement should be indented one “level” from the if statement. Note: Each time you press the tab key, you are indenting one level.

15 C++ Programming, Namiq Sultan15 And Now Back to Truth When a relational expression is true, it has the value 1. When a relational expression is false it has the value 0. An expression that has the value 0 is considered false by the if statement. An expression that has any value other than 0 is considered true by the if statement.

16 C++ Programming, Namiq Sultan16 Consider the following statement: if (x = 2) // caution here!!!! cout << “It is True!”; This statement does not determine if x is equal to 2, it assigns x the value 2, therefore, this expression will always be true because the value of the expression is 2, a non-zero value

17 C++ Programming, Namiq Sultan17 Program 4-5 //This program averages 3 test scores. The if statement uses // the = operator, but the == operator was intended. #include using namespace std; int main() { int score1, score2, score3; float average; cout << "Enter 3 scores and I will average them:"; cin >> score1 >> score2 >> score3; average = (score1 + score2 + score3) / 3.0; cout << "Your average is " << average << endl; if (average = 100) // Wrong cout << "Congratulations! That's a high score!\n"; }

18 C++ Programming, Namiq Sultan18 Program Output with Example Input Enter your 3 test scores and I will average them: 80 90 70[Enter] Your average is 80 Congratulations! That’s a perfect score!

19 C++ Programming, Namiq Sultan19 4.3 Flags A flag is a variable, usually a boolean or an integer, that signals when a condition exists. If your compiler does not support the bool data type, use int instead.

20 C++ Programming, Namiq Sultan20 Program 4-6 //This program averages 3 test scores. It uses the variable highScore as a flag. #include using namespace std; int main( ) { int score1, score2, score3; float average; bool highScore = false; cout << "Enter your 3 test scores and I will average them: "; cin >> score1 >> score2 >> score3; average = (score1 + score2 + score3) / 3.0; if (average > 95) highScore = true; // Set the flag variable cout << "Your average is " << average << endl; if (highScore) cout << "Congratulations! That's a high score!\n";\ }

21 C++ Programming, Namiq Sultan21 Program 4-6 Program Output with Example Input Enter your 3 test scores and I will average them: 100 100 100 [Enter] Your average is 100.0 Congratulations! That's a high score!

22 C++ Programming, Namiq Sultan22 4.4 Expanding the if Statement The if statement can conditionally execute a block of statement enclosed in braces. if (expression) { statement; // Place as many statements here as necessary. }

23 C++ Programming, Namiq Sultan23 Program 4-7 //This program averages 3 test scores. //It uses the variable highScore as a flag. #include using namespace std; int main(void) { int score1, score2, score3; float average; bool highScore = false; cout << "Enter 3 test scores and I will average them: "; cin >> score1 >> score2 >> score3; average = (score1 + score2 + score3) / 3.0; if (average > 95) highScore = true; // Set the flag variable

24 C++ Programming, Namiq Sultan24 cout << "Your average is " << average << endl; if (highScore) { cout << "Congratulations!\n"; cout << "That's a high score.\n"; cout << "You deserve a pat on the back!\n"; }

25 C++ Programming, Namiq Sultan25 Program Output with Example Input Enter your 3 test scores and I will average them: 100 100 100 [Enter] Your average is 100.0 Congratulations! That's a high score. You deserve a pat on the back! Program Output with Different Example Input Enter your 3 test scores and I will average them: 80 90 70 [Enter] Your average is 80.0

26 C++ Programming, Namiq Sultan26 Don’t Forget the Braces! If you intend to execute a block of statements with an if statement, don’t forget the braces. Without the braces, the if statement only executes the very next statement.

27 C++ Programming, Namiq Sultan27 4.5The if/else Statement The if/else statement will execute one group of statements if the expression is true, or another group of statements if the expression is false. if (expression) statement or block of statements; else statement or block of statements ; expression Statement(s) True False

28 C++ Programming, Namiq Sultan28 Program 4-9 // This program uses the modulus operator to determine // if a number is odd or even. If the number is evenly divided // by 2, it is an even number. A remainder indicates it is odd. #include using namespace std; int main() { int number; cout << "Enter an integer and I will tell you if it\n"; cout << "is odd or even. "; cin >> number; if (number % 2 == 0) cout << number << " is even.\n"; else cout << number << " is odd.\n"; }

29 C++ Programming, Namiq Sultan29 Program Output with Example Input Enter an integer and I will tell you if it is odd or even. 17 [Enter] 17 is odd.

30 C++ Programming, Namiq Sultan30 Program 4-10 // This program asks the user for two numbers, num1 and num2. // num1 is divided by num2 and the result is displayed. // Before the division operation, however, num2 is tested // for the value 0. If it contains 0, the division does not take place. #include using namespace std; int main() { float num1, num2, quotient; cout << "Enter a number: "; cin >> num1; cout << "Enter another number: "; cin >> num2;

31 C++ Programming, Namiq Sultan31 if (num2 == 0) { cout << "Division by zero is not possible.\n"; cout << "Please run the program again and enter\n"; cout << "a number besides zero.\n"; } else { quotient = num1 / num2; cout << "The quotient of " << num1 << " divided by "; cout << num2 << " is " << quotient << ".\n"; }

32 C++ Programming, Namiq Sultan32 Program Output (When the user enters 0 for num2) Enter a number: 10 [Enter] Enter another number: 0 [Enter] Division by zero is not possible. Please run the program again and enter a number besides zero.

33 C++ Programming, Namiq Sultan33 4.6The if/else if Construct The if/else if statement is a chain of if statements. They perform their tests, one after the other, until one of them is found to be true. if (expression) statement or block of statements; else if (expression) statement or block of statements; // // put as many else it’s as needed here // else if (expression) statement or block of statements;

34 C++ Programming, Namiq Sultan34 Program 4-11 // This program uses an if/else if statement to assign a // letter grade (A,B,C,D,or F) to a numeric test score. #include using namespace std; int main() { int testScore; char grade; cout << "Enter your numeric test score and I will\n"; cout << "tell you the letter grade you earned: "; cin >> testScore;

35 C++ Programming, Namiq Sultan35 if (testScore < 60) grade = 'F'; else if (testScore < 70) grade = 'D'; else if (testScore < 80) grade = 'C'; else if (testScore < 90) grade = 'B'; else if (testScore <= 100) grade = 'A'; cout << "Your grade is " << grade << ".\n"; } exprn Statement(s) exprn Statement(s) exprn Statement(s) exprn Statement(s) T T T T F F F F

36 C++ Programming, Namiq Sultan36 Program Output with Example Input Enter your test score and I will tell you the letter grade you earned: 88 [Enter] Your grade is B.

37 C++ Programming, Namiq Sultan37 Program 4-12 // This program uses independent if/else statements to assign a // letter grade (A, B, C, D, or F) to a numeric test score. // Do you think it will work? #include using namespace std; int main( ) { int testScore; char grade; cout << "Enter your test score and I will tell you\n"; cout << "the letter grade you earned: "; cin >> testScore;

38 C++ Programming, Namiq Sultan38 if (testScore < 60) grade = 'F'; if (testScore < 70) grade = 'D'; if (testScore < 80) grade = 'C'; if (testScore < 90) grade = 'B'; if (testScore <= 100) grade = 'A'; cout << "Your grade is " << grade << ".\n"; } exprn Statement(s) exprn Statement(s) exprn Statement(s) exprn Statement(s) T T T T F F F F

39 C++ Programming, Namiq Sultan39 Program Output with Example Input Enter your test score and I will tell you the letter grade you earned: 40 [Enter] Your grade is A.

40 C++ Programming, Namiq Sultan40 Program 4-13 //This program uses an if/else if statement to //assign a letter grade ( A, B, C, D, or F ) //to a numeric test score. #include using namespace std; int main() { int testScore; cout << "Enter your test score and I will tell you\n"; cout << "the letter grade you earned: "; cin >> testScore; if (testScore < 60) { cout << "Your grade is F.\n"; cout << "This is a failing grade. Better see your "; cout << "instructor.\n"; }

41 C++ Programming, Namiq Sultan41 else if (testScore < 70) { cout << "Your grade is D.\n"; cout << "This is below average. You should get "; cout << "tutoring.\n"; } else if (testScore < 80) { cout << "Your grade is C.\n"; cout << "This is average.\n"; } else if (testScore < 90) { cout << "Your grade is B.\n"; cout << "This is an above average grade.\n"; }

42 C++ Programming, Namiq Sultan42 Program Output with Example Input Enter your test score and I will tell you the letter grade you earned: 94 [Enter] Your grade is A. This is a superior grade. Good work! else if (testScore <= 100) { cout << "Your grade is A.\n"; cout << "This is a superior grade. Good work!\n"; }

43 C++ Programming, Namiq Sultan43 4.7Using a Trailing else A trailing else, placed at the end of an if/else if statement, provides default action when none of the if’s have true expressions

44 C++ Programming, Namiq Sultan44 Program 4-14 // This program uses an if/else if statement to assign a // letter grade (A, B, C, D, or F) to a numeric test score. // A trailing else has been added to catch test scores > 100. #include using namespace std; int main() { int testScore; cout << "Enter your test score and I will tell you\n"; cout << "the letter grade you earned: "; cin >> testScore;

45 C++ Programming, Namiq Sultan45 if (testScore < 60) { cout << "Your grade is F.\n"; cout << "This is a failing grade. Better see your "; cout << "instructor.\n"; } else if (testScore < 70) { cout << "Your grade is D.\n"; cout << "This is below average. You should get "; cout << "tutoring.\n"; }

46 C++ Programming, Namiq Sultan46 else if (testScore < 80) { cout << "Your grade is C.\n"; cout << "This is average.\n"; } else if (testScore < 90) { cout << "Your grade is B.\n"; cout << "This is an above average grade.\n"; }

47 C++ Programming, Namiq Sultan47 else if (testScore <= 100) { cout << "Your grade is A.\n"; cout << "This is a superior grade. Good work!\n"; } else // Default action { cout << testScore << " is an invalid score.\n"; cout << "Please enter scores no greater than 100.\n"; }

48 C++ Programming, Namiq Sultan48 Program Output with Example Input Enter your test score and I will tell you the letter grade you earned: 104 [Enter] 104 is an invalid score. Please enter scores no greater than 100.

49 C++ Programming, Namiq Sultan49 4.9 Nested if Statements A nested if statement is an if statement in the conditionally-executed code of another if statement.

50 C++ Programming, Namiq Sultan50 Program 4-16 // This program demonstrates the nested if statement. #include using namespace std; int main() { char employed, recentGrad; cout << "Answer the following questions\n"; cout << "with either Y for Yes or "; cout << "N for No.\n"; cout << "Are you employed? "; cin >> employed; cout << "Have you graduated from college "; cout << "in the past two years? "; cin >> recentGrad;

51 C++ Programming, Namiq Sultan51 if (employed == 'Y') { if (recentGrad == 'Y') // Nested if { cout << "You qualify for the special "; cout << "interest rate.\n"; }

52 C++ Programming, Namiq Sultan52 Program Output with Example Input Answer the following questions with either Y for Yes or N for No. Are you employed? Y[Enter] Have you graduated from college in the past two years? Y[Enter] You qualify for the special interest rate.

53 C++ Programming, Namiq Sultan53 Program Output with Other Example Input Answer the following questions with either Y for Yes or N for No. Are you employed? Y[Enter] Have you graduated from college in the past two years? N[Enter]

54 C++ Programming, Namiq Sultan54 4.10Logical Operators Logical operators connect two or more relational expressions into one, or reverse the logic of an expression.

55 C++ Programming, Namiq Sultan55 Table 4-6

56 C++ Programming, Namiq Sultan56 Table 4-7

57 C++ Programming, Namiq Sultan57 Program 4-18 // This program demonstrates the && logical operator. #include using namespace std; int main() { char employed, recentGrad; cout << "Answer the following questions\n"; cout << "with either Y for Yes or "; cout << "N for No.\n"; cout << "Are you employed? "; cin >> employed;

58 C++ Programming, Namiq Sultan58 cout << "Have you graduated from college "; cout << "in the past two years? "; cin >> recentGrad; if (employed == 'Y‘ && recentGrad == 'Y') // && Operator { cout << "You qualify for the special "; cout << "interest rate.\n"; } else { cout << "You must be employed and have \n"; cout << "graduated from college in the\n"; cout << "past two years to qualify.\n"; }

59 C++ Programming, Namiq Sultan59 Program Output with Example Input Answer the following questions with either Y for Yes or N for No. Are you employed? Y[Enter] Have you graduated from college in the past two years? N[Enter] You must be employed and have graduated from college in the past two years to qualify.

60 C++ Programming, Namiq Sultan60 Table 4-8

61 C++ Programming, Namiq Sultan61 Table 4-9

62 C++ Programming, Namiq Sultan62 Program 4-20 //This program asks the user for his annual income and //the number of years he has been employed at his current job. //The ! operator reverses the logic of the expression in the if/else statement. #include using namespace std; int main() { float income; int years; cout << "What is your annual income? "; cin >> income; cout << "How many years have you worked at " << "your current job? "; cin >> years; if (!(income >= 35000 || years > 5)) // Uses the ! Logical operator { cout << "You must earn at least $35,000 or have\n"; cout << "been employed for more than 5 years.\n"; } else cout << "You qualify.\n"; }

63 C++ Programming, Namiq Sultan63 Precedence of Logical Operators ! && ||

64 C++ Programming, Namiq Sultan64 4.11 Checking Numeric Ranges With Logical Operators Logical operators are effective for determining if a number is in or out of a range.

65 C++ Programming, Namiq Sultan65 4.15 The Conditional Operator You can use the conditional operator to create short expressions that work like if/else statements expression ? result if true : result if false;

66 C++ Programming, Namiq Sultan66 Program 4-29 // This program calculates a consultant's charges at $50 per hour, for a minimum of // 5 hours. ?: operator adjusts hours to 5 if less than 5 hours were worked. #include using namespace std; int main() { const float payRate = 50.0; float hours, charges; cout << "How many hours were worked? "; cin >> hours; hours = hours < 5 ? 5 : hours; charges = payRate * hours; cout << "The charges are $" << charges << endl; }

67 C++ Programming, Namiq Sultan67 Program Output with Example Input How many hours were worked? 10 [Enter] The charges are $500.00 Program Output with Example Input How many hours were worked? 2 [Enter] The charges are $250.00

68 C++ Programming, Namiq Sultan68 4.16The switch Statement The switch statement lets the value of a variable or expression determine where the program will branch to.

69 C++ Programming, Namiq Sultan69 Program 4-31 // The switch statement in this program tells the user // something he or she already knows: what they just entered! #include using namespace std; int main(void) { char choice; cout << "Enter A, B, or C: "; cin >> choice;

70 C++ Programming, Namiq Sultan70 switch (choice) { case 'A': cout << "You entered A.\n"; break; case 'B’: cout << "You entered B.\n"; break; case 'C’: cout << "You entered C.\n"; break; default: cout << "You did not enter A, B, or C!\n"; }

71 C++ Programming, Namiq Sultan71 Program Output with Example Input Enter A, B, or C: B [Enter] You entered B. Program Output with Different Example Input Enter a A, B, or C: F [Enter] You did not enter A, B, or C!

72 C++ Programming, Namiq Sultan72 Program 4-34 // The switch statement in this program uses the "fallthrough" // feature to catch both upper and lowercase letters entered // by the user. #include using namespace std; int main() { char feedGrade; cout << "Our dog food is available in three grades:\n"; cout << "A, B, and C. Which do you want pricing for? "; cin >> feedGrade;

73 C++ Programming, Namiq Sultan73 switch(feedGrade) { case 'a': case 'A':cout << "30 cents per pound.\n"; break; case 'b': case 'B':cout << "20 cents per pound.\n"; break; case 'c': case 'C':cout << "15 cents per pound.\n"; break; default:cout << "That is an invalid choice.\n"; }


Download ppt "C++ Programming, Namiq Sultan1 Chapter 4 Making Decisions Namiq Sultan University of Duhok Department of Electrical and Computer Engineerin Reference:"

Similar presentations


Ads by Google