PPS
PPS
Unit I
UNIT I (TOPICS
COVERED)
Evolution of Programming & Languages - Problem Solving
through Programming - Creating Algorithms - Writing
Pseudocode - Evolution of C language, its usage history - Input
and output functions: Printf and scanf - Variables and
identifiers – Expressions - Single line and multiline comments
- Constants, Keywords - Values, Names, Scope, Binding, Storage
Classes - Numeric Data types: integer -
UNIT I (TOPICS
COVERED)
floating point - Non-Numeric Data types: char and string -
Increment and decrement operator - Comma, Arrow and
Assignment operator - Bitwise and Sizeof operator Arithmetic,
Relational and logical Operators, Condition Operator, Operator
Precedence - Expressions with pre / post increment operator
Evolution of Programming & Languages
❑ Programming Language
❑ Artificial language that controls the behavior of computer
❑ Defined through the use of syntactic and semantic rules
❑ Used to facilitate communication about the task of organizing
and manipulating information
❑ Programming Process
a) Defining the Problem
b) Planning the Solution
c) Coding the Program
d) Testing the Program
e) Documenting the Program
Problem Solving through Programming Contd…
Problem Solving through Programming Contd…
❑ A typical programming task can be divided into two phases:
i. Problem solving phase
❑ Produce an ordered sequence of steps that describe solution
of problem.
ii. Implementation phase
❑ Implement the program in some programming language
Problem Solving through Programming Contd
1. Algorithms.
2. Flowcharts. Programs
3. Pseudo codes.
❑ General Features
Problem Solving through Programming Contd…
❑ Steps in Problem Solving
a) Produce a general algorithm (or pseudocode)
b) Refine the algorithm successively to get step by step detailed
algorithm that is very close to a computer language
Creating Algorithms
❑ An informal definition of an algorithm is:
❑ Sequence:
All the instructions are executed one after another is called
sequence execution.
Example:
Add two numbers:
Step 1: Start
Step 2: Get/Read a,b
Step 3: calculate c=a+b
Step 4: Display/Print c
Step 5: Stop
Creating Algorithms Contd…
Example:
Example
Step 1: Start
Step 2: get n value.
Step 3: initialize i as 1
Step 4: if i less than or equal to n) go to step 5 else go to step 7
Step 5: Print i value and increment i value by 1
Step 6: go to step 4
Step 7: Stop
Creating Algorithms Contd…
Example:
Algorithm for addition of two numbers using function
Main function()
Step 1: Start
Step 2: Call the function add()
Step 3: Stop
any values
c) The algorithm should be general and not depend on the
number of integers
Creating Algorithms Contd…
❑ Solution
a) To solve this problem, we need an intuitive approach
b) First use a small number of integers (for example, five), then
❑ Step 2: Initialize X as 0,
❑ Step 3: Increment X by 1,
❑ Step 4: Print X,
❑ Step 6: Stop
Creating Algorithms Contd…
Example 3
Convert Temperature from Fahrenheit (℉)to Celsius (℃)
❑ Step 1: Start
❑ Step 4: Print C
❑ Step 5: Stop
Creating Algorithms Contd…
Example 4
Algorithm to Add Two Numbers Entered by User
❑ Step 1: Start
❑ FLOW CHART
➢ Flow chart is defined as graphical or diagrammatic
representation of the logic for problem solving.
Example - sequence
Find the area of a circle of radius r
Drawing flowchart Contd…
Example- Selection
Flowchart Problem 1: Draw the flowchart to find the largest number
between A and B
Drawing flowchart Contd…
Example - Iteration
Flowchart for the problem of printing even numbers between 0 and 99
Drawing flowchart Contd…
Example
Drawing flowchart Contd…
1. Flowchart for an algorithm which gets two numbers and prints sum of their
value.
2. Convert temperature Fahrenheit to Celsius
3. Draw the flowchart to show whether the given number is even or odd
4. Flowchart for n natural numbers
Writing Pseudocode
❑ Pseudo – Imitation / False
❑ Code – Instructions
Example:
BEGIN
GET a,b
ADD c=a+b
PRINT c
END
Example
Writing Pseudocode Contd…
❑ Write an Pseudo Code to:
• BEGIN
• GET n
• INITIALIZE i=1,fact=1
• WHILE(i<=n) DO
• fact=fact*i
• i=i+1
• ENDWHILE
• PRINT fact
• END
Writing Pseudocode Contd…
1960
1967
1970
1972
1978
1989
1990
1999
Evolution of C
History & Evolution of C Cont…
❑ Why the Name “C” was given ?
❑ Many of C’s principles and ideas were derived from the earlier
language B
❑ BCPL and CPL are the earlier ancestors of B Language (CPL is
common Programming Language)
❑ In 1967, BCPL Language ( Basic CPL ) was created as a scaled
down version of CPL
❑ As many of the features were derived from “B” Language
the new language was named as “C”.
History & Evolution of C Cont…
❑ Characteristics of ‘C’
❑ Low Level Language Support
❑ Structured Programming
❑ Extensive use of Functions
❑ Efficient use of Pointers
❑ Compactness
❑ Program Portability
❑ Loose Typing
History & Evolution of C Cont…
❑ Advantages of C
❑ Compiler based Language
❑ Programming – Easy & Fast
❑ Powerful and Efficient
❑ Portable
❑ Supports Graphics
❑ Supports large number of Operators
❑ Used to Implement Datastructures
History & Evolution of C Cont…
❑ Disadvantages of C
❑ Not a strongly typed Language
❑ Use of Same operator for multiple purposes
❑ Not Object Oriented
Single Line and Multiline Comments
❑ Comment – Definition
#include<stdio.h>
int main( ){
//printing information
printf("Hello C");
return 0;
}
Single Line and Multiline Comments Contd…
b) Multi-Line Comment
❑ Represented by slash asterisk \* ... *\
#include<stdio.h>
int main( ){
/*printing information
Multi Line Comment*/
printf("Hello C");
return 0;
}
Multi-Line Comments Single-Line Comment
Directive Description
Macro - a piece of code defined with the help of the #define directive.
-useful at multiple places to replace the piece of code with a single value of the macro.
Structure of ‘C’ Program Contd…
Directive Description
• The included file also gets complied with the current program.
EXAMPLE
#include<stdio.h>
3. #Ifdef
- Returns true if this macro is defined.
4. #undef
- Undefines a preprocessor macro.
Output:
5. #Ifndef
- Returns true if this macro is not defined.
# define T 8
void main()
{
clrscr();
#ifndef T
printf(“\n Macro is not defined.”);
#else
printf(“\n Macro is defined.”);
#endif
getche();
}
OUTPUT:
Macro is defined.
6. Error directive
#ifndef identifier
# error <ERROR MESSAGE>
#endif
The Value of INT_MAX
(for 32 bit integers) =
2^31-1 =
2147483647
The Value of
MILLISECONDS(12) =
378432000000
Output
Structure of ‘C’ Program Contd…
3) Global Declaration Section
❑ Used to Declare Global variable (or) Public variable
❑ Variables are declared outside all functions
❑ Variables can be accessed by all functions in the program
❑ Same variable used my more than one function
Structure of ‘C’ Program Contd…
4) main( ) Section
❑ main( ) written in all small letters (No Capital Letters)
❑ Execution starts with a Opening Brace : {
❑ Divided into two sections: Declaration & Execution
❑ Declaration : Declare Variables
❑ Executable: Statements within the Braces
❑ Execution ends with a Closing Brace : }
❑ Note: main( ) does not end with a semicolon
Structure of ‘C’ Program Contd…
5) Local Declaration Section
❑ Variables declared within the main( ) program
❑ These variables are called Local Variables
❑ Variables initialized with basic data types
Input and Output Functions
❑ Ability to Communicate with Users during execution
❑ Input Operation
❑ Feeding data into program
❑ Data Transfer from Input device to Memory
❑ Output Operation
❑ Getting result from Program
❑ Data Transfer from Memory to Output device
❑ Header File : #include<stdio.h>
Input and Output Functions Contd…
❑ Input / Output Function Types
a) Formatted Input / Output Statements - used to take
various inputs from the user and display multiple
outputs to the user.
- we can use format specifiers in these functions and
hence, we can format these functions according to our
needs.
b) Unformatted Input / Output Statements - used to read
single input from the user at the console and it allows to
display the value at the console.
-We cannot use format specifiers in these functions
and hence, cannot format these functions according to our
needs.
Input and Output Functions Contd…
a) Formatted Input / Output Statements
❑ Reads and writes all types of data values
❑ Arranges data in particular format
❑ Requires Format Specifier to identify Data type
❑ Basic Format Specifiers
❑ %d – Integer
❑ %f – Float
❑ %c – Character
❑ %s - String
Input and Output Functions Contd…
i. The scanf ( ) Function
❑ Reads all types of input data
❑ Assignment of value to variable during Runtime
❑ Syntax
#include<stdio.h> #include<stdio.h>
#include<conio.h> #include<conio.h>
void main( ) void main( )
{ {
int a; int a;
a=10; scanf(“%d”, &a);
} }
Input and Output Functions Contd…
}
Input and Output Functions Contd…
/* Getting Multiple Input using scanf ( ) function */
#include<stdio.h>
#include<conio.h>
void main( )
{
int a, b;
float c;
scanf(“%d %d”, &a, &b);
scanf(“%f ”, &c);
}
Input and Output Functions Contd…
ii. The printf ( ) Function
❑ To print Instructions / Output onto the Screen
❑ Requires Format Specifiers & Variable names to print
data
❑ Syntax
getchar(): Reads a
character from the
standard input
device.
putchar(): Writes a
character to the
standard output
device
Unformatted Functions -Example
2. Immutability
The constant variables in c are immutable after its definition.
i.e., they can be initialized only once in the whole program. After
that, we cannot modify the value stored inside that variable.
Example
#include <stdio.h>
int main()
{
// defining integer constant using const keyword
const int int_const = 25;
Output
Printing value of Integer Constant: 25
Printing value of Character Constant: A
Printing value of Float Constant: 15.660000
Constants Cont…
❑ Types
❑ Integer Constants & floating pointer
❑ Real Constants
❑ Character Constant
❑ Single Character Constants
❑ String Constants
Constants Contd…
Variables & Identifiers
❑ Identifier
❑ A string of alphanumeric characters that begins with an
alphabetic character or an underscore character
❑ There are 63 alphanumeric characters, i.e., 53 alphabetic
characters and 10 digits (i.e., 0-9)
❑ Used to represent various programming elements such as
variables, functions, arrays, structures, unions
❑ The underscore character is considered as a letter in
identifiers (Usually used in the middle of an identifier)
Identifier
Variables & Identifiers Contd…
❑ Rules for Identifers
❑ Combination of alphabets, digits (or) underscore
❑ First character should be a Alphabet
❑ No special characters other than underscore can be used
❑ Keywords cannot be represented as an identifier.
❑ The length of the identifiers should not be more than 31
characters.
❑ No comma / spaces allowed within variable name
❑ A variable name cannot be a keyword
❑ Variable names are case sensitive
❑ Variable Definition :Value changes during execution
❑ Identifier for a memory location where data is stored
Variables & Identifiers Contd…
❑ A variable can have alphabets, digits, and underscore.
❑ A variable name can start with the alphabet, and underscore only. It
can't start with a digit.
❑ No whitespace is allowed within the variable name.
❑ A variable name must not be any reserved word or keyword(int,
float, etc. )
❑ Variable Declaration
❑ A variable must be declared before it is used
❑ Declaration consists of a data type followed by one or
more variable names separated by commas.
❑ Syntax
datatype variablename;
Variables & Identifiers Contd…
❑ Examples
int a, b, c, sum;
float avg;
char name;
❑ Variable Initialization
❑ Assigning a value to the declared variable
❑ Values assigned during declaration / after declaration
Variables & Identifiers Contd…
❑ Examples
i. int a, b, c;
a=10, b=20, c=30;
ii. int a=10 ,b=10, c=10;
❑ Scope of Variables
❑ Local Variables
❑ Global Variables
Scope of Variables
❑ Definition
❑ A scope in any programming is a region of the program
where a defined variable can have its existence and beyond
that variable it cannot be accessed
{
/* local variable declaration */
int a, b;
int c;
/* actual initialization */
a = 10; b = 20;
c = a + b;
printf ("value of a = %d, b = %d and c = %d\n", a, b, c);
return 0;
}
Scope of Variables Contd…
b) Global Variables
❑ Defined outside a function, usually on top of the program
❑ Hold their values throughout the lifetime of the program
❑ Can be accessed inside any of the functions defined for the
program
#include <stdio.h>
/* global variable declaration */
int g;
int main ( )
{
/* local variable declaration */
int a, b;
/* actual initialization */
a = 10; b = 20;
g = a + b;
printf ("value of a = %d, b = %d and g = %d\n", a, b, g);
return 0;
}
Scope of Variables Contd…
❑ Note: A program can have same name for local and global
variables but the value of local variable inside a function will
take preference
Binding
❑ A Binding is an association between an entity and an attribute
❑ Between a variable and its type or value
❑ Between a function and its code
❑ Binding time is the point at which a binding takes place
❑ Types of Binding
a) Design Time
b) Compile Time
c) Link Time
d) Run Time
Binding Contd…
a) Design Time
❑ Binding decisions are made when a language is designed
❑ Example
❑ Binding of + to addition in C
b) Compile Time
❑ Bindings done while the program is compiled
❑ Binding variables to datatypes
❑ Example
❑ int a; float b; char c;
Binding Contd…
c) Link Time
❑ Compiled code is combined into a full program for C
❑ Example
❑ Global and Static variables are bound to addresses
d) Run Time
❑ Any binding that happens at run time is called Dynamic
❑ Any binding that happens before run time is called Static
❑ Values that are dynamically bound can change
Storage Classes in C
❑ What is a Variable?
❑ Storage Class Specifiers tells the Compiler about the following:
❑ Where to Store a Variable
❑ What is the Initial value of the Variable
❑ What is the Lifetime of a Variable
❑Variable Scope: Area or block where the variables can be
accessed
block1( );
block2( );
printf(“In Main Block n=%d”, n);
getch( );
}
block1( )
{
int n = 20;
printf(“In Block 1 n=%d”, n);
}
block2( )
{
int n = 30;
printf(“In Block 2 n=%d”, n);
}
Output
In Block 1 n=20
In Block 2 n= 30
Output
In Block 1 n=10
In Block 2 n= 10
Output
x = 28722
y=0
Storage Classes in C Contd…
d) Register Variables
❑ Variables stored in the CPU registers instead of Memory
❑ Keyword Register is used to define the variable
❑ Scope of the Variable: Local
❑ Advantages
❑ CPU register access is faster than memory access
❑ Disadvantages
❑ Number of CPU registers is less
❑ Less Number of variables can be stored in CPU registers
/* Program to Demonstrate Register Variables*/
#include<stdio.h>
#include<conio.h>
void main( )
{
register int n=1;
clrscr( );
for(n=1; n<=10; n++)
printf(“%d”, n);
getch( );
}
Output
1 2 3 4 5 6 7 8 9 10
Summarize: Storage class
Constants
int main()
{
int a;
scanf(“%d”,&a);
printf(“%d”,a);
return 0;
}
Datatypes Contd…
b) Floating Point Data Type
❑ Numbers having Fractional part
❑ Float provides precision of 6 digits
❑ Integer variable holds integer values only
❑ Keyword: float
❑ Memory: 4 Bytes (32 bits)
❑ Examples: 5.6, 0.375, 3.14756
Datatypes Contd…
}
Datatypes Contd…
c) Double Data Type
❑ Also handles floating point numbers
❑ Double provides precision of 14 digits
❑ Integer variable holds integer values only
❑ Keyword: double
❑ Memory: 8 Bytes (64 bits) or 10 Bytes (80 bits)
Datatypes Contd…
c) Double Data Type
#include<stdio.h>
int main()
{
double g;
scanf(“%ld”,&g);
printf(“%ld”,g);
return 0;
}
Datatypes Contd…
d) Character Data Type
❑ handles one character at a time
❑ Keyword: char
❑ Memory: 1 Byte (8 bits)
Datatypes Contd…
d) Character Data Type
#include<stdio.h>
int main()
{
char g;
scanf(“%c”,&g);
printf(“%c”,g);
return 0;
}
L-Value and R-Value of Expression
a) L-Value stands for left value
❑ L-Value of Expressions refer to a memory locations
❑ In any assignment statement L-Value of Expression must be a
container(i.e. must have ability to hold the data)
❑ Variable is the only container in C programming thus L Value
must be any Variable.
❑ L Value cannot be a Constant, Function or any of the available
data type in C
L-Value and R-Value of Expression Contd…
❑ Diagram Showing L-Value of Expression :
L-Value and R-Value of Expression Contd…
#include<stdio.h> #include<stdio.h>
#define MAX 20 enum {JAN,FEB,MARCH};
int main( ) int main( )
{ {
MAX = 20; //Error JAN = 20; //Error
return(0); return(0);
} }
❑ Examples
❑ ++count, ++a, ++i, ++count
❑ Count++, a++, i++, count++
Operators in C Contd…
a) Increment and Decrement Operators Contd…
S. No Operator type Operator Description
Value of i is incremented before
1 Pre Increment ++i
assigning it to variable i.
Value of i is incremented after
2 Post Increment i++
assigning it to variable i.
Value of i is decremented before
3 Pre Decrement -- i
assigning it to variable i.
Post Value of i is decremented after
4 i --
Decrement assigning it to variable i.
/* Program for Post Increment*/
#include<stdio.h>
#include<conio.h>
void main( )
{
int i = 1;
while (i++< 5)
{
printf(“%d”, i);
} }
getch ( );
}
Output
1234
Operators in C Contd…
a) Increment and Decrement Operators Contd…
❑ Step 1 : In this program, value of i “0” is compared with 5 in while
expression.
❑ Step 2 : Then, value of “i” is incremented from 0 to 1 using post-
increment operator.
❑ Step 3 : Then, this incremented value “1” is assigned to the
variable “i”.
❑ Above 3 steps are continued until while expression becomes
false and output is displayed as “1 2 3 4 5”.
/* Program for Pre Increment*/
#include<stdio.h>
#include<conio.h>
void main( )
{
int i = 1;
while (++i<5)
{
printf(“%d”, i );
} }
getch ( );
}
Output
234
Operators in C Contd…
a) Increment and Decrement Operators Contd…
❑ Step 1 : In above program, value of “i” is incremented from 0 to 1
using pre-increment operator.
❑ Step 2 : This incremented value “1” is compared with 5 in while
expression.
❑ Step 3 : Then, this incremented value “1” is assigned to the
variable “i”.
❑ Above 3 steps are continued until while expression becomes false
and output is displayed as “1 2 3 4”.
/* Program for Post Decrement*/
#include<stdio.h>
#include<conio.h>
void main( )
{
int i = 10;
while (i--< 5)
{
printf(“%d”, i );
} }
getch ( );
}
Output
10 9 8 7 6
Operators in C Contd…
a) Increment and Decrement Operators Contd…
❑ Step 1 : In this program, value of i “10” is compared with 5 in
while expression.
❑ Step 2 : Then, value of “i” is decremented from 10 to 9 using post-
decrement operator.
❑ Step 3 : Then, this decremented value “9” is assigned to the
variable “i”.
❑ Above 3 steps are continued until while expression becomes
false and output is displayed as “9 8 7 6 5”.
/* Program for Pre Decrement*/
#include<stdio.h>
#include<conio.h>
void main( )
{
int i = 10;
while (--i<5)
{
printf(“%d”, i);
} }
getch ( );
}
Output
9876
Operators in C Contd…
a) Increment and Decrement Operators Contd…
❑ Step 1 : In above program, value of “i” is decremented from 10 to
9 using pre-decrement operator.
❑ Step 2 : This decremented value “9” is compared with 5 in while
expression.
❑ Step 3 : Then, this decremented value “9” is assigned to the
variable “i”.
❑ Above 3 steps are continued until while expression becomes false
and output is displayed as “9 8 7 6”.
Operators in C Contd…
b) Comma Operator
❑ Special operator which separates the declaration of multiple
variables
❑ Has Lowest Precedence i.e it is having lowest priority so it is
evaluated at last
❑ Returns the value of the rightmost operand when multiple
comma operators are used inside an expression
❑ Acts as Operator in an Expression and as a Separator while
Declaring Variables
Operators in C Contd…
b) Comma Operator Contd…
#include<stdio.h>
int main( )
{
int i, j;
i=(j=10, j+20);
printf(“i = %d\n j = %d\n” , i,j );
return 0;
}
Operators in C Contd…
c) Arrow Operator (->)
❑ Arrow operator is used to access the structure members
when we use pointer variable to access it
❑ When pointer to a structure is used then arrow operator is
used
c) Arrow Operator (->)
#include <stdio.h>
#include<stdlib.h>
struct abc {
int a;};
int main(){
g->a=19;
printf("%d",g->a);
return 0;}
Operators in C Contd…
d) Assignment Operators
❑ Assigns result of expression to a variable
❑ Performs Arithmetic and Assignment operations
❑ Commonly used Assignment operator: =
❑ Syntax variable = expression;
❑ Examples
❑ num = 25; age = 18; pi = 31.4; area = 3.14 * r * r;
Operators in C Contd…
❑ Shorthand Assignment Operators
Simple Assignment
Shorthand Operator
Operator
a=a+1 a+=1
a=a–1 a-=1
a=a*2 a*=2
a=a/b a/=b
a=a%b a%=b
c = c * (a + b) c *= (a + b)
b = b / (a + b) b /=(a + b)
/* Program for Assignment Operations*/
#include<stdio.h>
#include<conio.h>
void main( )
{
int a;
a = 11;
a+ = 4;
printf(“Value of A is %d\n”,a);
a = 11;
a- = 4;
printf(“Value of A is %d\n”,a);
a = 11;
a* = 4;
printf(“Value of A is %d\n”,a);
a = 11; a/ = 4;
printf(“Value of A is %d\n”,a);
a = 11;
a% = 4;
printf(“Value of A is %d\n”,a);
getch ( );
}
Output
Value of A is 15
Value of A is 7
Value of A is 44
Value of A is 2
Value of A is 3
Operators in C Contd…
e) Bitwise Operators
❑ In arithmetic-logic unit, mathematical operations like:
addition, subtraction, multiplication and division are done in
bit-level
❑ To perform bit-level operations in C programming, bitwise
operators are used
❑ Bit wise operators in C language are & (bitwise AND), |
(bitwise OR), ~ (bitwise NOT), ^ (XOR), << (left shift) and >>
(right shift)
Operators in C Contd…
e) Bitwise Operators Contd…
Operator Description Example
BinaryAND Operator copies a bit to the result if it (A &B) = 12, i.e., 0000
& exists in both operands. 1100
Binary Ones Complement Operator is unary and has (~A ) = -60, i.e,. 1100 0100
~ in 2's complement form.
the effect of 'flipping' bits.
# include <stdio.h>
int main()
{
unsigned int a = 60; /* 60 = 0011 1100 */
unsigned int b = 13; /* 13 = 0000 1101 */
int c = 0; c = a & b; /* 12 = 0000 1100 */
printf("Line 1 - Value of c is %d\n", c ); c = a | b; /* 61 = 0011 1101 */
printf("Line 2 - Value of c is %d\n", c ); c = a ^ b; /* 49 = 0011 0001 */
printf("Line 3 - Value of c is %d\n", c ); c = ~a; /*-61 = 1100 0011 */
printf("Line 4 - Value of c is %d\n", c ); c = a < < 2; /* 240 = 1111 0000 */
printf("Line 5 - Value of c is %d\n", c ); c = a > > 2; /* 15 = 0000 1111 */
printf("Line 6 - Value of c is %d\ n", c );
return 0;
}
Output
Line 1 - Value of c is 12
Line 2 - Value of c is 61
Line 3 - Value of c is 49
Line 4 - Value of c is -61
Line 5 - Value of c is 240
Line 6 - Value of c is 15
Operators in C Contd…
f) Sizeof Operators
❑ This operator returns the size of its operand in bytes
❑ The sizeof operator always precedes its operand
❑ Used to calculate the size of data type or variables
❑ Can be nested
❑ Returns the size in integer format
❑ Syntax looks more like a function but it is considered as an
operator in c programming
/* Program for Sizeof Operators*/
#include<stdio.h>
int main( )
{
int a;
float b;
double c;
char d;
printf(“Size of Integer :%d\n\n”,sizeof(a));
printf(“Size of Floating Point :%d\n\n”,sizeof(b));
printf(“Size of Double :%d\n\n”,sizeof(c));
printf(“Size of Charcter :%d\n\n”,sizeof(d));
return 0;
}
Output
Size of Integer :2
Size of Floating Point :4
Size of Double :8
Size of Character :1
Operators in C
a) Relational Operators
b) Logical Operators
c) Conditional Operators
Operators in C Contd…
a) Relational Operators
❑ Binary Operators (or) Boolean Operators
❑ Produces an integer result
❑ Condition True : Integer value is 1
❑ Condition False : Integer value is 0
❑ Compares
❑ Values between two variables
❑ Values between variables and constants
Operators in C Contd…
a) Relational Operators Contd…
❑ Relational Expression / Boolean Expression : An
expression containing a relational operator
Operators in C Contd…
a) Relational Operators Contd…
❑ Consider a = 10 and b =4. The relational expression returns
the following integer values
#include<stdio.h>
int main( )
{
int a,b;
printf("Enter the two Values\n");
scanf("%d%d", &a, &b);
printf(“a>b is %d\n“, (a>b));
printf(“a<b is %d\n“, (a<b));
printf(“a>=b is %d\n“, (a>=b));
printf(“a<=b is %d\n“, (a<=b));
printf(“a==b is %d\n“, (a==b));
printf(“a!=b is %d\n“, (a!=b));
return 0;
}
Output
4
2
a > b is 1
a < b is 0
a > = b is 1
a < = b is 0
a = = b is 0
a ! = b is 1
Operators in C Contd…
b) Logical Operators
❑ Combines two or more relations
❑ Used for testing one or more conditions
Operators in C Contd…
b) Logical Operators Contd…
❑ Logical Expression / Compound Relational Expression :
An expression which combines two or more relational
expression
#include<stdio.h>
int main( )
{
int age,height;
printf("Enter Age of Candidate:\n");
scanf("%d", &age);
printf(“Enter Height of Candidate:\n“);
scanf("%d", &height);
if ((age>=18) && (height>=5))
printf(“The Candidate is Selected”);
else
printf(“Sorry, Candidate not Selected”);
return 0;
}
Output 1
Enter Age of Candidate: 18
Enter Height of Candidate: 6
The Candidate is Selected
Output 2
Enter Age of Candidate: 19
Enter Height of Candidate: 4
Sorry, Candidate not Selected
Operators in C Contd…
c) Conditional Operators
❑ ? and are the Conditional Operators
❑ Also called as Ternary Operators
❑ Shorter form of if-then-else statement
❑ Syntax
Expression 1 ? Expression 2 : expression 3
❑ If expression 1 is true then the value returned will be
expression 2