Summary Two basic concepts: variables and assignments Basic types: int, double, char (string), … Some C++ practical issues: division rule, operator precedence
Expression and statement An expression has a value which is the result of some operation(s) on the associated operands. 4, x-y, 2-a-(b*c) A statement is a sentence that acts as a command it does not have a value it always ends in a ‘;’ cin >> x; x = 5; int x;
Boolean type and expressions
Boolean type: bool C++ contains a type (new!) named bool which can have one of two values true (corresponding to non-zero value) false (corresponding to zero value) Boolean operators Logical and: && Logical or: || Logical not: ! Examples bool P = true; bool Q = false; bool R = true; bool S = P && Q; bool T = (!Q) || R; bool U = !(R && !Q);
Boolean expressions Arithmetic expression: use arithmetic operators +,-,*,/, to produce a number as the final result A Boolean expression has one of the two values: true or false use relational operators <,>, ==, … and boolean operators AND (&&), OR (||), NOT (!)
Using Relational Operators Relational operators are used to compare two values Math C++ Plain English = == equals [example: if(a==b) ] [ (a=b) means put the value of b into a ] < < less than <= less than or equal to > > greater than >= greater than or equal to != not equal to
Examples: numberOfStudents < 200 10 > 20 20 * j == 10 + i
Using Boolean (logical) operators Boolean operators can be used to form more complex conditional expressions Logical AND operator && Logical OR operator || Logical NOT operator ! Examples: (x>5) && (x<10) (x>10) || (x<5) !(x>5) Warning! & and | are also operators
Operator Precedence Answer: Which comes first? * / % + - * / % + - < <= >= > == != = Answer:
Summary of Operator Precedence Precedence of operators (from highest to lowest) Parentheses ( … ) Unary operators ! Multiplicative operators * / % Additive operators + - Relational ordering < <= >= > Relational equality == != Logical and && Logical or || Assignment = arithmetic relational logical
Example: 5 != 6 || 7 <= 3 (5 !=6) || (7 <= 3) 5 * 15 + 4 == 13 && 12 < 19 || !false == 5 < 24
Flow control
Introduction Three program structures or constructs: Sequence Statements in the given order Conditional statement (branching) Chooses between two (or more) sequences depending on some condition if <condition exists> { <do P> } else { <do Q> Iteration statement (looping) repetitively execute a given sequence while <condition exists> {
Structured programming Any program can be written as a sequence of three basic program structures!!! 1. sequences, 2. conditionals, 3. and iterations Program Structure 1 Program Structure 3 Program Structure 1 Program Structure 2
The fundamental conditional if-else Statement Choose between two alternative actions depending on a test (on the values of variables). Expression Action1 Action2 true false Syntax if (Expression) Action1 else Action2 If Expression is true then execute Action1 otherwise execute Action2 Example if(v == 0) cout << "v is 0"; else cout << "v is not 0";
It’s common in everyday life … ? if <it's sunny>{ <go to beach with sun block> } else{ <go to beach with umbrella>
Example: Absolute Value (1st ) // program to read number & print its absolute value #include <iostream> using namespace std; int main(){ int value; int absvalue; cout << "Enter integer: "; cin >> value; if (value < 0) absvalue = -value; else absvalue = value; cout << "The absolute value is " << absvalue << endl; return 0; }
When the action is more than one statement … Put multiple action statements within braces if <it's raining> { <take umbrella> <wear raincoat> } else { <take sunbathing stuff>
Example: Absolute Value (2nd) // program to read number & print its absolute value #include <iostream> using namespace std; int main(){ int value; int absvalue; // absolute value cout << "Enter integer: "; cin >> value; if (value < 0) { absvalue = -value; cout << "The input value is negative and its absolute value is " << absvalue << endl; } else { absvalue = value; cout << "The input value is positive and its absolute value is " << absvalue << endl; return 0;
Summary of the conditional if-else Statement if (cond1) B else C D A A B or C D D =
Nested if-else Statements Nested means that one complete statement is inside another if cond1 { A; if cond2 { B; } else { C D
Example double score; cin >> score; if(score >= 90.0) cout << "Grade = A" << endl; else if(score >= 80.0) cout << "Grade = B" << endl; else if(score >= 70.0) cout << "Grade = C" << endl; else if(score >= 60.0) cout << "Grade = D" << endl; else cout << "Grade = F" << endl;