You are on page 1of 136

By Muhammad Attique

 The program that converts instructions from high


level language into object code as a whole program
is called compiler. It checks all violations of syntax
if any and informs the programmer about their
occurrence. It cannot convert source code into an
object code until all the syntax errors are removed
from source code.

Object oriented programming pre-requisite 2/24/2015 2


 It is the program that executes the source program
line by line rather than converting it into object
code. It informs immediately about occurrence of
error and errors must be removed for further
execution of statements. It is time consuming task
as the program has to re-interpret for execution.
For example BASIC language has interpreter with
it.

Object oriented programming pre-requisite 2/24/2015 3


C is commonly known as middle level language
because its syntax is like high level languages and
it also provides facilities for low level
programming that is why it is also called middle
level language. It is a general purpose language
mean all types of software can be develop using C-
Language. It was developed at AT&T Bell
Laboratories in 1972. It was written by Dennis
Ritchie. It was written as a part of UNIX operating
system.

Object oriented programming pre-requisite 2/24/2015 4


 The program that converts assembly language
instructions into machine level instructions is
called an assembler.

Object oriented programming pre-requisite 2/24/2015 5


 Keywords are reserve words that are used by
language itself. The meanings of the
keywords are defined in language so we
cannot use them for our own purpose. These
are always in lower case alphabets. In C they
are 32 in number.
auto const double float int short struct unsigned
break continue else for long signed switch void
case default enum goto register sizeof
teypedef volatile char do extern if return

static union while

Object oriented programming pre-requisite 2/24/2015 6


 Thequantity that does not change itself during
execution of program is called constant. It may be
a numeric or non-numeric quantity.

Object oriented programming pre-requisite 2/24/2015 7


 The quantity that changes itself during execution is
called variable. The physical quantities that are
numeric or non numeric and a container or place
holder that holds these quantities is called variable
name. A variable name remains fix at its location
in memory but the quantities (values) are changed
time to time. Variable names are also knows as
identifiers.

Object oriented programming pre-requisite 2/24/2015 8


 A variable name may be the combination of the
alphabets (lower or upper) case, digits and a
special symbol underscore (_).
Examples volume1, Vol_1, vol1_ch1
 First character of variable name cannot be a digit.
Example volume1 allowed
1volume not allowed

Object oriented programming pre-requisite 2/24/2015 9


 No spaces, commas, special symbols other than
underscore (_) are allowed in variable name.
Example Volume 1 not allowed
Volume-1 not allowed
Volume+1 not allowed
 A variable name in upper case alphabets is different
in lower case alphabets.
Example A and a are two different variables
 A variable must be unique in same program means
a variable name defined for one data item cannot be
defined for another type of data item.
 Keywords are not allowed as variable name.

Object oriented programming pre-requisite 2/24/2015 10


 Syntax for writing a C program is called structure. It
consists of three portions.
 Preprocessor directives
 The main () function
 Body of C-Program
 General Syntax of C-Program is as under
#include<stdio.h>
void main()
{
Statement1;
Statement2;
………….
………….
Statement;
}

Object oriented programming pre-requisite 2/24/2015 11


 Processor Directives
The instructions given to compiler before actual
program are called processor directives or
compiler directives. They always start with # sign.
Keyword define or include is used as suffix with #
sign.
 Example
#include<stdio.h>

stdio  standard input output header file contains


the functions that are related to all types of input
and output.

Object oriented programming pre-requisite 2/24/2015 12


 The main ()
main function indicates the actual program to
compiler. There must be main function in each
program otherwise compiler generates error.
 Body of C-program
 All the statements of C-program are always written
between curly braces { }. Starting curly brace
immediately starts after main and second curly
brace shows the end of C-main program. Each C-
statement ends with semicolon (;).

Object oriented programming pre-requisite 2/24/2015 13


 Bugs
Errors of a program are called bugs. Tracking and
fixing these errors is called debugging.

Object oriented programming pre-requisite 2/24/2015 14


 Syntax Errors
 Rules for writing source code are called
syntax and the errors in following these rules are
called syntax error. Compiler detects syntax errors
first of all. If a single syntax error is present in
source code compiler does not compile
 That mean all syntax errors must be removed
before successful compilation.
 Logical Errors
 The errors in the logic of a program are called
logical errors

Object oriented programming pre-requisite 2/24/2015 15


 These errors can be categorized into two groups.
1. Link time errors
2. Run time errors
o The errors that are detected by linker during
linking the program with libraries are called link
time errors.
o On successful compilation and linking it does not
mean that program is error free and it is according
to the requirement of application. There may be
some serious errors regarding improper/wrong
output, un-expected termination of program before
its end point. All of these facts show that there is
certainly somewhere fault in the program

Object oriented programming pre-requisite 2/24/2015 16


 These faults may be due to the following
 Fetal errors
If program crashes un-expectedly and the sequence of
execution of statements of program breaks according
to the requirements of application, then this is called
fetal error. For example an integer divided by zero
generates undefined error; with occurrence of this
type of error program’s execution is terminated.
These types of errors are called fetal errors.
 Non-Fetal errors
If program is executing smoothly but is producing
result strange this means that there is some problem
in code. This is called non-fetal error. These types of
errors may be occurred due to wrong input, wrong
operator, wrong sequence or wrong function call etc.

Object oriented programming pre-requisite 2/24/2015 17


 A value used in processing is called data. It’s a plural
of datum.
 Types of Data
1. Alphabetic Data
2. Numeric Data
3. Alphanumeric Data
 Alphabetic Data
It consists of all English alphabets of both cases (lower
or upper) such as “A”, “Alina”, “Baghdad ”.
 Numeric Data
It consists of digits from 0-9 as well as decimal point.
It may be positive or negative such as 24,-78.34.
 Alphanumeric Data
It consists of both numeric and alphabetic data such as
House No. 191.
Object oriented programming pre-requisite 2/24/2015 18
 Data Types
The set of values and operation that can be carried
on these values is called data type
DATA TYPES

Primary Data Types Secondary Data Types

int String
float Array
double union
char structure
enum

Object oriented programming pre-requisite 2/24/2015 19


 Primary Data Types
These are the basic data types provided by
language. These are also known as the primitive
data types such as int, float, char etc.
 Secondary Data Types
The data types that are constructed using primary
data types according to different needs are called
secondary data types, such as array, string,
structure etc.

 int
The data type that consists of numeric values
without decimal point is called int data type.

Object oriented programming pre-requisite 2/24/2015 20


Date type Memory Allocation Value Minimum Maximum Example Min in Max in
(Bytes) ± integer.h integer.h

Char 1 ± -128 +127 A,-20,$,@,48 CHAR_MIN CHAR_MAX

Char 1 + 0 255 168

Int 2 ± -32768 +32767 ±48 INT_MIN INT_MAX

short int 2 ± -32768 +32767 ±49 SHRT_MIN SHRT_MAX

unsigned int 2 + 0 65535 2128 UINT_MIN UINT_MAX

long int 4 ± -2147483648 +2147483647 ±6802128 LONG_MIN LONG_MAX

 Float

