Download presentation
Presentation is loading. Please wait.
Published byGinger Summers Modified over 9 years ago
1
What is the Result and Type of the Following Expressions? int x=2, y=15;double u=2.0,v=15.0; -xx+yx-y x*vy / xx/yy%xx%y u*vu/vv/uu%v x * u(x+y)*uu /(x-x) x++u++ u = --xu = x-- u *= ++x;v /= x;
2
Types are these constants legal?.5 5.E 0.5e30.5E-30.5E-3.5 ’a’’%’’Ab’”Ab” are these variable names legal? MyTotalMy_Total __MyTotal My Total what does this mean? int mytotal=0;int yourtotal(1); what would be stored in myvar ? int myvar; myvar=2.56; what would be stored in yourvar ? double yourvar; yourvar=5/2;
3
Logical Expressions, IF
4
Boolean Algebra logical expressions have one of two values - true or false a rectangle has three sides. the instructor has a pleasant smile the branch of mathematics that deals with this type of logic is called Boolean algebra developed by the British mathematician George Boole in the 19th century C++ makes extensive use of Boolean algebra in the form of logical expressions; what is an expression again? three key logical operators in C++: && - logical “and” || - logical “or” ! - logical “not”
5
Boolean Algebra truth tables Lists all combinations of operand values and the result of the operation for each combination truth table for && (logical “and’) PQ P && Q False FalseFalse False TrueFalse True FalseFalse True TrueTrue
6
Boolean Algebra truth table for || (logical “or”) PQ P || Q False FalseFalse False TrueTrue True FalseTrue True TrueTrue
7
Boolean Algebra truth table for ! (logical “not”) P! PP! P False True True False
8
Boolean Algebra can create complex logical expressions by combining simple logical expressions example ! (P && Q) a truth table can be used to determine when a logical expression is true note that & and | are also legal operators, make sure to use the correct ones PQ P && Q ! (P && Q) False FalseFalseTrue False TrueFalseTrue True FalseFalseTrue True TrueTrueFalse
9
Examples of Logical Expressions bool P = true; bool Q = false; bool R = true; bool S = P && Q; bool T = P && !Q bool U = !Q || R; bool V = P || !Q || !R; bool W = P && Q && !R; bool X = Q || (P && R); bool Y = !(R && !Q); bool Z = !(P && Q && R);
10
Relational Operators equality operators == note the two equal signs != examples int i = 32; int k = 45; bool q = i == k; bool r = i != k;
11
Relational Operators ordering operators < > >=( ) <=( ) examples int i = 5; int k = 12; bool p = i < 10; bool q = k > i; bool r = i >= k; bool s = k <= 12;
12
Operator Precedence Expanded precedence of operators (from highest to lowest) () Unary + - ! * / % + - > = >= != == && || =
13
Examples of Logical Expressions int a = 5;int b = 10int c = 20; bool d = a b; bool f = (a > b) || (b < c ); bool g = (a > b) && (b < c ); bool h = !(a < b);bool i = !(a==b); bool j = 2*a == b;bool k = (a+b) >= c; bool l = !((a+b) != c); bool m = (a+b) == (c-a); bool n = (a+b) >= (c-a); int o=a; int p=o=b; what is the outcome of this operation? bool q=true;q = d = false;
14
Operator Precedence Revisited same or different? (a*b)+ca*b + c a*(b+c)a*b + c (a+b) > ca + b > c a+(b>c)a + b > c (a > b) == (b > c)a > b == b > c (a == b) > (b == c)a == b > b == c (a != b) && (c <= d)a != b && c <= d (a > b) && (c || d)a > b && c || d (a = b) && ca = b && c
15
Conditional Constructs provide ability to control whether a statement is executed two constructs if -statement –if –if-else –if-else-if switch -statement
16
Blocks and Local Variables a list of statements enclosed in curly brackets is called a block a block may be placed anywhere a statement can be placed (note the placement of brackets: if ((saleType == ’W’) || (saleType == ’w’)) { total = price * number; } a variable can be declared and used within block, such avariable is local to the block and does not exist outside of it else if ((saleType == ’R’) || (saleType == ’R’)){ double subtotal; subtotal = price * number; total = subtotal + subtotal * TAX_RATE; } scope of a variable – area in the program where a variable can be used what is the scope of a variable local to a block? pitfall: a local variable is accessed outside of the block
17
The Basic If-Statement syntax if ( expression ) action if the expression is true then execute action action is either a single statement or a block example 1: if (value > 0) value =0; example 2: if (value < 0) { value = -value; ++i; } expression action truefalse
18
Sorting Two Numbers cout << "Enter two integers: "; int value1; int value2; cin >> value1 >> value2; if (value1 > value2) { int tmp = value1; value1 = value2; value2 = tmp; } cout << "The input in sorted order: " << value1 << " " << value2 << endl; programming idiom – a common way of accomplishing a simple task: swapping values of two variables using a third is an idiom
19
The If-Else Statement syntax if ( expression ) action1 else action2 if expression is true then execute action1 otherwise execute action2 if (v == 0) cout << "v is 0"; else cout << "v is not 0"; expression action1 action2 true false
20
Selection it is often the case that depending upon the value of an expression we want to perform a particular action two major ways of accomplishing this multiway if-statement –if-else statements “glued” together switch statement
21
Multiway If-Statement example int vclass; cout << "Enter the vehicle class: "; cin >> vclass; if (vclass == 1) cout << ”Passenger car”; else if (vclass == 2) cout << ”Bus”; else if (vclass == 3) cout << ”Truck”; else cout << ch << ” Unknown vehicle class!”;
22
Switch Statement syntax switch ( expression ) { case constant : statements break; case constant : statements default: statements }
23
Switch Example 1 int vclass; cout << "Enter the vehicle class: "; cin >> vclass; switch (vclass){ case 1: cout << "Passenger car"; break; case 2: cout << "Bus"; break; default: cout << "Unknown vehicle class! "; break; // unnecessary but used for consistency }
24
cout << "Enter simple expression: "; int Left; int Right; char Operator; cin >> Left >> Operator >> Right; cout << Left << " " << Operator << " " << Right << " = "; switch (Operator) { case '+' : cout << Left + Right << endl; break; case '-' : cout << Left - Right << endl; break; case '*' : cout << Left * Right << endl; break; case '/' : cout << Left / Right << endl; break; case '%' : cout << Left % Right << endl; break; default: cout << "Illegal operation" << endl; } Switch Example 2
25
Conditional Assignment an abbreviated form of branching construct (or expanded assignment?) - conditional assignment variable = expression ? true-expression : false-expression ; variable is assigned the value of true-expression if expression evaluates to true and the value of false-expression otherwise what branching construct is this assignment equivalent to? example: int i = j>0 ? j : -j; program that calculates the largest number ( of two) int main() { int n1, n2; cin >> n1 >> n2; int max = n1 > n2 ? n1 : n2; cout << ”maximum is ” << max << endl; } conditional assignment is a tertiary operator
26
Named Constants using number constants can be troublesome: 9.8 does not give a hint as whether it is a tax rate, acceleration of gravity, or what. number constants are hard to modify if spread all over the program named constant provides a name to a constant: const int WINDOW_COUNT = 5; const double TAX_RATE = 9.8; constants are usually declared at the beginning of the program. capital letters are usually used to give the programmer a hint that this is a constant when he encounters it in the program note to C programmers: #define for constants is completely replaced by const in C++; in general, #define should not be used in C++; there are better versions for each of its uses in C++.
27
Debugging and Tracing Programs specially compiled executables leave information from the original source file: names of variables and source lines this allows program tracing – suspending program execution at specific source lines and executing the program one source line at a time variable watching – observing values stored in source program variables Setting breakpoints i.e. lines in the source program where execution is to be suspended.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.