0% found this document useful (0 votes)
9 views81 pages

L10-Operators and Expressions in C++

The document provides an overview of operators in C++, categorizing them into arithmetic, increment/decrement, relational, logical, conditional, and other operators. It explains the functionality and usage of various operators, including examples for clarity. Additionally, it discusses operator precedence and the formation of expressions in C++.

Uploaded by

maaniasiejustina
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views81 pages

L10-Operators and Expressions in C++

The document provides an overview of operators in C++, categorizing them into arithmetic, increment/decrement, relational, logical, conditional, and other operators. It explains the functionality and usage of various operators, including examples for clarity. Additionally, it discusses operator precedence and the formation of expressions in C++.

Uploaded by

maaniasiejustina
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 81

OPERATORS

The operations (specific task) are


represented by operators and the
objects of the operation(s) are
referred to as operands.
OPERATORS
• Of the rich set of operators c++
provides here we shall learn some.
They are:--
1. Arithmetic operators
2. Increment/decrement operators
3. Relational operators
4. Logical operators
5. Conditional operators
6. Some other operators
1) ARITHMETIC OPERATORS
C++ provides operators for five (5)
basic arithmetic operations :-
1.Addition (+)
2.Subtraction (-)
3.Multiplication (*)
4.Division (/)
5.Remainder (%)
ARITHMETIC OPERATORS
NOTE: Each of these is a binary
operator i.e., it requires two values to
(operands) to calculate a final answer.
But there are two unary
arithmetic operators (that requires
one operand or value) viz.
Unary +
Unary -
UNARY OPERATORS
Operators that act on one
operand are referred to as unary
operators.
UNARY +
The operator unary ‘+’
precedes an operand. The operand (the
value on which the operator operates) of
the unary + operator must have
arithmetic or pointer type and the result
is the value of the argument.
For ex:-
If a=5 then +a means 5.
If a=0then +a means 0.
If a=-4 then +a means -4.
UNARY -
The operator unary ‘–’ precedes an
operand. The operand of an unary –
operator must have arithmetic type and
the result is the negation of its
operand’s value.
For ex:-If a=5 then -a means -5.
If a=0then -a means 0 (there is no
quantity mnown as –0).
If a=-4 then a means 4.
This operator reverses the sign of the
operand’s value.
BINARY OPERATORS
Operators that act upon two
operands are referred to as binary
operators.

Note :The operands of a binary


operator are distinguished as the
left or right operand. Together, the
operator and its operands
constitute an expression.
ADDITION OPERATOR +
• The arithmetic binary operator + adds
values of its operands and the result is
the sum of the values of its two
operands.
• For ex:-
• 4+20 results in 24.
• a+5(a=2) results in 7.
• a+b(a=4, b=6) results in 10.
• Its operands may be integer or float type.
SUBTRACTION OPERATOR -
• The - operator subtracts the second
operand from first operand. For ex:-
• 14-3 results in 11.
• a-b(a=10, b=5) results in 5.
• The operands may be integer or float
types.
MULTIPLICATION
OPERATOR *
• The * operator multiplies the values
of its operands. For ex :--
• 3*3results in 12.
• b*8 (b=2) results in 16.
• a*b (a=5, b=10) results in 50.
• The operand may be integer or float
types.
DIVISION OPERATOR /
• The / operator divides its first
operand by the second.
• For ex:--
• 100/5 evaluates to 20.
• a/2 (a=16) evaluates to 8.
• a/b (a=125, b= 25) results in 5.
• The operands may be integer, float
or double types.
MODULUS OPERATOR %
• The % operator finds the modulus of
the modulus of the first operand
relative to the second. That is it
produces remainder of dividing the
first by the second operand.
• For ex:--
• 19%6 results in1.
• Operands must be integer types.
INCREMENT/DECREMENT
OPERATORS(++, --)
The c++ name itself is influenced by
the increment operator ++. The
operator ++ adds 1 to its operand , and
– subtracts one.
In other words,
a=a+1; is same as ++a; or a++;
and
a=a-1; is same as
--a; or a--;
INCREMENT/DECREMENT
OPERATORS(++, --)
Both the increment and
decrement operators come in two
versions viz.
1.Prefix version
2.Postfix version