The data type that consists of whole numbers with


decimal points is called real or float data type.

Object oriented programming pre-requisite 2/24/2015 21


Float has following types with their attributes

Date type Memory Value Minimum Maximum Accuracy up to Min in Max in Min in Max in
Allocation (Bytes) ± decimal points exponent exponent float.h float.h

Float 4 ± 3.4*10-38 3.4*10+38 6 -38 +38 FLT_MIN FLT_MAX

Double 8 ± 1.7*10-308 1.7*10+308 12 -308 +308 DBL_MIN DBL_MAX

long 10 + 3.4*10-4932 3.4*10+4932 18 -4932 +4932 LDBL_MIN LDBL_MAX


double

Object oriented programming pre-requisite 2/24/2015 22


•Some invalid exponential notation

 Scientific /Exponential Form


The real values in power notation are called scientific or exponential
form, such as 1.23*1021
 Its General Syntax is as:
 ±me±n
 M: Represents Mantissa
 E: Represents Exponent
 N: Represents Power
 ±: Shows power or mantissa may be positive or negative.
Real Value Exponent Form C-Representation of Exponent Form
100000.09990 1.0*105 1.0E5
-48.123 -4.8123*101 -4.8E1
.009212 9.212*10-3 9.212E-3

Example Reason for invalidation


4E4.8 Power Must Be Integer
1234 This is not exponent form. It is an integer value
231.12e15 Mantissa must be from 1.0 to 10.0
E10 Mantissa missing
9.0E Exponent missing
6.12-e5 Misplace sign of exponent (power)

Object oriented programming pre-requisite 2/24/2015 23


Assigning value to a variable first time at
the time of declaration or after declaration
is called initialization of variables.
Example
int marks=75;
int physics=81, math=90, comp=99;
float per, sum = physics + math + comp;
per=sum/3;

Object oriented programming pre-requisite 2/24/2015 24


 Comment Statement
 The statements that are ignored by compiler during
compilation of program are called comment
statements.
 We can make a single line or paragraph as a
comment.
 // is used to make the single line as a comment
 /* …*/ is used a paragraph comments
 /* shows the beginning of the comments and */
shows the end of the comments while // comments
only a single line.
 Always use comments while programming it
improves the readability and understandability of the
logic of program.
Object oriented programming pre-requisite 2/24/2015 25
 Lexemes and Tokens
 Each element of a statement is called lexeme.
Example
int a,b,c;
float per,sum
“int” “a” “b” “c” “,” “;”
“float” “per”“sum” are all
lexemes
 While int and float are data types so one
identifier is generated for them called token
that is “Data Type”. Similarly token for a, b,
c, per, sum is “identifier”

Object oriented programming pre-requisite 2/24/2015 26


Expression

 The combination of operands and operators is called


an expression. Operands may be constants or
variables.
 For example a*b*c is an example of an expression
in which a, b and c are operands and * is operator.
 Arithmetic Operator
 The symbol that is used to perform an arithmetic
operation is called arithmetic operator.
 Types of Operators
 Unary Operator
 Binary Operator
Object oriented programming pre-requisite 2/24/2015 27
Unary Operator
The operators that operate upon one data item are called
unary operator.
Example unary minus -78 it negatives the values of 78.
Binary Operators
The operator that operates upon two data items is called
binary operator such as +, - etc.
Types of Expression
 Arithmetic expression
 Relational expression
 Logical expression
 Conditional expression
 Bitwise expression
Object oriented programming pre-requisite 2/24/2015 28
 Arithmetic Expression
 The combination of arithmetic operator and
operands is called arithmetic expression. The
operands may be constants or variables.
 Example
 7*d/4+g
 Hierarchy of Arithmetic Operators
 The order in which arithmetic operators are
evaluated is called hierarchy of operator or
precedence of operators.
 First of all, all parenthesis are evaluated from left to
right
 Second /, * and are evaluated from left to right
 Then + and – are evaluated from left to right.
Object oriented programming pre-requisite 2/24/2015 29
 Assignment Statement
 The statement that is used to evaluate an expression
and assign its value to a variable on the left side of an
assignment operator (=) is called assignment
statement.
 Example
 z=a+b;
 First of all the expression a+b will be evaluated and
then result will be assigned to z on left side of
assignment operator (=).
 Lvalue and Rvalue
 The value on left hand side of assignment operator (=)
is called Lvalue. Similarly the value on right hand side
of assignment operator is called Rvalue.
Object oriented programming pre-requisite 2/24/2015 30
 Compound Assignment Statement
If the value of an assignment statement is
assigned to more than one variable on left side of
assignment statement then it is called compound
assignment statement.
 Example
a=b=c=3*d/5+56
 Arithmetic Assignment Operator
The operator that performs the arithmetic
operation on variable and assigns the values to
same variable is called arithmetic assignment
operator.
 Examples
 + = -= /= *= %=
Object oriented programming pre-requisite 2/24/2015 31
 Compound Assignment Expression
If arithmetic operation is performed on variable
without writing it on either side and also assign it a
value after arithmetic operation then it is called
arithmetic assignment statement.
a=a+b;  a+ =b;
c=c/7; c/=7;
 Increment Decrement Operators
The operator that increases the value of one in the
variable is called increment operator. It is a unary
operator. It is represented by (++). Similarly the
operator that decreases the value of one from a
variable is called decrement operator. It is also a unary
operator. It is represented by (--).

Object oriented programming pre-requisite 2/24/2015 32


 Prefix
 Postfix
 Prefix Increment Operator
 The increment operator that is used to increment
the values of a variable before it has been used in
expression is called prefix increment operator.

G. Syntax ++X
a=10; a=10; Result
Equals
b=++a; a=a+1; b=11
b=a; a=11

Object oriented programming pre-requisite 2/24/2015 33


 Postfix Increment Operator
 The increment operator that increases the value of
one after the variable has been used in expression
is called postfix increment operator.
 G. Syntax X++

a=10; a=10; Result


Equals
b=a++; b=a; b=10
a=a+1; a=11

Object oriented programming pre-requisite 2/24/2015 34


The conversion of one data type into another
during execution of program is called casting or
type casting
Implicit Casting
Arithmetic operation can only be performed when
both of the operands of arithmetic operator have
the same data type. If both of the operands have
different data type then lower order data type with
respect to bytes in memory is converted into
higher order data type and on becoming same data
types arithmetic operation is performed. This type
of casting is called implicit casting.

Object oriented programming pre-requisite 2/24/2015 35


 Explicit Casting
The casting with the help of cast operator is called
explicit casting. This type of casting is performed on
programmer’s willing rather than compiler’s.
float b,a;
a=3.141593;
b=(int) a;
 Overflow and Underflow
Each variable is allocated fixed number of bytes in
memory. Each byte has limited capacity to hold
constants/literal. So each variable has minimum and
maximum range to hold data. If we assign the value
beyond the minimum range an error is generated is
called underflow similarly if we assign the value that is
beyond the maximum range an error is generated called
overflow.
Object oriented programming pre-requisite 362/24/2015
 Examples
