Presentation is loading. Please wait.

Presentation is loading. Please wait.

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)

Similar presentations


Presentation on theme: "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)"— Presentation transcript:

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.


Download ppt "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)"

Similar presentations


Ads by Google