c operators

37
Gujarat Power Engineeri ng & Research Institute By- -Thawani Karan(58)

Upload: karan19951

Post on 27-Jun-2015

345 views

Category:

Engineering


46 download

DESCRIPTION

Contents -Arithmetic operator -Conditional operator -Some special operators -Increment and Decrement operator

TRANSCRIPT

Page 1: C operators

Gujarat Power Engineering & Research Institute 

By--Thawani Karan(58)

Page 2: C operators

C Operators and some differences

Page 3: C operators

Operators are symbols which take one or more operands or expressions and perform arithmetic or logical computations. 

Operands are variables or expressions which are used in conjunction with operators to evaluate the expression.

Combination of operands and operators form an expression. 

OPERATORS

Page 4: C operators

Expressions

Combination of Operators and Operands

Example 2 * y + 5

Operands

Operators

Page 5: C operators

Expressions are sequences of operators, operands, and punctuators that specify a computation.

Evaluation of expressions is based on the operators that the expressions contain and the context in which they are used.

Expression can result in a value and can produce side effects.

A side effect is a change in the state of the execution environment. 

OPERATORS

Page 6: C operators

TYPES OF OPERATORS-C language provides following operators:-

Page 7: C operators

Arithmetic Operatorso As the name is given, arithmetic operators perform arithmetic operations.

o C language provides following arithmetic operators.

Operator name Meaning

+ Addition

- Subtraction

* Multiplication

/ Division

% Modulus(Reminder after division)

Page 8: C operators

ARITHMETIC OPERATORSo These are “Binary Operators” as they take two operands.

o The operands must be ”Numeric Value”.

o When both the operands are integer , then the result is integer. But when one of them is floating point and other is integer then the result is floating point.

oExcept “% ” operators, all the arithmetic operators can be used with any type of numeric operands(either operands are integer or floating point), while “%” operator can only be used with integer data type only.

Page 9: C operators

SMALL EXAMPLE TO ILLUSTRATE THE USE

OFARITHMETIC OPERATORS#include<stdio.h>#include<conio.h>Void main(){

float a=4,b=2,sum,sub,mul,div;clrscr();

sum=a+b; sub=a-b; mul=a*b; div=a/b; printf(“summation of a and b=%f\nsubtractionof and b=%f\nmultiplicationof and b=%f\ndivision of a and b=%f,sum,sub,mul,div”);getch();}

Page 10: C operators

Output of the following code will be like this:

summation of a and b=6.000000 subtraction of a and b=2.000000multiplication of a and b=8.000000division of a and b=2.000000

Page 11: C operators

CONDITIONAL OPERATORSo C language provides “?” operator as a conditional operator.

o These are “Ternary Operators” as they take three operands.

oIt is used as shown below:

Syntax: Condition ? Expression1 : Expression2

-The statement above is equivalent to:

if (Condition) Expression1else Expression2

Page 12: C operators

o The operator “?” works as follows:

o Expression1 is evaluated first. If it is nonzero(true), then the expression2 is evaluated and becomes the value of the expression.

o If expression1 is false, expression3 is evaluated and its value becomes the value of the expression.

o It is to be noted that only one of the expression(either expression2 or expression3) is evaluated.

o Hence, there is no dought that ternary operators are the alternative use of “if..else” statement.

CONDITIONAL OPERATORS

Page 13: C operators

Example 1: if/else statement:

if (total > 60) grade = ‘P’

elsegrade = ‘F’;

conditional statement:

total > 60 ? grade = ‘P’: grade = ‘F’;

OR grade = total > 60 ? ‘P’: ‘F’;

Page 14: C operators

Example 2:

if/else statement:

if (total > 60)printf(“Passed!!\n”);

elseprintf(“Failed!!\n”);

Conditional Statement:

printf(“%s!!\n”, total > 60? “Passed”:“Failed”);

Page 15: C operators

SPECIAL OPERATORS

o C supports some special operators such as comma operator, size of operator, pointer operators (& and *) and member selection operators( . and -> ).

The comma operator:

o The comma operator is used to link the related expressions together or in the other way, it is used to combine multiple statememts.

o A comma linked list of expressions are evaluated from “left” to “right”.

