1 cs 1430: programming in c++. 2 if statement if (cond) statement //next statement if (cond) {...
TRANSCRIPT
2
IF Statement
if (cond) statement
//Next statement
if (cond){ statement1 statement2 …}
//Next statement
3
IF - Else
if (cond) statement1else statement2
//Next statement
if (cond){ statement11 statement12 ...}else{ statement21 statement22 ...}
//Next statement
4
IF – Else IF – Else
if (cond1)
statement block1
else if (cond2)
statement block2
else
statement block3
//Next statement
5
Exampleint score; char grade;
cin >> score;
if (score >= 90) grade = 'A'; else if (score >= 80) grade = 'B'; else if (score >= 70) grade = 'C'; else if (score >= 60) grade = 'D'; else // NO if here! grade = 'F';
cout << “Your Grade: ” << grade;
// The order is crucial: semantics!
6
Different Orderint score; char grade;
cin >> score;
if (score >= 80) grade = ‘B'; else if (score >= 90) grade = ‘A'; else if (score >= 70) grade = 'C'; else if (score >= 60) grade = 'D'; else // NO if here! grade = 'F';
cout << “Your Grade: ” << grade;
// You never get ‘A’!
7
Different Way
if (score >= 80 && score < 90) grade = ‘B’;
if (score >= 90) grade = ‘A’;
if (score >= 70 && score < 80) grade = ‘C’;
if (score >= 60 && score < 70) grade = ‘D’;
if (score < 60) grade = ‘F’;
// Is it correct?// Can the statements be in different order?// Which is better?// if – else if – else
if (score >= 90) grade = 'A'; else if (score >= 80) grade = 'B'; else if (score >= 70) grade = 'C'; else if (score >= 60) grade = 'D'; else // NO if here! grade = 'F';
// Do it this way!
// Magic numbers!
8
// Declare constants to avoid magic numbersconst float MAX_SCORE = 100.0; //change to 100 for finalconst float MIN_SCORE = 0.0; const float A_PERNT = 0.9; const float B_PERNT = 0.8; const float C_PERNT = 0.7; const float D_PERNT = 0.6; const char GRADE_A = ‘A’;const char GRADE_B = ‘B’;const char GRADE_C = ‘C’;const char GRADE_D = ‘D’;const char GRADE_F = ‘F’;
if (score >= MAX_SCORE * A_PERNT) grade = GRADE_A; else if (score >= MAX_SCORE * B_PERNT) grade = GRADE_B; else if (score >= MAX_SCORE * C_PERNT) grade = GRADE_C; else if (score >= MAX_SCORE * D_PERNT) grade = GRADE_D; else grade = GRADE_F;
9
char ch1, ch2, ch3; cin >> ch1 >> ch2 >> ch3;
if (ch1 == ch2) if (ch2 == ch3) cout << "All characters are the same."; else cout << "First two are the same.";
if (ch1 == ch2) if (ch2 == ch3) cout << "All characters are the same."; else cout << "First two are NOT the same.";
// Do we get “NOT the same” when ch1 != ch2?// NO!// else is paired with the last if// Indentation does not matter
Nested IF
10
// Use braces to change the pairingif (ch1 == ch2) { if (ch2 == ch3) cout << "All initials are the same."; else cout << "First two are the same."; }
if (ch1 == ch2){ if (ch2 == ch3) cout << "All initials are the same."; }else cout << "First two are NOT the same.";
11
if (ch1 == ch2) { if (ch2 == ch3) cout << "All initials are the same."; else cout << "First two are the same."; }else { if (ch2 == ch3) cout << "Last two are the same."; else if (ch1 == ch3) cout << "First and last are the same."; else cout << "All initials are different."; }
// Next statement
12
char ch1, ch2, ch3;
cin >> ch1 >> ch2 >> ch3;
if (ch1 == ch2 && ch2 == ch3) cout << "All characters are the same.";
if (ch1 == ch2 || ch2 == ch3 || ch1 == ch3) cout << “At least two characters are the same.";
if (ch1 != ch2 && ch2 != ch3 && ch1 != ch3) cout << “The three characters are different.";
if (ch1 != ch2 || ch2 != ch3 || ch1 != ch3) cout << “At least two characters are different.";
if (ch1 && ch2 == ch3)// NO!
if (ch1 == ch3) && (ch2 == ch3)// NO!
if ((ch1 == ch3) && (ch2 == ch3))// Yes!
if (ch1 || ch2 == ch3)// NO!
if (ch1 == ch3 || ch2 == ch3)// YES!
Multiple Conditions
13
Arithmetic Expression and Logical (Boolean) Expression
if (num2 == 0)
cout << endl << "Cannot divide by zero!";
else
{
quotient = float(num1) / num2;
cout << endl
<< "The quotient is " << quotient;
}
14
Truth Table
Cond1 Cond2 Cond1 && Cond2 Cond1 || Cond2 !Cond1
T
F
F
F
T T
T F
F T
F F
T
T
T
F
F
F
T
T
Value of Arithmetic Expression : a numberValue of Logical Expression : true or false
15
Evaluate Logical Expressionint num1 = 5, num2 = 7, num3 = 12;
Logical Expression Value
num1 + num2 > num3 ?(num1 + num2) > num3
(num3 > num2) && (num1 % num2 == 2) ?
(num3 <= num2) || (num1 % num2 != 2) ?
!((num3 > num2) && (num1 % num2 == 2)) ?
(!(num3 > num2) || !(num1 % num2 == 2)) ?
16
Evaluate Logical Expression
Logical Expression Same As This?
!(cond1 && cond2) (!cond1 || !cond2)
!(cond1 || cond2) (!cond1 && !cond2)
DeMorgan’s Law
17
The Area of a Circle
The Area of a Circle
A = πr2
const float PI = 3.14;
float area, radius;
area = PI * radius * radius;
area = PI * pow(radius, 2);
18
The Area of a Circle
const float PI = 3.14;
float area, radius;
cin >> radius;
// Checking input
if (radius > 0)
{
area = PI * radius * radius;
cout << “The area is ” << area << ‘.’;
}
else
cout << “Radius is zero or negative.”;
19
Exampleint inputValue;
float result;
char op;
// ‘c’ for cube, ‘s’ for sqare, ‘q’ for sqare root, and any other chars are invalid
cout << “Enter an integer and an operator: ”;
cin >> inputValue >> operator;
// Checking input
if (op == ‘c’ || op == ‘C’){
}
else if (op == ‘S’ || op == ‘s’){
}
else if (op == ‘q’ || op == ‘Q’){
}
else
cout << “Invalid operator.”;
20
. . .
if (op == ‘c’ || op == ‘C’)
{
result = pow(inputValue, 3);
cout << “The cube of ” << inputValue << “ is ” << result << ‘.’;
}
else if (op == ‘S’ || op == ‘s’)
{
result = pow(inputValue, 2);
cout << “The sqare of ” << inputValue << “ is ” << result << ‘.’;
}
else if (op == ‘q’ || op == ‘Q’)
{
if (inputValue < 0)
cout << “The input value is negative!”;
else
{
result = sqrt(inputValue);
cout << “The sqare root of ” << inputValue << “ is ” << result << ‘.’;
}
}
else
cout << “Invalid operator.”;
21
int main()
{
int inputValue;
float result;
char op;
cout << “Enter an integer and an operator: ”;
cin >> inputValue >> operator;
if (op == ‘c’ || op == ‘C’)
{
result = pow(inputValue, 3);
cout << “The cube of ” << inputValue << “ is ” << result << ‘.’;
}
else if (op == ‘S’ || op == ‘s’)
{
result = pow(inputValue, 2);
cout << “The sqare of ” << inputValue << “ is ” << result << ‘.’;
}
else if (op == ‘q’ || op == ‘Q’)
{
if (inputValue < 0)
cout << “The input value is negative!”;
else
{
result = sqrt(inputValue);
cout << “The sqare root of ” << inputValue << “ is ” << result << ‘.’;
}
}
else
cout << “Invalid operator.”;
return 0;
}
22
int main()
{
int inputValue;
float result;
string op;
cout << “Enter an integer and an operator: ”;
cin >> inputValue >> operator;
if (op == “cube”)
{
result = pow(inputValue, 3);
cout << “The cube of ” << inputValue << “ is ” << result << ‘.’;
}
else if (op == “square”)
{
result = pow(inputValue, 2);
cout << “The sqare of ” << inputValue << “ is ” << result << ‘.’;
}
else if (op == “root”)
{
if (inputValue < 0)
cout << “The input value is negative!”;
else
{
result = sqrt(inputValue);
cout << “The sqare root of ” << inputValue << “ is ” << result << ‘.’;
}
}
else
cout << “Invalid operator.”;
return 0;
}
23
int main()
{
int inputValue;
float result;
string op;
cout << “Enter an integer and an operator: ”;
cin >> inputValue >> operator;
if (op == “cube”)
{
result = pow(inputValue, CUBE);
cout << “The cube of ” << inputValue << “ is ” << result << ‘.’;
}
else if (op == “square”)
{
result = pow(inputValue, SQUARE);
cout << “The sqare of ” << inputValue << “ is ” << result << ‘.’;
}
else if (op == “root”)
{
if (inputValue < 0)
cout << “The input value is negative!”;
else
{
result = sqrt(inputValue);
cout << “The sqare root of ” << inputValue << “ is ” << result << ‘.’;
}
}
else
cout << “Invalid operator.”;
return 0;
}
24
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main()
{
int inputValue;
float result;
string op;
cout << “Enter an integer and an operator: ”;
cin >> inputValue >> operator;
if (op == “cube”)
{
}
else if (op == “square”)
{
}
else if (op == “root”)
{
}
else
cout << “Invalid operator.”;
return 0;
}
26
ScheduleQuiz2-1 (1 point)
Due today by 10 pm
Lab1 (3 points)
Grace Time: Tuesday by 5 pm
Quiz2-2 (2 Points)
Wednesday in Class
Prog 1
Due Next Monday
Grader
• You can submit to the grader multiple times.
• We grade your last submission.
• After you complete Labs before the due/grace time, DO NOT submit it again after the due/grace time.
• Keep the email with 0 differences.
• Email me if you did it by accident.
27
Lab Access• Room 009, 110 and 206 in Ullrich
• Weekdays:– 7 am – 11 pm
• Weekends– 9 am – 10 pm
• West side door
• Scan your ID card
• Report to me and ITS Helpdesk if not working
28