270 likes | 389 Vues
This lecture delves into the fundamental concepts of operators in programming, specifically focusing on their types and functions. Operators are essential symbols that direct the computer to perform various mathematical or logical operations. We explore different categories, including assignment, arithmetic, increment/decrement, logical, relational, equality, conditional, and bitwise operators. Additionally, we discuss rules governing arithmetic operations, type casting, and the evaluation of expressions based on operator precedence. Practical examples illustrate these concepts for better understanding.
E N D
Lecture 5 Sept 11, 2002
Operators & its types • An operator is a symbol or a special character that tells the computer to perform certain mathematical or logical operations which is applied to operands to give a result. • Operators are used in programs to manipulate data and variables • Data and variables are called operands.
Types of Operators • Assignment operators • Arithmetic operators • Increment and decrement operators • Logical operators • Relational operators • Equality operators • Conditional operators • sizeof operator • Bitwise operators ( not im p ) Self study • Special operators ( not imp ) Self study
Arithmetic operators • + (Addition) • - (subtraction) • * (Multiplication) • / (Division) • % ( Modulo operation)
Modulus operator • This is used to find the remainder of an integer division • eg 1. 9%4 is 1 2. 3%5 is 3 3. 9%3 is 0 • The modulus operator can be used only with integers.
Rules in arithmeticoperations Rule # 1 • Declaration of a real data value as an integer results in truncation of fractional part to yield an integer • Problem 4: • #include<iostream.h> void main() { int a; a=3.5; cout<<a<<endl; } Output: 3
Rule # 2 • An arithmetic operation between integer and integer yields always an integer. • Pb 5: #include<iostream.h> void main() { int a, b, c; a=6; b=3; c=b/a; cout<<c<<endl; } output: 2
Rule # 3 • An arithmetic operation between real and real yields always a real result. • Problem 6: #include<iostream.h> void main() { float a=3.5, b=2.2, c; c=a/b; cout<<c<<endl; } output: 1.590
Rule # 4 • Operation between an integer and real always yields a real result. • Problem 7 int a=3; float b=2.2, c; c=a* b; cout<<c<<endl; output: 6.6
Rule # 5 • The modulus operator can be used only with integers. • Problem 8: • int a,b,c; a=9; b=4; c=a%b; cout<<c<<endl; output: 1
Type casting • Sometimes we are needed to force the compiler to explicitly convert the value of an expression to a particular data type. • Problem 9 • void main() { float a; int x=6, y=4; a= (float ) x/y; // type casting is done here cout<<a<<endl; } output : 1.5
Priority of arithmetic operators • Evaluate expression i=2* b* y/ (d+1) - x / (3 * (z + y)) ? How would you do it? What would be the result?
Priority Rules • BODMAS – Brackets of division, multiplication and addition, subtraction • If there are more than one set of brackets, the operations within the innermost brackets will be performed first • Incase of a tie between operations of same priority preference is given to operator which occurs first
Evaluation process int b=2, d=1, x=4, y=5, z=4; i=2* b* y/ (d+1) - x / (3 * (z + y)) ? i=2* 2* 5/ (1+1) – 4/ (3 * (4 + 5)) ? i=2* 2* 5/ 2 - 4/ (3 * 9 ) i=2* 2* 5/ 2 - 4/ 27 i= 4 * 5/ 2 - 4/ 27 i= 20 / 2 - 4/ 27 i= 10 -4/ 27 i= 10 - 0.148 i= 9.852
Assignment operators • Assignment operators are used to assign the result of an expression to a variable. • float a; // variable declaration a = 25.2; // ‘ = ‘ is assignment operator Short hand form: x=x+1; or x += 1; y=y-1; or y -= 1; z=z*(x+y); or z *=(x+y); y=y/(x+y); or y /=(x+y); x = x % z or x %=z;
Increment and decrement operators • ++ is increment operator. • -- decrement operator. Modes • ++a and -- a are in pre-increment mode. • a++ and a– are in post increment mode.
Usage • b= ++a ; or a=a+1; b=a; • b= a++; or b=a; a=a+1;
Problem 10 • To understand increment and decrement operators #include<iostream.h> // preprocessor directive void main() // function main { int a=10,b,c=10,d; b=++a; // eqt : a=a+1; b=a; (pre-increment) cout<<“b is “<<b<<endl; d=c++; // eqt : d=c; c=c+1; (post-increment) cout<<“d is “<<d<<endl; } Output: b is 11 d is 10
Relational operators • < less than • > greater than • <= less than or equal to • >= greater than or equal to • You would understand this when you are taught Control structures. Just know these operators for now.
Logical operators • && Logical AND • | Logical OR • ! Logical NOT • You would understand this when you are taught Control structures. Just know these operators for now.
Equality operators • == equal to • != not equal to • You would understand this when you are taught Control structures. Just know these operators for now.
Conditional operators • expr1 ? Expr2 : expr3 • You would understand this when you are taught Control structures. Just know these operators for now.
Problem Solving • Step 1 : Thorough understanding of the problem. • Step 2 : Frame an algorithm. • Step 3 : Develop a pseudo code. • Step 4 : Draw a flow chart. • Step 5 : Code the program.
Algorithm : A procedure for solving a problem in terms of : • The actions to be executed, • the order in which these actions are to be executed
Pseudocode : Its an informal code. • Similar to everyday english • They help programmers think out a program • Pseudocodes are then converted to the executable language statements.
Flow chart – It is a pictorial representation of the flow of the logic of the program. • Logic means the approach of the problem.
5 lectures in a nutshell • Lec 1 : Introduction to computers • Lec 2 : Simple c++ programs ( 2 problems) • Lec 3 : Variables and Data types • Lec 4 : Repeated Variables and data types • Lec 5 : Operators, its types, and Problem Solving (8 problems ) “ This forms the basis, the core of problem solving using a higher level languages starts here “