chapter 4 making decisions n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Chapter 4 Making Decisions PowerPoint Presentation
Download Presentation
Chapter 4 Making Decisions

Loading in 2 Seconds...

play fullscreen
1 / 73

Chapter 4 Making Decisions - PowerPoint PPT Presentation


  • 96 Views
  • Uploaded on

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. 4.1 Relational Operators.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Chapter 4 Making Decisions' - judah-clayton


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
chapter 4 making decisions
Chapter 4 Making Decisions

Namiq Sultan

University of Duhok

Department of Electrical and Computer Engineerin

Reference: Starting Out with C++, Tony Gaddis, 2nd Ed.

C++ Programming, Namiq Sultan

4 1 relational operators
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.

C++ Programming, Namiq Sultan

table 4 1
Table 4-1

C++ Programming, Namiq Sultan

table 4 2
Table 4-2

C++ Programming, Namiq Sultan

the value of a relationship
The Value of a Relationship
  • Relational expressions are also know as a Boolean expression
  • Warning! The equality operator is two equal signs together

==

C++ Programming, Namiq Sultan

table 4 3 assume x is 10 and y is 7
Table 4-3 Assume x is 10 and y is 7

C++ Programming, Namiq Sultan

program 4 1
Program 4-1

// This program displays the values of true and falsestates.

#include <iostream>

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 OutputTrue is 1False is 0

C++ Programming, Namiq Sultan

4 2 the if statement
4.2 The if Statement
  • The if statement can cause other statements to execute only under certain conditions.

C++ Programming, Namiq Sultan

program 4 2
Program 4-2

// This program averages 3 test scores

#include <iostream>

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";

}

C++ Programming, Namiq Sultan

program output with example input
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!

C++ Programming, Namiq Sultan

table 4 5
Table 4-5

C++ Programming, Namiq Sultan

be careful with semicolons
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

False

True

Statement(s)

C++ Programming, Namiq Sultan

program 4 3
Program 4-3

// This program demonstrates how a misplaced semicolon

// prematurely terminates an if statement.

#include <iostream>

using namespace std;

int main()

{

intx = 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

C++ Programming, Namiq Sultan

programming style and the if statement
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.

C++ Programming, Namiq Sultan

and now back to truth
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.

C++ Programming, Namiq Sultan

slide16
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

C++ Programming, Namiq Sultan

program 4 5
Program 4-5

// This program averages 3 test scores. The if statement uses

// the = operator, but the == operator was intended.

#include <iostream>

using namespace std;

int main()

{

intscore1, score2, score3;

floataverage;

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";

}

C++ Programming, Namiq Sultan

slide18
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!

C++ Programming, Namiq Sultan

4 3 flags
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.

C++ Programming, Namiq Sultan

program 4 6
Program 4-6

// This program averages 3 test scores. It uses the variable highScore as a flag.

#include <iostream>

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";\

}

C++ Programming, Namiq Sultan

program 4 61
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!

C++ Programming, Namiq Sultan

4 4 expanding the if statement
4.4 Expanding the if Statement
  • The if statement can conditionally execute a block of statement enclosed in braces.

if (expression)

{

statement;

statement;

// Place as many statements here as necessary.

}

C++ Programming, Namiq Sultan

program 4 7
Program 4-7

// This program averages 3 test scores.

// It uses the variable highScore as a flag.

#include <iostream>

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

C++ Programming, Namiq Sultan

slide24
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";

}

}

C++ Programming, Namiq Sultan

program output with example input1
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

C++ Programming, Namiq Sultan

don t forget the braces
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.

C++ Programming, Namiq Sultan

4 5 the if else statement
4.5 The 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;

False

True

expression

Statement(s)

Statement(s)

C++ Programming, Namiq Sultan

program 4 9
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 isodd.

#include <iostream>

using namespace std;

int main()

{

intnumber;

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";

}

C++ Programming, Namiq Sultan

program output with example input2
Program Output with Example Input

Enter an integer and I will tell you if it

is odd or even. 17 [Enter]

17 is odd.

C++ Programming, Namiq Sultan

program 4 10
Program 4-10

// This program asks the user for two numbers, num1 andnum2.

// 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 nottake place.

#include <iostream>

using namespace std;

int main()

{

floatnum1, num2, quotient;

cout << "Enter a number: ";

cin >> num1;

cout << "Enter another number: ";

cin >> num2;

C++ Programming, Namiq Sultan

slide31
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";

}

}

C++ Programming, Namiq Sultan

program output
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.

C++ Programming, Namiq Sultan

4 6 the if else if construct
4.6 The 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;

elseif (expression)

statement or block of statements;

//

// put as many else it’s as needed here

//

