Review Question What kind error is it when I try to multiply a number in a program by 1000 and store in a variable, but the variable is too small for the number to fit? Old Odometer problem.
Arithmetic Expressions 02/04/11
Programs do Calculations Example in cs117/ch2/circle.cpp
Arithmetic Operators Algebra +, - unary x, ÷ +, - binary x n C++ +, - unary *, /, % +, - binary no exponent
Precedence 1. Parenthesis 2. Unary +, - 3. *, /, % 4. Binary +, -
Values of the Following? 50%20 = 20.0 – 6.0/ = 20.0 – 6.0/( ) = 5 + -a * 14= ?,assume a = -2
Associativity Left to right x + y + z Right to left --z x = y = 0;
No Implied Multiplication x = 2(y + z); //Error x = 2*(y + z); //Ok
Assignment Operator = variable = expression expression on right evaluated result stored in variable int x, y; x = 9*(7+4); y = x + 20;
Example
int operations int i = 5; int j = 3; int k; k = i / j; //Result of divide truncated k = i % j; Result int when operands are int
Careful with Integer Fractions
Fraction -- What’s Wrong?
Implicit Type Conversion Assume variables int k = 5, m = 4, n ; double x = 1.5, y = 2.1, z; Type automatically converted n = x; z = m;
Implicit Type Conversion Assume variables int k = 5, m = 4, n ; double x = 1.5, y = 2.1, z; z = k /m; //Result of op. Same as Operands y = m + 1.5; // mixed types
Explicit Type Conversion
int kids, families; double average; kids = 21; families = 8; average = (double)kids/families;
Next Additional Operations – Functions Read Chapter 3 for Wednesday
Exercises for Study p. 55, #1,3, 4