Though both of them have same


effect on the operand, but they differ
when they take place in an expression.
PREFIX VERSION
• When an increment or decrement
operator precedes an operand we
refer to it as prefix version (of the
respective increment/decrement
operator).
• When c++ encounters a prefix version
it performs the increment/decrement
operation before using the value of the
operand.
EXAMPLE
• For ex:-
• Sum=sum+(++count);
• Will take place in the following fashion:
• (assume that initial values of sum and
count are 0 and 10 respectively).
Initial values
count
• sum = sum +10 first
increment
____ it 0
11
____ 0
• 11 now use it
11 0
NOTE
The prefix increment or
decrement operators follow change-
then-use rule. They first change
(increment/decrement) the value of
their operand. Then use the new
values in evaluating the expression.
POSTFIX VERSION
• When an increment/decrement
operator follows its operand we refer
to it as postfix version (of the
increment/decrement operator).
• When c++ faces a postfix operator it
uses its value first and then performs
increment/decrement operation upon
the operand.
EXAMPLE
• Sum=sum + count++ ;
• Insert a table later on
POSTFIX INCREMENT /
DECREMENT OPERATOR
The postfix
increment/decrement operators
follow use-then-change rule. They
first use the value and then
increments/decrements the
operand’s value.
MIND YOU!
The overall effect (as you must
noticed by now) on the operand’s
value is the same in both the cases
of prefix/postfix versions.
The increment/decrement
operators are unary operators.
Postfix operators enjoy higher
precedence over prefix operators.
PREFIX OPERATORS
• In turbo C++, firstly all prefix
operators are evaluated prior to
expression evaluation. The resultant
value of prefix operator is planted in
the expression and the expression is
evaluated.
• Ex:-insert an example later on.
INCREMENT/DECREMENT
OPERATORS
After being aware of the use
of the increment/decrement
operators (and of course the
operators itself) you should not make
multiple use of these two operators
as it produces different results on
different systems and is purely
implementation dependent.
RELATIONAL OPERATORS
The operators which determine the
relations among different operands. C++
provides six different relational operators
which works with numbers and characters
but not with strings.
These relational operators are:--
1.< (less tan)
2.<= (less than or equal to)
3.== (equal to)
4.> (greater than)
5.>= (greater than or equal to)
6.!= (not equal to)
KILL YOUR DOUBTS
You should never ever confuse
between = and == operators. This is the
most common mistake while working with
relational operators.
You should avoid getting stuck with
silly results. Just you need to know that =
is an assignment operator (which assigns
a value to the variable it follows) while ==
is a relational operator ( which compares
two values characters or numbers).
TIP
Avoid equality comparisons on
floating-point numbers.
Floating-point arithmetic is not
so exact and accurate as the integer
arithmetic is. After any calculation
involving floating-point numbers
there may be a small residue error.
Beause of this error you should avoid
equality and inequality operations
between floating-point numbers.
TIP
Avoid comparing signed and
unsigned values.
It is because if you compare
signed and unsigned values the
compiler treats a signed value as
unsigned. So problem arises when
comparison involves any negative
value. The results can be as different
as you can think for yourself.
EXAMPLE
In C++ these relational operators can
be used as,
1) if(a>b)
{
cout<<“A is Big”;
}
2) while(i<=20)
{
cout<<i;
i++;
}
GROUPING

The relational operators group