Page 16: C operators

i.e.expression_1, expression_2expression_1 is evaluated firstexpression_2 is evaluated second

For Example:value=(x=10,y=5,x+y);

-First assigns the value 10 to x, then assigns 5 to y, and finally assigns 10(i.e. 10+5) to value.

- Since comma operator has the lowest precedence of all operators.

-The parentheses are necessary.

x = (y=3 , y+1); x = 4 ( ) needed

SPECIAL OPERATORS

Page 17: C operators

The following table gives some examples of the uses of the comma operator.

Statement Effects

for (i=0; i<4; ++i, func());

A for statement in which i is incremented and func() is called at each iteration.

if (func(), ++i, i>1 ){ /* ... */ }

An if statement in which function func() is called, variable i is incremented, and variable i is tested against a value. The first two expressions within this comma expression are evaluated before the expression i>1. Regardless of the results of the first two expressions, the third is evaluated and its result determines whether the if statement is processed.

int inum=3, inum2=7, inum3 = 2;

Comma acts as separator, not as an operator.

SPECIAL OPERATORS

Page 18: C operators

SIZEOF OPERATORoThe sizeof is a compile time operator.

o When used with an operand, it returns the number of bytes the operand occupies.

o The operand maybe a variable, a constant or a data type qualifier.

Int a,m;m = sizeof(a);Printf(“size of a in bytes is %d”,m);

size of a in bytes is 2

Output:

Page 19: C operators

INCREMENT AND DECREMENT OPERATORS

o Sometimes we need to increase or drcrease a variable by “one”.

o We can do that by using assignment operator =. For example the statement a=a+1 or a+=1 increment the value of variable a by 1.

o In the same way the statement a=a-1 or a-=1 decrements the value of variable a by 1.

o But C language provides “Increment and Decrement Operators” for this type of operations.

Page 20: C operators

o These operators are “unary” as they take one operand only.

o The operand can be written before of after the operator.

o If a is a variable, then ++a is called “prefix increment”, while a++ is called postfix increment.

o Similarly, --a is called “prefix decrement” and a– is called “postfix decrement”.

INCREMENT AND DECREMENT OPERATORS

Prefix ++x; or Postfix x++;

x = x + 1;

Page 21: C operators

If the ++ or – operator are used in an expression or assignment, then prefix notation and postfix notation give different values.

a++Post-increment. After the result is obtained, the value of the operand is incremented by 1.

a++Post-decrement. After the result is obtained, the value of the operand is decremented by 1.

++aPre-increment. The operand is incremented by 1 and its new value is the result of the expression.

--aPre-decrement. The operand is decremented by 1 and its new value is the result of the expression.

Page 22: C operators

Simple example to understand the prefix and postfix increment:

int a=9,b;b=a++;printf(“%d\n”,a);printf(“%d”,b);

The output would be

109

But, if we execute this code…

int a=9,b;b=++a;printf(“%d\n”,a);printf(“%d”,b);

The output would be

1010

Page 23: C operators

Simple example to understand the prefix and postfix decrement:

int a=9,b;b=a--;printf(“%d\n”,a);printf(“%d”,b);

But, if we execute this code…

int a=9,b;b=--a;printf(“%d\n”,a);printf(“%d”,b);

The output would be

The output would be

89

88

Page 24: C operators

Complier Interpreter

Translates whole source code into object code.

Translate land execute line by line of source code.

User cannot see the result of program at translation time.

User can see the result of program at translation time.

It requires less main memory beacuase at the time of translation it place object code into secondary memory. Execution is not the job of compiler. This is the job of loader

It requires less main memory beacuase at the time of translation it place object code into main memory and execute it and produce the result.

DIFFERENCES

Page 25: C operators

Complier InterpreterThis process is faster than interpreter.

This process is slower than compiler.

Size of compiler program is smaller than interpreter beacuse it contain only translation procedure.

Size of interpreter program is larger than compiler beacuse it contain two tasks translation as well as loading.

DIFFERENCES

Page 26: C operators

Arrays Structures1. An array is a collection of related data elements of same type.

1. Structure can have elements of different  types

Syntax: <data_type> array_name[size];