char a, b;
a=128; //over flow greater than its maximum
range (DOS mode)
b=-129; //under flow less than its minimum range
(DOS mode)

 Output
Anything received from computer is called output.
 Output Function
The function that is used to output some data
from program is called output function.

Object oriented programming pre-requisite 2/24/2015 37


printf() function is used to output all types of data
such as int, float, char etc on console. The symbol
“()” must be read as function.
 G. Syntax of printf()
printf(“Control String”, (list of arguments from
which values are to be output)/constants);
 Control String
It may consist any or all of following things.
1 Message String
2 Format Specifiers
3 Escape Sequence

Object oriented programming pre-requisite 2/24/2015 38


 Message String
The actual message that is as it is output on
console without alteration is called message
string.
 Format Specifiers
The special characters that specify the data
type being input (in case of using input
function) or output. The first character of
format specifiers is always % second character
specify the data type. Following is the
complete list of format specifiers with their
data type they specify.

Object oriented programming pre-requisite 2/24/2015 39


Format Specifier Data Type Used For
%d Decimal (the number system having base 1o )
%i Integer
%u Unsigned integers (non-negative numbers including
memory addresses)
%o Octal (the number system having base 8)
%x Hexadecimal (the number system having base 16)*
%X Hexadecimal (the number system having base 16)*
%c Character
%s String
%f Float
%e Float having exponent (small e will be print if used in
output function)
%E Float having exponent (capital E will be print if used in
output function)
%g Float –large values (small e will be print if used in output
function)
%G Float-large values (capital E will be print if used in output
function)
Object oriented programming pre-requisite 2/24/2015 40
* In hexadecimal 0-9 are same but 10-11 are
represented by English alphabets like a,b,c,d,e,f. if
small x is used it will print small a-f alphabets and
if capital X is used it will print capital alphabets
from A-F.
 Escape Sequence
 The special characters that are not printed
themselves but are used to control output on
console are called escape sequence. They are
prefixed with control character “\”. Complete list
of escape sequence is as under with their
description.

Object oriented programming pre-requisite 2/24/2015 41


Escape Description Example Output
Sequenc
e
\n Next line printf(“Ayesha\nAslam”); Ayesha
Aslam
\t Spaces equals of tab printf(“\tHafeez Hafeez
Janjua”); Janjua
\a Alert (a light beep printf(“\aAAMIR A beep
sound) ATTARI”); sound then
prints
AAMIR
ATTARI
\b One curser back printf(“1\b48”); 48
\r Carriage return printf(“Naila48\rKhurshi Khurshid
(moves cursor start d”);
of current line)

\\ Prints \ printf(“\\Raja\\”); \Raja\


\” Prints “ printf(“\”Mithhu\””); “Mithhu”
%% Prints % float per=82.00; My %=82.00
printf(“My %% =%f”,Per);
Object oriented programming pre-requisite 2/24/2015 42
List of Argument
 It consists of the list of variables or constants that
are to be print on console.
My First Program
write a program to output “I am Pakistani” on
console.
void main()
{
printf("I am Pakistani");
}
It’s a complete program but on compiling (Press
ALT+F9)* it generates an error printf() should have
a prototype. So we must include its header file
before main ().
Object oriented programming pre-requisite 2/24/2015 43
 We can use any statement that waits for something to
occur for example use getch () function that waits for
the input of character until we enter any character
from keyboard. Now the program will look like this
#include<stdio.h>
void main()
{
printf("I am Pakistani");
getch();
}
 On compiling again it prompts for prototype of
getch() use its appropriate header file just right click
on getch() it will show you it’s appropriate header file
i.e <conio.h> so include now conio.h then program
will look like this.
Object oriented programming pre-requisite 442/24/2015
#include<conio.h>
#include<stdio.h>
void main()
{
printf("I am Pakistani");
getch();
}
Why? It should show current output not previous so you
can use another helping function that will erase
previous output from console that function is clrscr().

Object oriented programming pre-requisite 2/24/2015 45


*2 write a program to output “I am Pakistani” on
console.
#include<stdio.h>
#include<conio.h>
void main()
{
clrscr();
printf("I am Pakistani");
getch();
}

Object oriented programming pre-requisite 2/24/2015 46


 Steps for C-program
1. Editing
Coding a program is called editing. Save the program with
extension .c, .cpp (Plus Plus), .x etc.
2. Compiling
Checking syntax errors and converting the program into object
code is called compiling. Goto compile menu and select menu
item compile or press (Alt+F9). Compiler generates another file
with extension .obj in which all calls to functions are leaved as
unresolved symbols.
3. Linking
As compiler leaves the function calls as unresolved symbols.
Linker links these functions with their libraries to place the
coding of their function into object file. On successful linking
the file with libraries, a file is generated that is ready to
execute, which is called an .exe (executable).

Object oriented programming pre-requisite 2/24/2015 47


4. Running
Executing the program is called running the application
(Program). In Borland Turbo editor press Ctrl+F9 to
run the application. By default when we run the
application it first compiles then links it with libraries
then executes it. So only pressing Ctrl+F9 or selecting
menu run will compile, link and execute the program
on single event.
Program #3 write a program to initialize marks in three subjects print their sum and
average?
Program #4 write a program to initialize two variables print them before and after
exchange their contents.
Program#5 write a program to input radius of a circle print out its area and
circumference. Use formula
area= πR2
Circumference= 2 πR (use π=3.14)

Object oriented programming pre-requisite 2/24/2015 48


 Initializemean assigning a value to a variable at your
own but this is not actual practice in real programming
environment. Values are input at the run time (at the time
of execution of program). So we must have to use input
function to input values.
 Input
Anything given to computer is called an input.
 Input function
 The function that is used to input data into computer
program is called input function. There are several input
functions that are used to input specific data types. For
example getch() we have discussed above is used to
input a character. scanf() is also used to input all types of
data.
Object oriented programming pre-requisite 2/24/2015 49
G. Syntax
scanf(“format specifiers”, list of argument to which
values are to be input each prefixed with &);
 Example
int a,b,c;
scanf(“%d”,&a);
scanf(“%d”,&b);
scanf(“%d”,&c);
OR
scanf(“%d%d%d”,&a,&b,&c); // Don’t use
”,” between format specifiers.

Object oriented programming pre-requisite 2/24/2015 50


Since the value of π is 3.14 we have to use it in the statement
why not we declare it inside of the program as constant. There
are two ways to define such types of constants.
#define directive
const qualifier
 #define directive
It is used to define a variable as constant. The variable will be
replaced with its constant inside whole program where it has
been used except in comment statements and in control
statements used in output function
G. Syntax
#define PI 3.14
It is not necessary to use capital word but is convention to
differentiate for other variables. There is no assignment
operator used to assign value nor semicolon is used to
terminate the statement. It is not statement it is #define
directive.Object oriented programming pre-requisite 2/24/2015 51
 const qualifier
It is also used to define a variable as constant. This is
just like declaration of variable as constant since the
variable declared with const keyword is constant so we
cannot change its contents in program.
 G. Syntax
