Lecture 3 - Suraj @ LUMS

Download Report

Transcript Lecture 3 - Suraj @ LUMS

Friday, December 08, 2006
“Experience is something you
don't get until just after you
need it.”
- Olivier
 Numeric data types
Declarations and Initialization
double dx ;
dx=3.5 ;
OR
double dx=3.5 ;
Declarations and Initialization
//(comma separated)
double a, b, c=5.6, d ;
double r1,
r2,
r3; //(white spaces ignored)
/*All declarations and
statements must end with
semicolon ; */
int big=980000;
short small;
cout<<"big="<<big<<endl;
small=big; //don't do this
cout<<"small="<<small<<endl;
int big=980000;
short small;
cout<<"big="<<big<<endl;
small=big; //don't do this
cout<<"small="<<small<<endl;
big=980000
small=-3040
short small = 980000;
cout << small << endl;
-3040
Character Data

Each character corresponds to a binary code

Most commonly use binary codes are ASCII
(American Standard Code for Information
Interchange)
Character
ASCII Code Integer Equivalent
%
0100101
37
3
0110011
51
A
1000001
65
a
1100001
97
b
1100010
98
c
1100011
99
Arithmetic Operators





Addition
Subtraction
Multiplication
Division
Modulus
+
*
/
%
Arithmetic Operators





Addition
+
Subtraction
Multiplication
*
Division
/
Modulus
%
 Modulus returns remainder of division between two
integers
 % cannot be used on float or double

Example
5 % 2 evaluates to ?
10 % 2 evaluates to ?

Example
5 % 2 evaluates to 1
10 % 2 evaluates to 0
Arithmetic Operators
 Division between two integers results in an
integer.
 The result is truncated, not rounded
Modulo operation
17 / 5 evaluates to
17 % 5 evaluates to
Modulo operation
17 / 5 evaluates to 3.
17 % 5 evaluates to 2.
 Example:
5/3 evaluates to ?
3/6 evaluates to ?
 Example:
5/3 evaluates to 1
3/6 evaluates to 0
Priority of Operators
1 Parentheses
2 Unary operators
Inner most first
Right to left
(+ -)
3 Binary operators
Left to right
(* / %)
4 Binary operators
(+ -)
Left to right
Precedence
 Order of mathematical operations is important.
Examples:
(3+2)*4 = 5*4 = 20
3+(2*4) = 3 + 8 = 11
 * and / evaluated before + and Example: 3+2*4 evaluated as 3+(2*4)
Precedence
 If precedence is equal, then evaluate from left to
right.
Examples:
3+2+5 = 5 + 5 = 10
3*2/5 = 6/5 = 1
 Parentheses enforce evaluation order
Example: (3+2)*4 = 5*4 = 20
Unary operators: +,  Unary operators: +, -
-3, +17 allowed
Example: 4*(-3) = -12
Assignment Operators
= assignment operator
Compound Assignment Operators
operator
example
equivalent statement
+=
-=
*=
/=
x+=2;
x-=2;
x*=y;
x/=y;
x=x+2;
x=x-2;
x=x*y;
x=x/y;
Example
x = 4;
x *= 5;
Example
x = 4;
x *= 5; // x = 20
Arithmetic Operators
 unary operators
• auto increment ++
– post increment x++;
– pre increment ++x;
• auto decrement - – post decrement x- -;
– pre decrement - -x;
x++ is executed after it is used
x = 7;
y = x++;
++x is also equivalent to x = x+1
++x executed before it is used
x = 7;
y = ++x;
--x is equivalent to x = x-1
-- works just like ++, but with subtraction
instead of addition
x++ is executed after it is used
x = 7;
y = x++;
// x = 8, y = 7
++x is also equivalent to x = x+1
++x executed before it is used
x = 7;
y = ++x;
// x = 8, y = 8
--x is equivalent to x = x-1
-- works just like ++, but with subtraction instead of
addition
Shortcuts
 n++
equivalent to n = n + 1
read as "add 1 to n"
 n-equivalent to n = n - 1
read as "subtract 1 from n"
 s += n
equivalent to s = s + n
read as "add n to s"
 s -= n
equivalent to s = s - n
read as "subtract n from s