struct struct_name { structure element 1; structure element 2; ---------- ---------- structure element n; }struct_var_nm;

2. An array is a derived data type

2. A structure is a programmer-defined data type

DIFFERENCES

Page 27: C operators

Arrays Structures3. Any array behaves like a built-in data types. All we have to do is to declare an array variable and use it.

3. But in the case of structure, first we have to design and declare a data structure before the variable of that type are declared and used.

Array elements are accessed by it's position or subscript.

Structure elements are accessed by its object as '.' operator.

Array element access takes less time in comparison with structures.  

Structure element access takes more time in comparison with arrays.

DIFFERENCES

Page 28: C operators

Data Information1. Data is raw, unorganized facts that need to be processed. Data can be something simple and seemingly random and useless until it is organized.

1. When data is processed, organized, structured or presented in a given context so as to make it useful, it is called Information.

2Each student's test score is one piece of data

2. The class' average score or the school's average score is the information that can be concluded from the given data.

3.  Data is always correct (I can’t be 29 years old and 62 years old at the same time)

3. But information can be wrong (there could be two files on me, one saying I was born in 1981, and one saying I was born in 1948).

DIFFERENCES

Page 29: C operators

Algorithm Flow chart1. An algorithm is a finite sequence of well defined steps for solving a problem in a systematic manner.

1. A flow chart is a graphical representation of sequence of any problem to be solved by computer programming language.

2. Difficult to show branching and looping.

2. Easy for branching and looping.

3.  It does not includes any specific symbols.

3. Flowchart uses specific symbols for specific reasons.

DIFFERENCES

Page 30: C operators

Symbols that are used to draw a flow chart

Page 31: C operators

Start

Read a,b

Sum=a+b

Print”sum= “,sum

Stop

Step1: input two numbers:a,b

Step2: sum=a+b

Step3: print”sum= “,sum

Step 4: Stop

Flow Chart:Algorithm:

Page 32: C operators

System Software

Application Software

System software is computer software designed to operate the computer hardware and to provide a platform for running application software.

Application software is computer software designed to help the user to perform specific tasks.

It is general-purpose software.

It is specific purpose software.

System Software Create his own environment to run itself and run other application.

Application Software performs in a environment which created by System/Operating System

It executes all the time in computer.

It executes as and when required.

DIFFERENCES

Page 33: C operators

System Software

Application Software

System software is essential for a computer

System software is essential for a computer

The number of system software is less than application software.

The number of application software is much more than system software.

System software is written in low level language

Application software are usually written in high level language

Detail knowledge of hardware is required.

Detail knowledge of organization is required.

DIFFERENCES

Page 34: C operators

Call by value Call by reference

1. call by value passes the copy of the variable to the function that process it 

1call by reference passes the memory reference of the variable (pointer) to the function.

2. main (){sum (10, 20);//other code...}function sum (a, b){ //your code.....}

2. main (){sum (&a, &b);//other code...}function sum (*a, *b){ //your code.....}

3.  call by value increases the memory assigned to the code because of the copy of variables at each reference 

3. whereas call by reference utilizes the same reference of variable at each reference.

Page 35: C operators

#include <stdio.h> void call_by_value(int x) { printf("Inside call_by_value x = %d before adding 10.\n", x); x += 10; printf("Inside call_by_value x = %d after adding 10.\n", x); } int main() { int a=10; printf("a = %d before function call_by_value.\n", a); call_by_value(a); printf("a = %d after function call_by_value.\n", a); return 0; }

a = 10 before function call_by_value. Inside call_by_value x = 10 before adding 10.

Inside call_by_value x = 20 after adding 10. a = 10 after function call_by_value.

Page 36: C operators

#include <stdio.h> void call_by_reference(int *x) { printf("Inside call_by_reference x = %d before adding 10.\n", *x); *x += 10; printf("Inside call_by_reference x = %d after adding 10.\n", *x); } int main() { int a=10; printf("a = %d before function call_by_value.\n", a); call_by_value(a); printf("a = %d after function call_by_value.\n", a); return 0; }

a = 10 before function call_by_value. Inside call_by_value x = 10 before adding 10.

Inside call_by_value x = 20 after adding 10. a = 20 after function call_by_referance.

Page 37: C operators