const float PI=3.14;
Since it is declaration statement so always use
assignment operator (=) and statement terminator (;)
Program #6 write a program to input three side of
a triangle print out its area and circumference.
Use formula

Object oriented programming pre-requisite 2/24/2015 52


 Program #7 write a program to input temperature in
Fahrenheit convert and print it into centigrade
 Program#8 write a program to input radius of a sphere
print out its volume and surface area using formula
 Program#9 write a program to input initial velocity,
time and acceleration of a car find and print distance
covered by car using formula (S=Vit+ at2)
 Program#10 write a program to input length and width
of rectangle find and print its area and perimeter.
 Program#11 write a program to input distance in
Kilometers convert and print it into Meters,
Centimeters, Feet, and Inches.

Object oriented programming pre-requisite 2/24/2015 53


 12 write a program to input distance of object from
lens (p) and distance of image from lens (q) find and
print the focal length of lens using formula
 13 write a program to input amount in rupees
find and print it how many 100, 50, 20, 10, 5, 2,
and 1 rupee notes are required. Give priority to
big notes first.
 14 write a program to input a number having
five digits print out the sum of its individual
digits and reverse of the number.
 15 write a program to input two numbers print
out their contents before and after exchange
without using third variable.

Object oriented programming pre-requisite 2/24/2015 54


Points to be Noted
 Always use appropriate data types for variable
declaration it may loss the data or memory.
 Always use appropriate format specifiers in printf ()
and scanf () although it is not syntax error but it leads
to serious logical error.
 Don’t use extra format specifiers in printf () and scanf
() it does not generate syntax error but you may
confuse while input or output from strange results.
 Don’t use commas (,) in scanf () although it is not
syntax error but the process of input is halted and
remaining variables are left garbaged.
 Always initialize the variables with appropriate values
otherwise garbage values are assigned to them.
Object oriented programming pre-requisite 2/24/2015 55
Object oriented programming pre-requisite 2/24/2015 56
 The languages in which programs are written
according to predefined ways and there is one
staring point and one end point for execution are
called structured programming languages. So C is
a structured programming language. In any
structured programming or in other era of
programming languages, there are three types of
programming structures.
 Sequential Structure
 Conditional Structure
 Iterative/Looping/Repititional Structure

Object oriented programming pre-requisite 2/24/2015 57


 Sequential Execution Structure
The statements of a program are executed in order in
which they are written, is called sequential execution
structure. Program starts its execution from main ()
and completes the execution of all statements in order
from first statement to last statement and after
executing last statement, the execution of program is
terminated.
 Control Statements
As by default all the statements of a program are
executed in order in which they are written but we can
change the order of execution with the help of control
statements. The statements that are used to shift control
of execution from one statement to other in the same
program are called control statements.
Object oriented programming pre-requisite 2/24/2015 58
 Examples
 goto statement
 if statement
 if –else statement
 nested if – else statement
 switch statement
 while statement
 for statement
 do – while statement

Some of the control statements are un-


conditional control statements while others are
conditional control statements.
Object oriented programming pre-requisite 2/24/2015 59
 Un-Conditional Control Statements
The control statements that shift the control from one
statement to other in the same program without
checking the condition are called un-conditional control
statements.
 Example
goto label
 goto Statement
It is un-conditional control statement used to transfer
control from one statement to other without evaluating
the condition. The use of goto statement is not
appreciated by programmers. Because it is just burden
for compiler not the necessity of transferring control

Object oriented programming pre-requisite 2/24/2015 60


 G. Syntax
goto label;
The label is an identifier placed anywhere in the program post fixed with colon (:) and the
control is immediately transferred to that label from goto without executing remaining
statements.
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
int Num1,Num2,Sum;
goto l1;
l2: scanf("%d",&Num1);
goto l3;
l5: Sum=Num1+Num2;
goto l6;
l3: printf("\n Enter Number2=");
goto l4;
l1: printf("\n Enter Number1=");
goto l2;
l4: scanf("%d",&Num2);
goto l5;
l6: printf("\n The Sum of %d and %d = %d", Num1,Num2,Sum);
getch();
} Object oriented programming pre-requisite 2/24/2015 61
 Conditional Control Statements
The statements that are used to shift control of
execution from one statement to other statement in the
same program after checking the condition are called
conditional control statements.
 Example
 if statement
 if –else statement
 nested if – else statement
 switch statement
 while statement
 for statement
 do – while statement

Object oriented programming pre-requisite 2/24/2015 62


 Conditional Execution Structure
The execution of statements of program on the behalf of
conditional control statements is called conditional execution
structure.
 Iterative/Looping/Repeatitional L Structure

The statements of a program can also be executed repeatedly


for fixed number of iterations is called iterative execution
structure.
 Relational Operator

The operator that is used to compare two data items and it


always produces result true or false is called relational
operator.
 Relational Expression

The expression in which relational operators are used is called


relational expression. It always produces result true or false.
The relational expression can also be called as test, condition
or conditional expression.
Object oriented programming pre-requisite 2/24/2015 63
Examples of operators with their description are as under

Relational Used for Relational Result of


operator Expression Relational
A=10,B=20,C=30 Expression

> Greater than A>B False

>= Greater or Equal C >=B True

< Less than C<A False

<= Less or Equal A<=C True

!= Not Equal B!=C True

== Equal A==C False

Object oriented programming pre-requisite 2/24/2015 64


 Difference Between (=) & (==)
The assignment operator (=) is used in assignment. It
assigns the Rvalue to Lvalue. While the relational
comparison operator (= =) checks whether both side of
the relational comparison operator are equal or not. If
both sides are equal, generates result true otherwise
false. In C zero means always false and non-zero
means always true.

Object oriented programming pre-requisite 2/24/2015 65


 It is conditional control statement that is used to
execute or ignore statement or set of statements after
checking the condition. If the condition in if
statement is true the statement or set of statements that
comes immediately after if statement are executed
otherwise ignored and control is shifted to next
statement(s) without executing immediately coming
statement(s) after if statement.
G. Syntax
if (condition)
Statement -1;
Statement-2;

Object oriented programming pre-requisite 2/24/2015 66


Object oriented programming pre-requisite 2/24/2015 67
 Execution of Syntax
If the condition in if statement is true then the statement-1
is executed and the control is shifted to statement-2. If the
condition in if statement is not true the statement-1 is
ignored and control is shifted to directly statement-2.
Whether the condition in if statement is true or false
statement-2 will execute at all. If statement is affected
(will execute or ignore) only on statement-1 in this case
but if we want to execute more than one statements in
case of true of condition, we have to follow this style.
if (condition)
{
Statement -1;
Statement-2;
...
Statement-N;
}
Statement-M;
Object oriented programming pre-requisite 2/24/2015 68
2 write a program to input any positive number
print out whether it is odd or even.
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
int Num;
printf("\nEnter Any Positive Number=");
scanf("%d",&Num);
if (Num%2==0)
printf("\nThe Number is Even");
if (Num%2!=0)
printf("\nThe Number is Odd");
getch();
}
Object oriented programming pre-requisite 2/24/2015 69
 Some Precautions while using if statement
 if statement by default has control on one statement (each
control statement shows this behavior by default). If more
statements are to be executed/ignored on the behalf of if
statement, use block (place statements in pair of curly
braces { }).
 Any non-zero number as condition will propagate result