elseif (expression)

statement or block of statements;

C++ Programming, Namiq Sultan

program 4 11
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 <iostream>

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;

C++ Programming, Namiq Sultan

slide35
if (testScore < 60)

grade = 'F';

elseif (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";

}

T

exprn

Statement(s)

F

T

exprn

Statement(s)

F

T

exprn

Statement(s)

F

T

exprn

Statement(s)

F

Statement(s)

C++ Programming, Namiq Sultan

program o utput with example input
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.

C++ Programming, Namiq Sultan

program 4 12
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 <iostream>

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;

C++ Programming, Namiq Sultan

slide38
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";

}

T

exprn

Statement(s)

F

T

exprn

Statement(s)

F

T

exprn

Statement(s)

F

T

exprn

Statement(s)

F

Statement(s)

C++ Programming, Namiq Sultan

program output with example input3
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.

C++ Programming, Namiq Sultan

program 4 13
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<iostream>

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";

}

C++ Programming, Namiq Sultan

slide41
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";

}

C++ Programming, Namiq Sultan

program output with example input4

else if (testScore <= 100)

  • {
      • cout << "Your grade is A.\n";
      • cout << "This is a superior grade. Good work!\n";
  • }
  • }
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!

C++ Programming, Namiq Sultan

4 7 using a trailing else
4.7 Using 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

C++ Programming, Namiq Sultan

program 4 14
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 <iostream>

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;

C++ Programming, Namiq Sultan

slide45
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";

}

C++ Programming, Namiq Sultan

slide46
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";

}

C++ Programming, Namiq Sultan

slide47
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";

}

}

C++ Programming, Namiq Sultan

program output with example input5
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.

C++ Programming, Namiq Sultan

4 9 nested if statements
4.9 Nested if Statements
  • A nested if statement is an if statement in the conditionally-executed code of another if statement.

C++ Programming, Namiq Sultan

program 4 16
Program 4-16

// This program demonstrates the nested if statement.

#include <iostream>

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;

C++ Programming, Namiq Sultan

slide51
if (employed == 'Y')

{

if (recentGrad == 'Y')// Nested if

{

cout << "You qualify for the special ";

cout << "interest rate.\n";

}

}

}

C++ Programming, Namiq Sultan

program output with example input6
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.

C++ Programming, Namiq Sultan

program output with other example input
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]

C++ Programming, Namiq Sultan

4 10 logical operators
4.10 Logical Operators
  • Logical operators connect two or more relational expressions into one, or reverse the logic of an expression.

C++ Programming, Namiq Sultan

table 4 6
Table 4-6

C++ Programming, Namiq Sultan

table 4 7
Table 4-7

C++ Programming, Namiq Sultan

program 4 18
Program 4-18

// This program demonstrates the && logical operator.

#include <iostream>

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;

C++ Programming, Namiq Sultan

slide58
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";

}

}

C++ Programming, Namiq Sultan

program output with example input7
Program Output with Example Input

Answer the following questionswith either Y for Yes orN for No.Are you employed? Y[Enter]Have you graduated from college in the past two years? N[Enter]You must be employed and havegraduated from college in thepast two years to qualify.

C++ Programming, Namiq Sultan

table 4 8
Table 4-8

C++ Programming, Namiq Sultan

table 4 9
Table 4-9

C++ Programming, Namiq Sultan

program 4 20
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 <iostream>

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";

}

C++ Programming, Namiq Sultan

precedence of logical operators
Precedence of Logical Operators

!

&&

||

C++ Programming, Namiq Sultan

4 11 checking numeric ranges with logical operators
4.11 Checking Numeric Ranges With Logical Operators
  • Logical operators are effective for determining if a number is in or out of a range.

C++ Programming, Namiq Sultan

4 15 the conditional operator
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;

C++ Programming, Namiq Sultan

program 4 29
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 <iostream>

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;

}

C++ Programming, Namiq Sultan

program output with example input8
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

C++ Programming, Namiq Sultan

4 16 the switch statement
4.16 The switch Statement
  • The switch statement lets the value of a variable or expression determine where the program will branch to.

C++ Programming, Namiq Sultan

program 4 31
Program 4-31

// The switch statement in this program tells the user

// something he or she already knows: what they just entered!

#include <iostream>

using namespace std;

int main(void)

{

char choice;

cout << "Enter A, B, or C: ";

cin >> choice;

C++ Programming, Namiq Sultan

slide70
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";

}

}

C++ Programming, Namiq Sultan

program output with example input9
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!

C++ Programming, Namiq Sultan

program 4 34
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 <iostream>

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;

C++ Programming, Namiq Sultan

slide73
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";

}

}

C++ Programming, Namiq Sultan