left to right. That means a<b<c
means (a<b)<c and not a<(b<c).
LOGICAL OPERATORS
In the previous topic we learnt about
relational operators. Now, we shall learn
about logical operators.
• Logical operators refer to the ways these
relationships (among values ) can be
connected.
• C++ provides three logical operators . They
are:-
1.|| (logicalOR)
2.&& (logical AND)
3.! (logical NOT)
THE LOGICAL OR
OPERATOR ||
The logical OR operator (||)
combines two expressions which make
its operands. The logical OR (||)
operator evaluates to true, giving
value 1, if any of its operands
evaluates to true.
NOTE:- C++ considers 0 as a false
value and any non-zero value as a true
value. Values 0 and 1(false or true ) are
the truth values of expressions.
EXAMPLE
The principle is used while testing evaluating
expressions. For example:-
if(ch==‘a’ || ch==‘e’|| ch==‘i’ || ch==‘o’|| ch==‘u’)
{
cout<<“Entered Character is Oval”;
}
else
{
cout<<“Entered Character is consonant”;
}
The operator || (logical OR) has lower precedence
than the relational operators, thus, we don’t need to use
parenthesis in these expressions.
LOGICAL AND OPERATOR
(&&)
It also combines two expressions
into one.
The resulting expression has
value 1 or 0 indicating true and false
respectively.
The resulting expression takes
value 1 if both of the original
expressions (operands) are true.
Insert some examples.
LOGICAL AND OPERATOR
(&&)
The logical operator AND ( && )
has lower precedence over the
relational operators.
THE LOGICAL NOT
OPERATOR (!)
The logical NOT operator, written
as !, works on single expression or
operand i.e., it’s n unary operator.
The logical NOT operator
negates or reverses the truth value
of the expression following it i.e., if
the expression is true , then the !
expression is false and vice-versa.
Insert some examples later on.
THE LOGICAL NOT
OPERATOR (!)
• The logical negation operator(!) has
a higher precedence over all other
arithmetical and relational operators.
Therefore, to negate an expression,
you must enclose the expression in
parentheses.
TIP
• The unary negation operator is useful
as a test for zero.
• Thus, the condition if(check==0) can
be replaced by if(!check).
SOME FACTS ABOUT LOGICAL
OPERATORS
• The precedence order among logical
operators is NOT, AND and OR (!, &&,
||).
CONDITIONAL OPERATOR
?:
• C++ offers a conditional operator (?:) that
stores a value depending upon a condition.
• The operator is ternary operator meaning it
requires three operands.
• The general form :-
• Expression1 ? Expression2: Expression3
• If expression1 evaluates to true i.e.1, then
the value of whole expression is the value of
expression2, otherwise, the value of the
whole expression is the value o0f the
exspression3.
• Insert an example later on.
BEWARE!!!
• You will enjoy working with the conditional
operator except that you must know that:-
The conditional operator has a low
precedence.
• The conditional operator has a lower
precedence than most other operators
that may produce unexpected results at
times.
• Insert an example later on.
CONDITIONAL OPERATOR
?:
• The conditional operator can be
nested also i.e., any of the
expression2 or expression3 can be
other conditional operator.
• Give an example later on.
CONDITIONAL OPERATOR
?:
• The conditional operator is allowed
on left side of the expression.
CONDITIONAL OPERATOR
?:
In C++, the result of the conditional
operator ?: is an lvalue, provided that the
two alternatives ( true part alternative, false
part alternative) are themselves values of
the same type.
As you already know, an lvalue is an
expression to which you can assign a value.
There must be an lvalue on the left side of
an assignment operator. This means that
you can assign a value to a conditional
expression.
SOME OTHER
OPERATORS
In this section, we discuss two of
many other operators (in C++) which
are of greater relevance to us at the
moment. They are :
1.The compile-time operator sizeof
2.The comma operator
sizeof OPERATOR
It is a unary compile-time operator
that returns the length (in bytes) of
the variable or parenthesized type-
Specifier that it precedes.that is, it can
be used in two forms :
1.sizeof var (where var is declared
variable)
2.sizeof(type) (where type is a C++ data
type)
THE COMMA OPERATOR
A comma operator is used to string
together several expressions.
The group of expressions separated
by commas(,) is evaluated left-to-right in
sequence and the result of the right-most
expression becomes the value of the total
comma-separated expression.
• For ex:-
• b=(a=3,a=1);
NOTE
The parentheses are necessary
because the comma operator has a lower
precedence than the assignment operator.
The comma operator has lowest
precedence to all these operators.
PRECEDENCE OF OPERATORS