true and zero will generate result false.
 if (0) //Always False
 if(-1) //Always True
 if(1) //Always True
 if(-0) //Always False
 if(0.00) //Always False
 if(-56.67) //Always True
 if(48) //Always True

Object oriented programming pre-requisite 2/24/2015 70


 Use of assignment (=) rather than relational comparison operator
(= =) will generate always true result except assignment of zero
(0).
 if(0=0) //Syntax error Lvalue cannot be constant (Lvalue
required)
 if(Num=0) //Always False
 if(Num=1) //Always True
 if(Num=26) //Always True
 if(Num=-2.5) //Always True
 Condition can also be made on simple arithmetic operation then
the result will depend on the result of an operation. If the result
is zero (0) test will be consider as false otherwise true.
 int Num=10;
if(Num%2) //False; since the remainder is 0 so 0 yields
false
 int Num=5;
if(Num%2) //True; since the remainder is 1 so 1 yields true

Object oriented programming pre-requisite 2/24/2015 71


 Normally semicolon is not used after if
statement but if somewhere it is used it is not
syntax error. A null statement is the statement
that performs nothing.

int Num=3;
if(Num%2);
/*Well! It executes well but the output is nothing */

Object oriented programming pre-requisite 2/24/2015 72


 writea program to input any year print out
whether it is leap year or not.
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
int Year;
printf("\nEnter Any Year=");
scanf("%d",&Year);
if (Year%4==0)
printf("\nThe Year is Leap");
if (Year%4!=0)
printf("\nThe Year is not Leap");
getch();
}
Object oriented programming pre-requisite 2/24/2015 73
 Write a program to input co-efficient of quadratic
equation find and print out its roots using formula
. The quadratic equation is ax2+bx+c.
Program should be so efficient to output real and
imaginary roots.
#include<conio.h>
#include<stdio.h>
#include<complex.h>
void main()
{
clrscr();
float a,b,c,X1,X2,Xreal,Ximag,Disc;
printf("\nEnter Co-efficients of Quardatic Equation=");
scanf("%f%f%f",&a,&b,&c);
Disc=b*b-4*a*c;
if (Disc>=0)
{
printf("\nThe Roots are Real");
X1=(-b+(sqrt(Disc)/(2*a)));
X2=(-b-(sqrt(Disc)/(2*a)));
printf("\nX1=%f\nX2=%f",X1,X2);
}
if (Disc<=0)
{
printf("\nThe Roots are Imaginary");
Xreal=-b/(2*a);
Ximag=sqrt(-Disc)/(2*a);
printf("\nX1=%f+i%f",Xreal,Ximag);
printf("\nX2=%f-i%f",Xreal,Ximag);
}
getch();
} Object oriented programming pre-requisite 2/24/2015 74
5.write a program to input any English alphabet print
out whether it is vowel or consonant.
 For input of character we can use scanf () function.
There are also other so many functions you can get
advantage of getch () function. You can use following
functions for input of character also.
 getche()
 getchar()

 getch(), getche() and getchar() all of the functions are


used to input single character from console and assign
the inputted values into character variable. The
difference is that getch () and getche () belong to
conio.h header file while getchar () belongs to stdio.h
header file and also the inputted character from getch
is not displayed on console while other two functions
echo (display) the inputted character on console.
Object oriented programming pre-requisite 2/24/2015 75
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
char ch;
int isVowel=0;
printf("\nEnter Any Alphabet");
ch=getchar();
if(ch=='a') isVowel=1;
if(ch=='A') isVowel=1;
if(ch=='e') isVowel=1;
if(ch=='E') isVowel=1;
if(ch=='i') isVowel=1;
if(ch=='I') isVowel=1;
if(ch=='o') isVowel=1;
if(ch=='O') isVowel=1;
if(ch=='u') isVowel=1;
if(ch=='U') isVowel=1;
if (isVowel==1)
printf("\nEntered Alphabet is Vowel");
if (isVowel==0)
printf("\nEntered Alphabet is Consonant");
getch();
} Object oriented programming pre-requisite 2/24/2015 76
6. write a program to input any positive number
having five digits print out whether it is
palindrome (a number whose reverse is equal to
it) or not.
7. write a program to input any number from 100 to
999. Print out whether it is Armstrong number or
not. Armstrong number is the number whose sum
of its all digits after cube is equal to it. For
example consider 153.
8. write a program to input cost price, sale price of a
shop keeper, print our whether he earned profit,
loss or not profit no loss and how much?
9. write a program to input two numbers and an
arithmetic operator perform operation on the
numbers according to arithmetic operator. (Make a
simple calculator)
Object oriented programming pre-requisite 2/24/2015 77
10 write a program to input any year after 1900.
Program should print what will be the day on
its first January. According to Georgian
calendar it was Monday on first January of
1900.
 What happens if we have one condition and
two choices and we have to select one of
them? The simple if statement does not
provide this style of structure the best choice
for this type solution is if-else statement.

Object oriented programming pre-requisite 2/24/2015 78


 if–else Statement
This is another form of if statement it has one condition and two blocks (choices).
First block comes immediately after if statement and second block comes after
keyword else.
G. Syntax
if (condition)
Statement -1;
else
Statement-2;
Multi-Statements can be places in any of the block such as
if (condition)
{
Statement -1;
Statement-2;
...
Statement-N;
}
else
{
Statement -1;
Statement-2;
...
Statement-N;

} Object oriented programming pre-requisite 2/24/2015 79


Object oriented programming pre-requisite 2/24/2015 80
 11 write a program to input any positive
integer print out whether it is odd or even. Use
if–else statement.
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr(); int Num;
printf("\nEnter Any Positive Number=");
scanf("%d",&Num);
if (Num%2)
printf("\nThe Number is Odd");
else
printf("\nThe Number is Even");
getch();
}
Object oriented programming pre-requisite 2/24/2015 81
 12 write a program to solve quadratic equation using if-else statement.
