C ProgrammingClass I
Introduction to CGeneration of ‘C’ Language1. In 1967, Martin Richards developed a language called BCPL
(Basic Combined Programming Language)2. In 1970, Ken Thompson created a language using many features
of BCPL and called it simply B.3. In 1972, ‘C’ is Introduced by Dennis Ritchie at Bell laboratories and
in the UNIX operating system.
TYPES OF ‘C’ COMPILER
1. Borland ‘C’ Compiler
2. Turbo ‘C’ Compiler
3. Microsoft ‘C’ Compiler
4. ANSI ‘C’ Compiler
Why are using ‘C’• It is a Structured Programming Language• High – Level Language• Machine Independent Language• It allows software developers to develop programs
without worrying about the hardware platforms where they will be implemented
Steps in Learning C
Character set
Constants, variableAnd Data types
Control statements
Functions
Files
Structures and Unions
Pointers
Arrays
Data Structures
Algorithms
Programs
C’S Program StructureDocumentation section
Preprocessor section
Definition section
Global declaration sectionmain() { Declaration part; Executable part;}
Sub program section{
Body of the subprogram}
C’s Character setC Character set
Source Character set
Execution Character set
AlphabetsA to Z & a to z
Escape Sequences\a,\b,\t,\n
Digits0 to 9
Special Characters+,-,<,>,@,&,$,#,!
C TOKENS
C TOKENS
Keywords
Identifiers
Strings
Special Symbols
Constants
Operators
-15.5
100
Grant_total
Amount
a1
float
while
“ABC”
“YEAR”
+ - * /
[ ]
{ }
C’s keyword Basic Building Block of the Program This are the Reserved words This word’s cant be changed
C keywords
autobreakcasecharconstcontinuedefaultdo
doubleelseenumexternfloatforgotoif
intlongregisterreturnshortsignedsizeofstatic
structswitchtypedefunionunsignedvoidvolatilewhile
C’s Variables
• A variable is a data name as well as identifier that may be used to store a data value.
Rules for Naming the Variablesa) A variable can be of any combination of alphabets, digits and
underscore.b) The first character of the variable can’t be digits.c) The length of the variable can’t be exceeded by 8.(ANSI C – 32
Character)d) No commas, blanks or special symbol are allowed within a variable
name.e) Uppercase and lowercase are significant. That is, the variable Total is
not the same as total or TOTAL.f) It should not be a keyword.g) White space is not allowed.
C’s Variables cont.Variable Declaration
It tells the computer what the variable name and type of the data
Syntax data_type a1,a2,a3……..an;
Description data_type is the type of the data.a1,a2,a3……an are the list of variables
Example int number;char alpha;float price;
C’s Variables cont.Initializing Variables
Initialization of variables can be done using assignment operator(=)
Syntax a1 = c1 ;(or) data_type a1 = c1;
Description a1 is the variablec1 is the constantdata_type is the type of the data
Example int a1 = 29;float f1 = 34.45;char c1 = ‘d’
C’s constant
C constant
Numeric constant
Character constant
Integer constanteg: roll_number = 12345;
Real constanteg: pi = 3.14;
Single Character constanteg: ch = ‘c’; ch = ‘3’;
String constanteg: name = “palani”
The item whose values can’t be changed during execution of program are called constants
C’s constant Conti…Integer constant
eg: roll_number = 12345;
Hexadecimal constantEg. 0x23
Octal constantEg. 043
Decimal ConstantEg. 35
Real Constanteg: pi = 3.14;
Double Precision ConstantSingle Precision Constant
Data Types This are the type of the data that are going to access within the
program.
C’s Data Type
Primary User defined Derived EmptyCharIntFloatDouble
typedefArraysPointersStructuresUnion
Void
C’s Data types cont.
Integer
Signed
Unsigned
Int (%d)2 bytes,-32768 to 32767
Short int (%d)1 bytes, -128 to 127
Long int (%ld)4 bytes,
-2,147,483,648 to 2,147,483,647
Unsigned Int (%d)2 bytes, 0 TO 65, 535
Unsigned short int (%d)1 bytes, 0 TO 255
Unsigned Long int (%ld)4 bytes,
0 TO 4,294,967,295
The primary data types are further classified as below.Integers are the whole numbers, both positive and negative.
C’s Data types cont.
Float Type
Float (%f )4 bytes, 3.4E -38 to 3.4E +38
Double (%lf)8 bytes, 1.7E -308 to 1.7E +308
Long Double (%lf)10 bytes, 3.4E -4932 to 1.1E+4932
Float are the numbers which contain fractional parts, both Positive and Negative.
C’s Data types cont.
Character Type
Char (%c)1 byte, -128 to 127
Signed Char (%c)1 byte, -128 to 127
Unsigned Char (%c)1 byte, 0 to 255
Char are the characters which contain alpha-numeric character. Characters are usually stored in 8 bits (one byte) of internal storage
The void is the Null Data type.
C’ Delimiters
Symbol Name Meaning# Hash Pre-processor directive
, comma Variable delimiters (to separate list of variables)
: colon Label delimiters
; Semi colon Statement delimiters
() parenthesis Used in expressions or in functions
{} Curly braces Used in blocking ‘C’ structure
[] Square braces Used along with arrays
Delimiters are the symbols, which has some syntactic meaning and has got significance.
C’ Statements
Statements
Expression Statement Compound Statement Control Statement
Statement can be defined as set of declarations (or) sequence of actionAll statements in ‘C’ ends with semicolon(;) except condition and control statement
Expression Statement
1. An Expression is a combination of constant, variables, operators, and function calls written in any form as per the syntax of the C language.
2. The values evaluated in these expressions can be stored in variables and used as a part for evaluating larger expressions.
3. They are evaluated using an assignment statement of the form.
variable = expression;
4. For Example,
age = 21;
result = pow(2,2);
simple_interest = (p * n * r) / 100;
Algebraic Expression Equivalent C Expression
(mnp + qr – at) (m*n* p+q*r-s*t)
(a+b+c) (x+y+z) (a+b+c)*(x+y+z)
abc / x+y (a*b*c) / (x+y)
8a3 + 3a2 + 2a 8*a*a*a+3*a*a+2*a
(a-b)+(x-y) / mn ((a-b)+(x-y)) / (m*n)
8.8(a+b-c) + c / pq 8.8 * (a+b-c) + (c / (p*q))
Compound Statements 1. A group of valid C expression statements placed within an opening flower brace ‘{‘ and
closing flower brace ‘}’ is referred as a Compound Statements.2. For Example,
{X = (A + (B * 3) – C);Y = A + B * 3;Z = A * (B * 3 – C);
}
1. This statement normally executed sequentially as they appear in the program. 2. In some situations where we may have to change the order of execution of statements until
some specified conditions are met.3. The control statement alter the execution of statements depending upon the conditions specified inside the parenthesis.4. For Example,
if (a == b) if ((x < y) && (y > z)){ { -------- ----------- -------- -----------} }
Control Statements
Operators An operator is a symbol that specifies an operation to be performed
on the operands
Some operator needs two operands (binary) Eg: a+b; ‘+’ is an operator and ‘a’ and ‘b’ are the operands Some operator needs one operand (unary) Eg: ++a;
‘++’ is an operator and a is the operand
Types of Operatorsoperators
Arithmetic operator
Relational operators
Logical operator
Assignment operator
Increment and Decrement Operator (Unary Op.)
Conditional operator (Ternary operator)
Bitwise operator
Special operator
Arithmetic Operators
Operator Meaning Examples+ Addition 1+2 = 3
- Subtraction 3 -2 = 1
* Multiplication 2*2 = 4
/ Division 2/2 = 1
% Modulo division 10/3= 1
This operators help us to carryout basic arithmetic operations such addition, subtraction, multiplication, division
Operation Result Examples
Int/int int 2/2 = 1
Real/int real 7.0/2 = 3.5
Int/real real 7/2.0 = 3.5
Real/real real 7.0/2.0 = 3.5
Relational Operator• This are used to compare two or more operands.• Operands can be variables, constants or expression.• eg: comparison of two marks or two values.
Operator Meaning Example Return value
< is less than 5<6 1
<= is less than or equal to 4<=4 1
> is greater than 5>7 0
>= is greater than or equal to 7>=5 0
== equal to 6==6 1
!= not equal to 5!=5 0
Logical Operator
Operator Meaning Example Return value
&& Logical And (9>2) && (6>4) 1
|| Logical OR (9>2) || (3.4) 1
! Logical Not 4 ! 4 0
AND truth tableTrue True True
True False False
False True False
False False False
OR truth tableTrue True True
True False True
False True True
False False False
• This operators are used to combine the results of two or more conditions.
Assignment Operator This are used to assign a value or an expression or a variable to another variable eg: a = 10; n1 = 20;
Syntax:
identifier = expression;
a) Compound Assignment This operator are used to assign a value to a variable in order to assign a new
value to a variable after performing a specified operation. eg: a+=10,n1-=20;b) Nested Assignment (Multiple)
This operator are used to assign a single value to multiple variables eg: a=b=c=d=e=10;
List of Shorthand or Compound Assignment Operator
Operator Meaning+= Assign Sum
-= Assign Difference
*= Assign Product
/= Assign Quotient
%= Assign Remainder
~= Assign One’s Complement
<<= Assign Left Shift
>>= Assign Right Shift
&= Assign Bitwise AND
!= Assign Bitwise OR
^= Assign Bitwise X - OR
Increment and Decrement operator
• C provide two operator for incrementing a value or decrementing a value
a) ++ Increment operator (adds one to the variable) b) -- Decrement operator (Minus one to the variable) eg: a++ (if a= 10 then the output would be 11)
Operator Meaning
++X Pre increment
X++ Post increment
--X Pre decrement
X-- Post decrement
Increment and Decrement operator Conti…
Expression Result+ + X 4
X + + 3
- - X 2
X - - 3
If the value of the operand x is 3 then the various expressions and their results are
The pre – increment operation (++X) increments x by 1 and then assign the value to x. The post – increment operation (X++) assigns the value to x and then increments 1. The pre-decrement operation ( --X) decrements 1 and then assigns to x. The post – decrement operation (x--) assigns the value to x and then decrements 1. These operators are usually very efficient, but causes confusion if your try to use too many evaluations in a single statement.
Conditional Operator
• It is used check the condition and execute the statement depending upon the condition
Syntax Condition?exp1:exp2Description The ‘?’ operator act as ternary
operator, it first evaluate the condition, if it is true then exp1 is evaluated if the condition is false then exp2 is evaluated
Example a= 2; b=3ans = a>b?a:b;printf (ans);
Bitwise Operator• This are used to manipulate the data at bit level• It operates only on integers
Operator Meaning
& Bitwise AND
| Bitwise OR
^ Bitwise XOR
<< Shift left
>> Shift right
~ One’s complement
Bitwise Operator cont.
Bitwise AND (both the operand should be high for 1)
0 0 0
1 1 1
Bitwise XOR (the two operands should be different for 1)
0 0 1
1 1 0
• The truth table for Bitwise AND,OR and XOR
Bitwise OR (either of the operand should be high for 1)
0 0 0
1 1 1
Eg: x = 3 = 0000 0011 y = 4 = 0000 0100
x&y = 0000 0000
Eg: x = 3 = 0000 0011 y = 4 = 0000 0100
x|y = 0000 0111
Eg: x = 3 = 0000 0011 y = 4 = 0000 0100
x ^ y = 0000 0111
Bitwise Operator cont.Bitwise One’s Complement
The one’s complement operator (~) is a unary operator, which causes the bits of the operand to be inverted (i.e., one’s becomes zero’s and zero’s become one’s)
For Example, if x = 7
i.e 8 – bit binary digit is 0 0 0 0 0 1 1 1
The One’s Complement is 1 1 1 1 1 0 0 0
Bitwise Left Shift OperatorThe Left shift operator (<<) shifts each bit of the operand to its Left. The general form or
the syntax of Left shift operator is
variable << no. of bits positions
if x = 7 (i.e., 0 0 0 0 0 1 1 1) the value of y in the expression
y = x <<1 is 14
0 0 0 0 1 1 1 0 = 14 since it shifts the bit position to its left by one bit. The value stored in x is multiplied by 2N (where n is the no of bit positions) to get the required value. For example, if x = 7 the result of the expression y = x << 2 is y = x * 22 (i.e. 28)
Bitwise Operator cont.Bitwise Right Shift Operator
The Right shift operator (>>) shifts each bit of the operand to its Right. The general form or the syntax of Right shift operator is
variable >> no. of bits positions
if x = 7 (i.e., 0 0 0 0 0 1 1 1) the value of y in the expression
y = x >> 1 is 3
0 0 0 0 0 0 1 1 = 3 since it shifts the bit position to its right by one bit. The value stored in x is divided by 2N (where n is the no of bit positions) to get the required value. For example, if x = 7 the result of the expression y = x << 2 is y = x / 22 (i.e. 1). If you use the left shift operator i.e. x = x << 1 the value of x will be equal to 2 (i.e., 0 0 0 0 0 0 1 0) since the lost bit cannot be taken back.
Operator Precedence and Associativity of Operator
1. Each operator in C has a precedence associated with it.
2. This precedence is used to determine how an expression involving more than one operator is evaluated.
3. These are distinct levels of precedence and an operator may belong to one of these levels.
4. The operators at the higher level of precedence are evaluated first.
5. The operators of the same precedence are evaluated either from ‘left to right’ or from ‘right to left’, depending on the level.
6. That is known as the associativity property of an operator.
What is Precedence Rule and Associative Rule
Arithmetic operators precedence
• The precedence of an operator gives the order in which operators are applied in expressions: the highest precedence operator is applied
first, followed by the next highest, and so on. • eg: Arithmetic operator precedence
Precedence operatorHigh *,/,%Low +,-
The arithmetic expression evaluation is carried out using two phases from left to right through the expressions
Example:if (x == 10 +15 && y <10)
The precedence rules say that the addition operator has a higher priority than the logical operator (&&) and the relational operators (== and <). Therefore, the addition of 10 and 15 is executed first. This is equivalent to: if (x == 25 && y < 10)
The next step is to determine whether x is equal to 25 and y is less than 10, if we assume a value of 20 for x and 5 for y, then
x == 25 is FALSE (0)y <10 is TRUE (1)
Note that since the operator < enjoys a higher priority compared to ==, y < 10 is tested first and then x ==25 is tested.
Finally we get,
if (FALSE && TRUE)
Because one of the conditions is FALSE, the complex condition is FALSE.
In the case of &&, it is guaranteed that the second operand will not be evaluated if the first is zero and in the case of || , the second operand will not be evaluated if the first is non – zero.
Relational operators precedence
Precedence and Associativity Table
• The following table lists all the operators, in order of precedence, with their associativity
Operators Operations Associativity priority() Function call Left to Right 1
[] Square brackets
-> Structure operator
. Dot operator
+ Unary plus Right to Left 2
- Unary minus
++ Increment
-- Decrement
! Not
Precedence and Associativity Table cont.
Operators Operations Associativity priority
~ Complement Right to Left 2
* Pointer operation
& Address operator
Sizeof Size of operator
type Type cast
* Multiplication Left to Right 3
/ Division
% Modulo
+ Addition Left to Right 4
- Subtraction
Precedence and Associativity Table cont.
Operators Operations Associativity priority<< Left shift Left to Right
Left to Right
5
6>> Right shift
< is less than
<= is less than or equal to
> is greater than
>= is greater than or equal to
== equal to
!= not equal to
& Bitwise AND Left to Right 7
| Bitwise OR
^ Bitwise XOR
Precedence and Associativity Table cont.
Operators Operations Associativity priority&& Logical And Left to Right 8
|| Logical OR
?= Conditional Right to Left 9
=,*=,-=,&=,+=,^=,!=,<<=,>>=
Assignment Right to Left 10
, comma Left to Right 11
Sample Expression
• Exp = a - 2 * a * b + b / 4
Let us have a=10,b=20
exp = 10 - 2 * 10 * 20 + 20 / 4
Phase I exp = 2*10*20 , 20/4 will be evaluated. phase II exp = 10-400+5 will be evaluated. Result exp = -395.
Expression Evaluation
Let us see some examples for evaluating expression.
Let a = 5, b = 8, c = 2.
x = b / c + a * c
4 10
14
Let us see some examples for evaluating expression.
Let a = 5, b = 8, c = 2.
y = a + (b * 3) - c
29
27
24
Expression Evaluation
TYPE CONVERSION
OR
TYPE CASTING
What is Type Conversion or Type Casting
Type Casting means One data type converted into another data type. This is called Type conversion or Type casting.
Example:
1. Integer into floating point number
2. Character into integer
3. Floating point number into Integer Number
Type conversion is classified into two types.
1. Implicit Type Conversion (Automatic Type Conversion)
2. Explicit Type Conversion (Manual Type Conversion)
Type Conversion
Implicit Conversion
Explicit Conversion
Automatic Conversion
Casting Operation
Type Conversion Hierarchy
short char
int
unsigned int
long int
unsigned long int
float
double
long double
Implicit Type
Conversion
Explicit Type
Conversion
Implicit Type Conversion
1. The Implicit Type Conversion is known as Automatic Type Conversion.
2. C automatically converts any intermediate values to the proper type so that the expression can be evaluated without loosing any significance.
3. Implicit type Conversion also known as Converted Lower order data type into Higher order data type.
4. Implicit Type Conversion also known as Widening.
Example:
int a, b;
float c;
c = a + b;
Print c;
float a,b;
int c;
c = a + b; // This is Wrong
Print c;
Explicit Type Conversion
1. The Explicit Type Conversion is, there are instances when we want to force a type conversion in a way that is different from the automatic conversion.
2. The Explicit Type Conversion is Converted Higher order data type into Lower order data type.
3. The Explicit type Conversion is also known as borrowing.
4. The Explicit type conversion forces by a casting operator.
Disadvantage of Explicit Type Conversion
1. float to int causes truncation of the fractional part.
2. double to float causes rounding of digits.
3. Long int to int causes dropping of the excess higher order bits.
The general form of the casting is
(type_name) expression;
Where type_name is one of the standard C data type.
The expression may be a constant, variables or an expression.
For Example:
float a, b;
int c;
c = (int) a + (int) b;
Print c;
Use of Casts
Example Action
x = (int) 7.5 7.5 is converted to integer by truncation.
a = (int) 21.3 / (int) 4.5 Evaluated as 21 / 4 and the result would be 5.
b = (double) sum / n Division is done in floating point mode.
y = (int) (a + b) The result of a + b is converted to integer.
z = (int) a + b a is converted to integer and then added to b.
p = cos ((double) x) Converts x to double before using it.
Input And Output Functions
Ip / Op Statements
We have two methods for providing data to the program.
a) Assigning the data to the variables in a program. b) By using the input/output statements.
‘c’ language supports two types of Ip / Op statements This operations are carried out through function calls. Those function are collectively known as standard I / O library
Ip / Op Statements cont.
Ip / Op Functions
Unformatted Ip / Op statementsInput Outputgetc() putc()getch() putch()Gets() puts()
Formatted Ip / Op statements
Input OutputScanf() printf()fscanf() fprintf()
Unformatted Ip / Op statements
getch() function
Syntax char variable = getch();
Description char is the data type of the variable;getch() is the function
Example char x = getch();putch (x);
• These statements are used to input / output a single / group of characters from / to the input / output device.
Single character Input/output function
putch() function
Syntax putch (character variable);
Description char variable is the valid ‘c’ variable of the type of char data type.
Example char x ;putch (x);
Unformatted Ip / Op statements cont.
gets() functionSyntax gets (char type of array
variable);
Description valid ‘c’ variable declared as one dimensional array.
Example char s[10];gets (s);
Group of character Input / output function. Gets() and puts are used to read / display the string from / to the
standard input / output device.
puts() function
Syntax puts (char type of array variable)
Description valid ‘c’ variable declared as one dimensional array.
Example char s[10];gets (s);puts (s);
Unformatted Ip / Op statements cont.
getc() functionSyntax getc(char type of variable,
file pointer);
Description The getc function returns the next character from the input stream pointed to by
stream
Example int getc(FILE *stream );
Single character Input / output function with files. Gets() and puts are used to read / display the string from / to the
standard input / output device.
putc() function
Syntax putc (char type of variable, file pointer)
Description The putc function returns
the character written .
Example int putc(int c , FILE
*stream );
Sample Program#include<stdio.h>Void main(){ char name[10]; char address[20]; Puts(“Enter the name : ”); gets(name); puts(“Enter the address : ”); gets(address); puts(“Name = “) puts(name); puts(“Address = “); puts(address);}
Formatted Ip / Op statements It refers to Input / Output that has been arranged in a particular format. Using this statements, the user must specify the type of data, that is going to
be accessed.
scanf() (This function is used to enter any combination of input).
Syntax scanf (“control strings”,var1,var2…..var n);
Description control strings is the type of data that user going to access via the input statements.var1,var2 are the variables in which the data’s are stored.
Example int n;scanf (“%d”, &n);
Formatted Ip / Op statements Control strings i) It is the type of data that user is going to access via the input statement ii) These can be formatted . iii) Always preceded with a ‘%’ symbol.
Format code Variable type Display
%c Char Single character
%d Int Decimal integer -32768 to 32768
%s Array of char Print a Strings
%f Float or double Float point value without exponent
%ld Long int Long integer -65536 to 65535
%u Int Unsigned decimal integer
%e Float or double Float point values in exponent form
%h int Short integer
Printf()
printf() (This function is used to display the result or the output data on to screen)
Syntax printf (“control strings”,var1,var2…..var n);
Description Control strings can be anyone of the followinga) Format code character codeb) Execution character setc) Character/strings to be displayedVar1,var2 are the variables in which the data’s are stored.
Example printf (“this is computer fundamental class”);printf (“\n Total is %d and average is %f”,sum,avg);
Control Statements(Decision Making)
Control Statements
Control statements
Selection Statements Iteration statements
The if else statement
The switch statements
The while loop &Do while loop
The for loop
The break statement
Continue statement
Goto statement
Types of Selection Statement
1. Simple if Selection statement
2. if else Selection statement
3. Nested if else Selection statement
4. else if ladder Selection statement
Simple if Selection statement
It is used to control the flow of execution of the statements and also to test logically whether the condition is true or false.
if the condition is true then the statement following the “if “ is executed ifit is false then the statement is skipped.
Syntax: if ( condition ) { statement ; }
Test Condition
Executable X - Statement
True
//Biggest of Two Numbers
#include <stdio.h>
void main()
{
int a, b;
clrscr();
printf(“Enter the A and B Value:\n”);
scanf(“%d”, &a);
if (a > b)
{
printf(“A is Big”);
}
getch();
}
The if else statement It is used to execute some statements when the condition is true and execute some other
statements when the condition is false depending on the logical test.Syntax: if ( condition ) { statement 1 ; (if the condition is true this statement will be executed) } else { statement 2 ; (if the condition is false this statement will be executed) }
Test Condition
Executable X - Statement
True
Executable Y - Statement
False
// Biggest of Two Numbers
#include <stdio.h>
void main(){
int a, b;clrscr();
printf(“Enter the A and B Value:\n”);scanf(“%d%d”, &a,&b);
if (a > b){
printf(“A is Big”);}
else{
printf(“B is Big”);}
getch();}
// Given Number is ODD or EVEN Number#include <stdio.h>
void main(){
int n;clrscr();
printf(“Enter the Number:\n”);scanf(“%d”, &n);
if (n % 2 == 0){
printf(“Given Number is Even Number”);}else{
printf(“Given Number is Odd Number”);}
getch();}
Nested if….. else statement
Syntax:
if ( condition 1){
if ( condition 2)statement 1 ;
elsestatement 2 ;
}else{
if (condition 3)statement 3;
elsestatement 4;
}
when a series of if…else statements are occurred in a program, we can write an entire if…else statement in another if…else statement called nesting
Test Condition_1
Executable X2 - Statement
Test Condition_2
Executable X1 - Statement
Test Condition_3
Executable X4 - Statement Executable X3 - Statement
TRUE
TRUE
TRUE
FALSE
FALSE
FALSE
else if Ladder or Multiple if else Statements
Syntax:
if (condition_1)executed statement_1;
else if (condition_2) executed statement_2; else if (condition_3)
executed statement_3;-------------------------------------------- else if (condition_n)
executed statement_n; else
executed statement_x;
When a series of decisions are involved we have to use more than one if – else statement called as multiple if’s. Multiple if – else statements are much faster than a series of if – else statements, since theif structure is exited when any one of the condition is satisfied.
Test Condition_1
Test Condition_2
Exec. Stat_1
Test Condition_3
TRUE
Test Condition_n
Exec. Stat_2
Exec. Stat_3
Exec. Stat_nExec. Stat_X
TRUE
TRUE
TRUE
FALSE
FALSE
FALSE
FALSE
else if Ladder
if (result >= 75) printf ( “ Passed: Grade A\n “ ) ;
else if (result >= 60)printf ( “ Passed: Grade B\n “ ) ;
else if (result >= 45) printf ( “ Passed: Grade C\n “ ) ;
elseprintf ( “ Failed\n “ ) ;
THE SWITCH STATEMENT
• The control statements which allow us to make a decision from the number of choices is called switch (or) Switch-case statement.
• It is a multi way decision statement, it test the given variable (or) expression against a list of case value.
switch (expression){ case constant 1: simple statement (or) compound statement; case constant 2: simple statement (or) compound statement; case constant 3: simple statement (or) compound statement; }
switch (expression){ case constant 1: simple statement (or) compound statement; case constant 2: simple statement (or) compound statement; default : simple statement (or) compound statement; }
Example Without Break Statement#include<stdio.h>void main (){
int num1,num2,choice;printf(“Enter the Two Numbers:\n”);scanf(“%d%d”,&num1,&num2);printf(“1 -> Addition\n””);printf(“2->Subtraction\n”);printf(“3->Multiplication\n”);printf(“4->Division\n”);printf(“Enter your Choice:\n”);scanf(“%d”,&choice);
switch(choice){
case 1: Printf(“Sum is %d\n”, num1+num2);
case 2: Printf(“Diif. is %d\n”, num1-num2);
case 3: Printf(“Product is %d\n”,
num1*num2);
case 4: Printf(“Division is %d\n”, num1/num2);
default: printf (“Invalid Choice…..\n”);
}
getch();}
#include<stdio.h>void main (){
int num1,num2,choice;printf(“Enter the Two Numbers:\n”);scanf(“%d%d”,&num1,&num2);printf(“1 -> Addition\n””);printf(“2->Subtraction\n”);printf(“3->Multiplication\n”);printf(“4->Division\n”);printf(“Enter your Choice:\n”);scanf(“%d”,&choice);
switch(choice){
case 1: printf(“Sum is %d\n”, num1+num2); break;case 2:
printf(“Diif. is %d\n”, num1-num2); break;case 3: printf(“Product is %d\n”,
num1*num2); break;case 4:
printf(“Division is %d\n”, num1/num2); break;default: printf (“Invalid Choice…..\n”);
}
getch();}
Example With Break Statement
Rules for Switch
The expression in the switch statement must be an integer or character constant. No real numbers are used in an expression. The default is optional and can be placed anywhere, but usually placed at end. The case keyword must be terminated with colon (:); No two case constant are identical. The values of switch expression is compared with case constant in the order specified i.e
from top to bottom. A switch may occur within another switch, but it is rarely done. Such statements are called
as nested switch statements. The switch statement is very useful while writing menu driven programs.
Iteration Statements1. Iteration statements is also known as Looping statement.2. A segment of the program that is executed repeatedly is called as a loop.3. Some portion of the program has to be specified several number of times or until a
particular condition is satisfied.4. Such repetitive operation is done through a loop structure.5. The Three methods by which you can repeat a part of a program are,
1. while Loops2. do….while loops3. for Loop
Loops generally consist of two parts :
Control expressions: One or more control expressions which control the execution of the loop, Body : which is the statement or set of statements which is executed over
and over
Any looping statement , would include the following steps:
a) Initialization of a condition variable
b) Test the control statement.
c) Executing the body of the loop depending on the condition.
d) Updating the condition variable.
While Loop
A while loop has one control expression, and executes as long as that expression is true. The general syntax of a while loop is
A while loop is an entry controlled loop statement.
initialize loop counter;while (condition){
statement (s);increment or decrement loop counter
}
Start
Initialize
Test Condition
Body of Loop
Increment or Decrement
Stop
False
True
Example:
// Print the I Values
#include <stdio.h>
void main()
{
int i;
clrscr();
i = 0;
while(i<=10)
{
printf(“The I Value is :%d\n”,i);
++i;
}
getch();
}
// Summation of the series 1 + 2 + 3 + 4 + …….
#include <stdio.h>
void main()
{
int i, sum;
clrscr();
i = 1;
sum = 0;
while(i<=10)
{
sum = sum + i
printf(“The Sum Value is:%d\n”,i);
++i;
}
getch();
}
THE do-while LOOP• The body of the loop may not be executed if the condition is not satisfied in while
loop.• Since the test is done at the end of the loop, the statements in the braces will
always be executed at least once.• The statements in the braces are executed repeatedly as long as the expression
in the parentheses is true.
Make a note that do while ends in a ; (semicolon)Note that Do… While Looping statement is Exit Controlled Looping statement
initialize loop counter;do{
statement (s);increment or decrement loop counter
}while (condition);
Start
Initialize
Test Condition
Body of Loop
Increment or Decrement
Stop
False
True
Sl.No. while loop do-while loop
1. The while loop tests the condition beforeeach iteration.
The do – while loop tests the condition afterthe first iteration.
2. If the condition fails initially the loop isSkipped entirely even in the first iteration.
Even if the condition fails initially the loop isexecuted once.
Difference Between While Loop and Do – While Loop
Example:
// Print the I Values
#include <stdio.h>
void main()
{
int i;
clrscr();
i = 1;
while(i<=10)
{
printf(“The I Value is :%d\n”,i);
i++;
}
getch();
}
// Print the I Values
#include <stdio.h>
void main()
{
int i;
clrscr();
i = 1;
do
{
printf(“The I Value is :%d\n”,i);
i++;
} while(i<=10);
getch();
}
for LoopThe for loop is another repetitive control structure, and is used to execute set of instruction repeatedly until the condition becomes false.To set up an initial condition and then modify some value to perform each succeeding loop as long as some condition is true.
The syntax of a for loop is
The three expressions : expr1 - sets up the initial condition, expr2 - tests whether another trip through the loop should be taken, expr3 - increments or updates things after each trip.
for( expr1; expr2 ;expr3){ Body of the loop;}
Start
Initialize; test_condition; Increment / Decrement
Body of Loop
Stop
Example
#include<stdio.h>
void main()
{
for (int i = 1; i <= 10; i++)
printf("i is %d\n", i);
}
There is no need of { } braces for single line statement and for multiple line it is
essential else it will consider only next line of for statement.
Given example will print the values from 1 to 10.
Additional Features of for Loop
Case 1:
The statement
p = 1;
for (n = 0; n < 17; ++ n)
can be rewritten as
for (p = 1, n = 0; n < 17;++n)
Case 2:
The second feature is that the test – condition may have any compound relation and
the testing need not be limited only to the loop control variable.
sum = 0;
for (i = 1; i < 20 && sum < 100; ++ i)
{
sum = sum + i;
printf(“%d %d\n”, i, sum);
}
Additional Features of for Loop Conti…
Case 3:It also permissible to use expressions in the assignment statements of initialization
and increments sections.For Example:
for (x = (m + n) / 2; x > 0; x = x / 2)Case 4:
Another unique aspect of for loop is that one or more sections can be omitted, if necessary.
For Example:m = 5;for ( ; m ! = 100 ;){
printf(“%d\n”,m);m = m + 5;
}Both the initialization and increment sections are omitted in the for statement. The
initialization has been done before the for statement and the control variable is incremented inside the loop. In such cases, the sections are left ‘blank’. However, the semicolons separating the sections must remain. If the test – condition is not present, the for statement sets up an ‘infinite’ loop. Such loops can be broken using break or goto statements in the loop.
Case 5:We can set up time delay loops using the null statement as follows:
for ( j = 1000; j > 0; j = j – 1)1. This is loop is executed 1000 times without producing any output; it simply causes a
time delay.2. Notice that the body of the loop contains only a semicolon, known as a null statement.
Additional Features of for Loop Conti…
Nesting of for Loop
The One for statement within another for statement is called Nesting for Loop.
Syntax:
for (initialize; test_condi; incre. / decre.){
------------------------------for (initialize; test_condi; incre. / decre.){
----------------------
}------------------------------
}----------------------------------
Outer for LoopInner for
Loop
Example
// Print the I and J Value
#include<stdio.h>#include<conio.h>void main(){
int I, j;clrscr();
for (i = 1; I < = 10 ; I ++){
printf (“The I Value is %d \n", i);
for (j = 1; j < = 10; j ++){
printf (“The J Value is %d \n", j);
}}
getch();}
JUMPS IN LOOPS
1. Loops perform a set of operations repeatedly until the control variable fails to satisfy the test – condition.
2. The number of times a loop is repeated is decided in advance and the test condition is written to achieve this.
3. Sometimes, when executing a loop it becomes desirable to skip a part of the loop or to leave the loop as soon as a certain condition occurs.
4. Jumps out of a Loop is Classified into three types
1. break;
2. continue;
3. goto;
The break Statement1. A break statement is used to terminate of to exit a for, switch, while or do – while
statements and the execution continues following the break statement.
2. The general form of the break statement is
3. The break statement does not have any embedded expression or arguments.
4. The break statement is usually used at the end of each case and before the start of the next case statement.
5. The break statement causes the control to transfer out of the entire switch statement.
break;
#include <stdio.h>
void main()
{
int i;
clrscr();
i = 1;
while (i < = 10)
{
printf (“The I Value is: %d \n”, i);
if (i = = 6)
{
printf (“The I value is Reached 6, So break of the programs\n”);
break;
}
i++;
}
The continue Statement• The continue statement is used to transfer the control to the beginning of the loop, there
by terminating the current iteration of the loop and starting again from the next iteration of the same loop.
• The continue statement can be used within a while or a do – while or a for loop.
• The general form or the syntax of the continue statement is
• The continue statement does not have any expressions or arguments.
• Unlike break, the loop does not terminate when a continue statement is encountered, but it terminates the current iteration of the loop by skipping the remaining part of the loop and resumes the control tot the start of the loop for the next iteration.
continue;
#include <stdio.h>
void main()
{
int i;
clrscr();
i = 1;
while (i < = 10)
{
printf (“The I Value is: %d \n”, i);
if (i = = 6)
{
printf (“The I value is Reached 6, But Continue this Programs\n”);
continue;
}
i++;
}
Sl.No. break continue
1. Used to terminate the loops or to exit loop
from a switch.
Used to transfer the control to the start ofloop.
2. The break statement when executed causes
immediate termination of loop containingit.
Continue statement when executed causesImmediate termination of the current
iteration of the loop.
Differences Between Break and Continue Statement
The goto Statement• The goto statement is used to transfer the control in a loop or a function from one point to
any other portion in that program.
• If misused the goto statement can make a program impossible to understand.
• The general form or the syntax of goto statement is
• The goto statement is classified into two types
a. Unconditional goto
b. Conditional goto
goto label;Statement (s);…………….
label:statement (s);
Unconditional Goto
The Unconditional goto means the control transfer from one block to another block without checking the test condition.
Example:
#include <stdio.h>
void main()
{
clrscr();
Start:
printf(“Welcome\n”);
goto Start;
getch();
}
Conditional Goto
The Conditional goto means the control transfer from one block to another block with checking the test condition.
#include <stdio.h>void main(){
int a, b;clrscr();printf (“Enter the Two Value:\n”);scanf (“%d”, &a, &b);
if (a > b)goto output_1;
elsegoto output_2;
output_1:printf (“A is Biggest Number”);goto Stop;
output_2:printf (“B is Biggest Number”);goto Stop;
Stop:
getch();
}
Thank You!