Precedence of operators
++(post increment),--(post decrement)
++(pre decrement), --(pre increment)
*(multiply),/(divide),%(modulus)
+(add),-(subtract)
<(less than),<=(less than or equal ),>(greater than),>=(greater than
or equal )
==(equal ), !=(not equal)
&&(logical AND)
||(logical OR)
?:(conditional expression)
+(simple assignment) and other assignment operators (arithmetic
assignment operator)
Comma operator
EXPRESSIONS
An expression in C++ is any valid
combination of operators, constants and
variables.
EXPRESSION
The expression in C++ can be of any
type i.e., relational, logical etc.
Type of operators used in an
expression determines the type of
expression.
ARITHMETIC
EXPRESSIONS
Arithmetic expression can either be
integer or real expressions.
Sometimes a mixed expression can
also be formed which is a mixture of real
and integer expressions.
INTEGER EXPRESSIONS
Integer expression is formed by connecting integer
constants and/or integer variables using integer arithmetic
operators.
Following expressions are valid integer expressions:--
const count =30;
int i, j, k, x, y, z;
a) i
b) -i
c) k-x
d) k+x-y+count
e) -j+k*y
f) j/z
g) z%x
REAL EXPRESSIONS
Real expressions are formed by connecting real
constants and/or real variables using real arithmetic
operators (e.g., % is not a real arithmetic operator ).
The following are valid real expressions :--
const bal=250.53;
float qty,amount,value;
double fin,inter;
i. qty/amount
ii. qty*value
iii. (amount +qty*value)-bal
iv.fin+qty*inter
v. inter-(qty*value)+fin
RULE
An arithmetic expression may
contain just one signed or unsigned
variable or a constant, or it may have two
or more variables and/or constants, or two
or more valid arithmetic expressions joined
by a valid arithmetic operators. Two or
more variables or operators should not
occur in continuation.
REAL EXPRESSIONS
CONTD..
Apart from variables and
constants and arithmetic operators, an
arithmetic expression may consist of C+
+’s mathematical functions that are part of
c++ standard library and are contained in
header files math.h . To use the
mathematical functions, you must include
math.h.
MATH.H FUNCTIONS
The general form:--
Functiontype functionname (argument list);
Functiontype-specifies type of value
returned by the functionname
argument list-specifies
arguments and their data type (separated
by commas as in int a, real b, float d,) as
required by the functionname.
MATHEMATICAL FUNCTIONS
IN math.h
s. fun prototype Description example
no. ctio
n
1 aco double acos (double the acos () function Diuble val=-
s arg) returns the arc cosine of 0.5;
arg. The argument to cout<<acos
acos () must be in the (val);
range of -1 t o +1;
otherwise a domain error
occurs.
MATHEMATICAL FUNCTIONS
IN math.h
s. fun prototype description example
no. ctio
n
2 asin double asin(double The asin() function double val=-
arg) returns the arc sine of 10;cout<<asi
arg. The argument to asin n (val);
must be in the range -1 to
1.
MATHEMATICAL FUNCTIONS
IN math.h
s. fun prototype description example
no. ctio
n
3 atan double asin(double The atan() function atan (val);
arg) returns the arc tangent of (val is a
arg. double type
identifier)
MATHEMATICAL FUNCTIONS
IN math.h
s. Fun prototype description example
no. ctio
n
4 atan double atan2(double The atan2() function couble val=-
2 b, double a) returns the arc tangent of 1.0;cout<<at
b/a. an2(val,1.0);
MATHEMATICAL FUNCTIONS
IN math.h
s. fun prototype description example
no. ctio
n
5 ceil double ceil(double The ceil() function ceil(1.03)
num) returns the smallest gives 2.0
integer represented as a ceil(-1.03)
double not less than num. gives -1.0 .
MATHEMATICAL FUNCTIONS
IN math.h
s. fun prototype description Example
no. ctio
n
6 cos double cos (double The cos() function cos(val) (val
arg) returns the cosine of arg. is a double
The value of arg must be type
in radians. identifier)
MATHEMATICAL FUNCTIONS
IN math.h
s. fun prototype description example
no. ctio
n
7 cos double cosh(double The cosh() function Cosh(val)
h arg) returns the hyperbolic (val is a
cosine of arg. The value double type
of arg must be in radians. identifier.)
MATHEMATICAL FUNCTIONS
IN math.h
s. Fun prototype Description example
no. ctio
n
8 exp double exp(double The exp() function Exp(2.0)
arg) returns the natural gives the
logarithm e raised to value of e2.
power arg.
MATHEMATICAL FUNCTIONS
IN math.h
s. fun prototype description Example.
no. ctio
n
9 fabs double fabs(double The fabs() function fabs(1.0)
num) returns the absolute value gives 1.0
of num. fabs(-1.0)
gives 1.0.
MATHEMATICAL FUNCTIONS
IN math.h
s. fun prototype description example
no. ctio
n
10 floor Double floor(double The floor() functions Floor(1.03)giv
num) returns the largest integer es 1.0 floor (-
(represented by double) 1.03) gives -
not greater than num. 2.0.
MATHEMATICAL FUNCTIONS
IN math.h
s. fun prototype description example
no. ctio
n
11 fmo double fmod(double The fmod() function fmod(10.0,
d x, double y) returns the remainder of 4.0) gives
the division x/y. 2.0.
MATHEMATICAL FUNCTIONS
IN math.h
s. fun prototype description example
no. ctio
n
12 log double log(double The log() function returns log(1.0) gives
num) natural logarithm for the natural
num. a domain error logarithm for
occur if num is negative 1.0.
and a range error occur if
the arg num is 0.
MATHEMATICAL FUNCTIONS
IN math.h
s. fun prototype description example
no. ctio
n
13 log1 double log10(double The log10() function log 10(1.0)
0 num) returns the base10 gives base 10
logarithm for num. A logarithm for
domain error occurs if 1.0.
num is negative and
range error occurs if the
argument is 0.
MATHEMATICAL FUNCTIONS
IN math.h
s. fun prototype description example
no. ctio
n
14 pow double pow(double The pow() function pow(3.0, 1)
base, double exp) returns the base raised to gives 3.0.
the power exp. A domain
error occurs if the base is
0 and exp<=0. also if
base<0 and exp is not an
integer.
MATHEMATICAL FUNCTIONS
IN math.h
s. fun prototype description example
no. ctio
n
15 sin double sin(double The sin() function returns Sin(val) ( val
arg) the sin of arg. The value is a double
of arg must be in radians. type
identifier).
MATHEMATICAL FUNCTIONS
IN math.h
s. fun prototype description example
no. ctio
n
16 sinh double sin (double The sinh() function Sinh(val)
arg) returns the hyperbolic (val is a
sine of arg. The value of double type
arg must be in radians. identifier).
MATHEMATICAL FUNCTIONS
IN math.h
s. fun prototype description example
no. ctio
n
17 sqrt double sqrt(double The sqrt() function Sqrt(4.0)
num) returns the square root of gives 2.0.
the num. A domain error
occur if num<0.
MATHEMATICAL FUNCTIONS
IN math.h
s. fun prototype description example
no. ctio
n
18 tan double tan(double The tan () function tan(val)
arg) returns the tangent of
arg. The value of arg
must be in radians.
MATHEMATICAL FUNCTIONS
IN math.h
s. fun prototype description example
no. ctio
n
19 tan double tanh(double The tanh() function tanh(val)
h arg) retuns the hyperbolic
tangent of arg . The arg
must be in radians.
EXPRESSION
EVALUATION
In C++, mixed expression is evaluated as
follows:-
1. It is first divided into component sub-expressions
up to the level of two operand s and an operator.
2. Then the type of the sub-expression is decided
using earlier stated general conversion rules.
3. Using the results of sub-expressions, the next
higher level of expression is evaluated and its type
is determined.
4. This process goes on until you have the final
result of the expression.
LOGICAL EXPRESSION
DEF…
The expressions that results into
true(1) or false(0) are called logical
expressions.
ASSIGNMENT STATEMENT
Assignment statement assigns a value to a
variable. In C++,
Equal to (=) symbol is an assignment
statement.
For example:
A=8495;
B=564.44;
C++ SHORT HANDS
Different Types of Assignment statements
are used while programming and they are,

+= example x+=10 mean x=x+10


- = example y-=10 mean y=y-10
* = example z*=10 mean z=z*10
/ = example a/=10 mean a=a/10
% = example b%=10 mean b=b%10
THANK
YOU

You might also like