#include<conio.h>
#include<stdio.h>
#include<math.h>
void main()
{
clrscr();
float a,b,c,X1,X2,Xreal,Ximag,Disc;
printf("\nEnter Co-efficients of Quardatic Equation=");
scanf("%f%f%f",&a,&b,&c);
Disc=b*b-4*a*c;
if (Disc>=0)
{
printf("\nThe Roots are Real");
X1=(-b+(sqrt(Disc)/(2*a)));
X2=(-b-(sqrt(Disc)/(2*a)));
printf("\nX1=%f\nX2=%f",X1,X2);
}
else
{
printf("\nThe Roots are Imaginary");
Xreal=-b/(2*a);
Ximag=sqrt(-Disc)/(2*a);
printf("\nX1=%f+i%f",Xreal,Ximag);
printf("\nX2=%f-i%f",Xreal,Ximag);
}
getch(); Object oriented programming pre-requisite 2/24/2015 82
 Nested if Statement
Another if statement in if statement’s true or false block is
called nested if statement. The structure of nesting of if
statement may be nesting of if statements only or nesting of
else if. Whatever the way we are nesting is called nested if
statements.

Object oriented programming pre-requisite 2/24/2015 83


Object oriented programming pre-requisite 2/24/2015 84
13 write a program to input percentage marks of the student in all
subjects of B.Sc. suppose the subjects have following chart of
marks. English 100, Pak. Study + Islamic Study 100, Any
Optional Subject1 200, and Other Optional2 subject 400. (The
other Optional2 subject can be divided into two optional
having 200 each). Mean to say that total marks for B.Sc. should
be 800. Find out percentage and print its grade according to
university laws.
14 Develop a simple arithmetic calculator using nested if-else
statement.
15 15 write a program to input three numbers print out greater
among them use nested if statement structure.
16 16 write a program to input any English alphabet print out
whether it is vowel or not (using nested if-else statement).

Object oriented programming pre-requisite 2/24/2015 85


 switch Statement
It is also conditional control statement that can be used as an
alternative to nested if structure as nested if structure becomes
complex where several conditions are to be checked. It has one
condition and several choices upon which one has to be select. A value
(expression) of switch statement is matched to each choice (case) upon
successful matching the set of statements for that case is executed.
Only integral values can be checked in switch stamen for example 1, 4,
’C’, ‘&’ can be checked in cases, while 5.6, “AAMIR” are invalid case
literals.
 G. Syntax
switch(Expression)
{
case 1:
statement(s);
break;
case 2:
statement(s);
break;
……..
default:
statement;
}
Object oriented programming pre-requisite 2/24/2015 86
 Execution of G. Syntax
On evaluating the expression from switch statement
its values is matched with each case one by one. If it
is matched with some case, the statements of that
case are executed and break statement shifts the
control outside of switch statement. If the break
statement is missing in any case, upon successful
matching of that case it will execute the block of
that particular case and next blocks of other cases
will also be executed until next break comes.

Object oriented programming pre-requisite 2/24/2015 87


Consider the following program;
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
int a=3;
switch(a)
{
case 1:
printf("\nOne");
case 2:
printf("\nTwo");
break;
case 3:
printf("\nThree");
default:
printf("\nGreater than Three");
}
getch();
}
Object oriented programming pre-requisite 2/24/2015 88
 As the value of the expression is 3; case 1 is false,
case 2 is false and the case 3 is true, its block will be
executed. But case 3 is missing break at its end it
will continue to execute the statements of next
block. The output will be.
Three
Greater than Three
 default statement is executed when no case is
matched. It is optional statement and may be
placed anywhere in the body of switch
statement. Consider the following program;

Object oriented programming pre-requisite 2/24/2015 89


#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
int a=2;
switch(a)
{
case 1:
printf("\nOne");
break;
default:
printf("\nValue is other than three");
break;
case 3:
printf("\nThree");
break;
case 2:
printf("\nTwo");

}
getch();
}

Object oriented programming pre-requisite 2/24/2015 90


17 write a program to make simple calculator by
using switch statement.
18 write a program to input any alphabet print
out whether it is vowel or not. (Use switch
statement)
19 write a program to ask choice from user
Enter 1 for Conversion Fahrenheit temperature
into centigrade
Enter 2 for conversion of centigrade into
Fahrenheit.
And precede the choice entered by user at run
time.

Object oriented programming pre-requisite 2/24/2015 91


 Conditional Operators
These operators are the alternate to simple if–else
statement. They are “?” and “:”, “?” is used in the
meaning of then and “:” is used as an else.
 Conditional Expression
The expression in which conditional operators are used is
called conditional expression.
 G. Syntax

(condition)? True block statement(s) : false block statement(s) ;

Object oriented programming pre-requisite 2/24/2015 92


For example consider the program in if–else structure.
int a=10,b;
if (a>20)
b=50;
else
b=100;

Above code can be coded using conditional operators.


int a=20,b;
(a>=20)?b=50:b=100;

20 write a program to input any character print


out whether it is odd or even using conditional
operators.
Object oriented programming pre-requisite 2/24/2015 93
 Logical Operators
The operators that are used to check more than one
relational expression as a combined condition are
called logical operators. They always produce result
true or false. There are three logical operators used
in C-language.
1 And Operator (&&)
2 Or Operator (||)
3 Not Operator (!)

 Logical Expression
The expression in which logical operators are used is
called logical expression. It always produces result
true of false.

Object oriented programming pre-requisite 2/24/2015 94


 LogicalAND Operator (&&)
The operator that produces result true if both of
the operands of the logical && operators are
true otherwise false, is called logical AND (&&)
operator.

T F
Exp2

Exp1

T T F
F F F
21 write a program to input three numbers print
out greater among them use logical operators.
Object oriented programming pre-requisite 2/24/2015 95
22 write a program to input percentage of the
student print out its grade according to
percentage criteria.
23 write a program to input any character print
out whether it is digit or not. Use conditional
and logical operators.

Object oriented programming pre-requisite 2/24/2015 96


 LogicalOR Operator (||)
The operator that produces the result false if
both of the operands are false otherwise true is
called logical (||) operator.

T F
Exp2

Exp1

T T T
F T F

Object oriented programming pre-requisite 2/24/2015 97


24 write a program to input any English
alphabet print out whether vowel or not.
Using logical operator the solution is easier
than switch statement.
25 write a program to input any character print
out whether it is lower case alphabet, upper
case alphabet, digit or special symbol.
26 26 write a program to input any alphabet if
it is in lower case converts it into upper case
and if it is in upper case convert it into
lower case.

Object oriented programming pre-requisite 2/24/2015 98


 Logical NOT Operator (!)
The operator that inverses the result is called
logical (!) operator. It is unary operator. It
inverts the true result into false and false into
true.
27 write a program to input any year print out
whether it is vowel or not. Program should be
so generic.

End of Chapter#2
Object oriented programming pre-requisite 2/24/2015 99
CHAPTER # 03

Object oriented programming pre-requisite 2/24/2015 100


Some times we need to execute statement(s) repeatedly until
some given condition is true. How can we accomplish this?
One option was, that we have used in previous chapter
goto+if statement. But that was not the exact solution we
need another option that must be so generic. Fortunately C
provides statements for this type of executional structure,
called loops.

Object oriented programming pre-requisite 2/24/2015 101


 Loop
The statement that executes statement or set of statements
until specific amount of time is reached, is called loop. The
statements may be executed until fixed or unfixed amount
of time. Means to say that we may know in advance the
number of iterations of loop or we may not know in
advance the number of iterations of loop. The loops that
have fixed number of iterations are called fixed or counter
controlled loops and the loops that have no fixed number of
iterations are called sentinel (someone to keep watch for
some anticipated event) control loops.

Object oriented programming pre-requisite 2/24/2015 102


 Parts of loop
 Initialization
 Finalization/Condition/Test
 Statement(s)
 Increment/decrement /step Size/Jump Size
 Initialization means the start point of loop; from
where loop has to start execution.
 Finalization means the end point of loop; condition
or test until it is true.
 Statement(s) means the actions that are performed
during execution of loop
 Increment/decrement means that step size or jump
to reach up to finalization.

Object oriented programming pre-requisite 2/24/2015 103


Types of loops in C

 while loop
 do while loop
 for loop

 while loop
The loop that executes the statement(s) until given
condition remains true is called while loop. It
checks the condition first then executes the
statement(s), that’s why it is called pre-test loop.

Object oriented programming pre-requisite 2/24/2015 104


 G.Syntax
initialization;
while(condition)
{
statement(s);
increment/decrement;
}

Object oriented programming pre-requisite 2/24/2015 105


 1 write a program to print out counting from 1 to 10
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
int i=1;
while(i<=10)
{
printf("%d\n",i);
i++;
}
getch();
}

Execution
1
2
3
4
5
6
7
8
9
10
Object oriented programming pre-requisite 2/24/2015 106
2 write a program to print out all even numbers
up to 100.
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
int i=0;
while(i<=100)
{
printf("%d\n",i);
i+=2;
}
getch();
}

Object oriented programming pre-requisite 2/24/2015 107


3 write a program to print out all odd numbers between two numbers
entered by user.
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
long int Counter,Start,End;
printf("\nEnter Staring Point=");
scanf("%ld",&Start);
printf("\nEnter Ending Point =");
scanf("%ld",&End);
Counter=(Start%2)?Start:Start+1;
while(Counter<=End)
{
printf("%ld\n",Counter);
Counter+=2;
}
getch();
} Object oriented programming pre-requisite 2/24/2015 108
4 write a program to print out following series.
2048 1024 512 256 128 64 32 16 8 4 2 1

#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
int Counter=2048;
while(Counter>0)
{
printf("%d\t",Counter);
Counter/=2; //Counter=Counter/2;
}
getch();
}

Object oriented programming pre-requisite 2/24/2015 109


5 write a program to sum up following series.
1+2+3+4+5+ - - -+N = , Also print the series.
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
long int Counter=1,N,Sum=0;
printf("\nEnter The Maximum Limit = ");
scanf("%ld",&N);
while(Counter<=N)
{
printf("%ld+",Counter);
Sum+=Counter; //Sum=Sum+Counter;
Counter++; //Counter=Counter+1;
}
printf("\b=%ld",Sum);
getch();
}
Object oriented programming pre-requisite 2/24/2015 110
6 write a program to product the following series.
1*4*7* - - -*N=
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
long int Counter=1,N,Product=1;
printf("\nEnter The Maximum Limit = ");
scanf("%ld",&N);
while(Counter<=N)
{
printf("%ld*",Counter);
Product*=Counter; //Product=Product*Counter;
Counter+=3; //Counter=Counter+3;
}
printf("\b=%ld",Product);
getch();
}
Object oriented programming pre-requisite 2/24/2015 111
7 write a program to input any positive integer
print out its table up to 10.
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
int N,Prod,Counter=1;
printf("\nEnter the Number = ");
scanf("%d",&N);
while(Counter<=10)
{
Prod=N*Counter;
printf("\n%d * %d\t=\t%d",N,Counter,Prod);
Counter++;
}
getch();
} Object oriented programming pre-requisite 2/24/2015 112
8 write a program to input any positive integer print out its factorial. Factorial is the
product of sub-sequent integers up to 1. Factorial can be calculated by making loop from 1
to N or from N to 1. Following solution is from 1 to N.
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
int N,Counter=1;
long int Fact=1;
printf("\nEnter Any +ve Integer = ");
scanf("%d",&N);
while(Counter<=N)
{
Fact=Fact*Counter;
Counter++;
}
printf("\nThe Factorial of %d = %ld",N,Fact);
getch();
} Object oriented programming pre-requisite 2/24/2015 113
9 write a program to sum up to following series.
½+2/3+3/4+ - - -+n/(n+1)=
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
int N;
float Sum=0.0;
int Counter=1;
printf("\nEnter Limit = ");
scanf("\n%d",&N);
while(Counter<=N)
{
Sum=Sum+Counter/(Counter+1.0);
printf("%d/%d+",Counter,Counter+1);
Counter++;
}
printf("\b=%f",Sum);
getch();
}
Object oriented programming pre-requisite 2/24/2015 114
10 write a program to sum up following series.
1/3-3/5+5/7-7/9+ - - - ±n/(n+2)=  Where n is the limit entered run time

11 write a program to input any positive number


print out its reverse using while loop

Object oriented programming pre-requisite 2/24/2015 115


 break statement
The break statement is used to terminate the execution of switch statement or
loop. It is usually used with if statement in the body of loop. Whenever control
is shifted to break statement it simply shifts control outside of loop or switch
statement without executing further statements.
 continue statement
The continue statement is used to shift the control back to loop without
executing remaining statements for that particular iteration.
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
int i=-1;
while(i<100)
{
i++;
if(i%2==0)
continue;
printf("%d\t",i);
}
getch();
}
Object oriented programming pre-requisite 2/24/2015 116
 Sentinel control loop
The loops that have no fixed number of iterations are called sentinel control
loops. All previous loops in programs were having fixed number of iterations.
Consider a following program.
 do while loop
The loop that executes statements first then checks the condition is called do-
while loop. It executes at least once whether the given condition is true or
false. It executes statements until given condition remains true. Since it checks
the condition in last after executing the block it is also known as post test
loop.
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
int i=1;
do
{
printf("%d\n",i);
i++;
} while(i<=10);
getch();
Object oriented programming pre-requisite 2/24/2015 117
 for loop
This is another form of while loop, that executes the
statement(s) until given condition remains true. It is
commonly known as counter loop. Like while loop it checks
the condition first then executes the statement(s), it is also
pre-test loop. The execution of for loop is same as while
loops only syntax is different. It has several syntaxes. Most
general syntax is as under.

 G. Syntax
for(initialization;test;increment/decrement)
{
Statement(s);
}

Object oriented programming pre-requisite 2/24/2015 118


 Infinite loops
When the condition of the loop never false and it continue to
execute, this is called infinite loop.
 Nested loops
The loops inside loops are called nested loops. Loops are
placed in the body of loops. First loop that has another loop in
its body is called outer loop while the second loop that is inside
body of outer loop is called inner loop. Any loop from three
loops (while, do while, for) can be used a outer loop as well as
inner loop. For the simplicity of implementation normally for
loops are used as nested loops but this is not always practice.
For example consider the following program.
int i,j;
for(i=1;i<=3;i++) //Outer Loop
for(j=1;j<=3;j++) //Inner Loop
printf(“\n%d\t%d”,i,j);

Object oriented programming pre-requisite 2/24/2015 119


End of Chapter #3

Object oriented programming pre-requisite 2/24/2015 120


 Some times length of a program reaches up to hundreds
even thousands of lines. These types of programs are
difficult to manage in debugging and testing point of
view. we can divide the code into small units so that
they can be written, tested, and managed by all ways
independent of each others. C provides this type of
structure, called function/macro/recursion.
 Function
Function is an independent program that is written to
perform a specific task and is executed by main() or any
other function. Each C program is basically a function,
so main() is also a function from which scheduler (the
task of operating system) starts the execution of
program.

Object oriented programming pre-requisite 2/24/2015 121


 Types of Function
1. Built in functions
2. User defined functions
The functions that are available within the
language library are called built in functions. For
example pow(), abs(), getch()are examples of
built in functions.
The functions that are written by
programmer/developer (or impropriate term
user) are called user defined functions. We can
write our own function that performs the
functionality same as pow() function. This self
written function will be called user defined
function.

Object oriented programming pre-requisite 2/24/2015 122


 Ingredients of Function
1. Arguments
2. Parameters
3. Return value
 Arguments
The values that are passed to function on which function
may perform calculations are called arguments of function.
A function can receive none, one or more than one values
of any data type.
 Parameters
The values that are received by function are called
parameters. The parameters are always received in order
with respect to data type, in which they are passed.
Incoming data type may or may not received by higher or
lower data type but if received it may lead to loss of data.

Object oriented programming pre-requisite 2/24/2015 123


 Return Value
The result that a function returns to its caller is called
return value.
For example in previous chapter program we have used
function pow(). It receives two arguments first one is
the number, second one is the power of that number.
Res=pow(x,y);
If we pass 3, 4 as arguments. It will return result 81
i.e. 34.
Res=pow (3, 4);
Res=81
If we call the pow() function in main(), then the
main function will be called “caller function” and the
value retuned by pow() will be received by main()
function (being caller) and is assigned to variable Res
in this case (if assigned) to left side of assignment
operator.
Object oriented programming pre-requisite 2/24/2015 124
 Signatures of a Function
Function Name
Number of Parameters
Order of Parameters with Respect to their Data
Types
 Function Name
The name of function is unique identifier for
function. All the rules of a variable are equally
applied on function name.
 Number of Parameters
It means how many parameters are received by
function.
 Order of Parameters with Respect to their Data
Types
Object oriented programming pre-requisite 2/24/2015 125
 Theparameters are also uniquely identified by
order of data type. For example a function with
name SUM receives two arguments i.e. first
arguments of type int and second of type
float similarly another function with same
name SUM receives two arguments i.e. first
arguments of type float and second of type
int. These two definitions of function with same
name are unique due to the order of the
arguments. This is also called function
overloading.

Object oriented programming pre-requisite 2/24/2015 126


 Consider the following example that is used to input two
numbers and pass these numbers to function. Function will
return their sum to main() and final sum will be printed in
main() function.
#include<conio.h>
#include<stdio.h>
int Sum(int Num1,int Num2)
{
int Result;
Result=Num1+Num2;
return Result;
}
void main()
{
clrscr();
int N1,N2,Res;
printf("\nEnter Two Numbers\n");
scanf("%d%d",&N1,&N2);
Res=Sum(N1,N2);
printf("\nSum=%d",Res);
getch();
}
Object oriented programming pre-requisite 2/24/2015 127
 If the function is defined in another file simply include the file with
#include directive same as header files.
write a program to input marks in five subjects pass them to function. Function
should return the percentage to caller function. Caller function will print the
percentage
#include<conio.h>
#include<stdio.h>
float Function(int,int,int,int,int);
void main()
{
clrscr();
int M1,M2,M3,M4,M5;
float per;
printf("\nEnter Marks in Five Subjects\n");
scanf("%i%i%i%i%i",&M1,&M2,&M3,&M4,&M5);
per=Function(M1,M2,M3,M4,M5);
printf("\nPercentage=%f",per);
getch();
}
float Function(int S1,int S2,int S3,int S4,int S5)
{
return (S1+S2+S3+S4+S5)/5.0;
} Object oriented programming pre-requisite 2/24/2015 128
 Returning More Values from Function
Function can return only one value explicitly, but we can
return more than one values from function. There are two
mechanisms to pass values to function.
 Pass by value
 Pass by reference
 Pass by reference can be of two types
 Pass by reference of an argument
 Pass by address of an argument

Object oriented programming pre-requisite 2/24/2015 129


 Pass by Value
In the above all programs, all the arguments passed to function are passed by value. This
means that only values of arguments are passed to function and any change with that
value in the function definition will not affect the original contents of arguments in caller
function. Consider the following example.
#include<conio.h>
#include<stdio.h>
void Fun(int);
void main()
{
clrscr();
int X=10;
printf("\n X before call to function = %d ",X);
Fun(X);
printf("\n X After call to function = %d",X);
getch();
}
void Fun(int X)
{
X=X+10;
}
Object oriented programming pre-requisite 2/24/2015 130
Output will be
X before call to function = 10
X After call to function = 10

The value of X before and after call to function is


same because the value (10) of X was send to
function Fun () and 10 was received in the
parameter X in functional declarator. The parameter
X is local variable to function Fun() any change in
the local variable will not affect the X in main().

Object oriented programming pre-requisite 2/24/2015 131


 Pass by Reference
When we declare variable it is allocated fixed number of bytes depending
upon the data type of variable. Since each byte of memory has unique
address so each variable has an address. That is the first byte address of
allocated bytes (both in Little Endean Order and Big Endian Order). We
can check the address of variables by using the address operator (&) with
unsigned integer (because addresses are always positive). ). Consider
following example.
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
int X=10,Y=20;
printf("\n value of X = %d ",X);
printf("\n address of X=%u",&X);
printf("\n value of Y = %d ",Y);
printf("\n address of Y=%u",&Y);

getch();
Object oriented programming pre-requisite 2/24/2015 132
 Reference

Another name of same memory address is called


references. Since it is another name of same
memory address any change with reference or
original variable will affect the contents of same
memory address.
 Pointers

Pointer is an object that holds the address of


another object. There is some difference in
reference and pointer. Reference refers to same
location but don’t have its own memory address
while pointer has its own address. Pointer is an
object that points to data type.

Object oriented programming pre-requisite 2/24/2015 133


 sizeof Operator
The operator that returns the number of bytes occupied
by data item is called sizeof operator.

G. Syntax
sizeof(dataitem);
 Pass by address
When arguments are passed by addresses and received by
pointers any change in the pointer can modify the original
contents of arguments in caller function.

Object oriented programming pre-requisite 2/24/2015 134


 Default/Optional Arguments
The arguments that are not necessary to pass in functional
call are default or optional arguments. These arguments
have default values actually when we omit to pass their
values they use their default values. Their default values are
set in function declarator or function prototype.
 Function Overloading
If there are several functions of same name but their
signatures are different, is called function overloading or
the several definitions of same function are called
function overloading. Signature includes number of
parameters, order of parameters with respect to their data
types return type does not matter in function
overloading.

Object oriented programming pre-requisite 2/24/2015 135


All codes written in chpater#4 will
be included in syllabus till above
mentioned article

End of mid term syllabus

Object oriented programming pre-requisite 2/24/2015 136

You might also like