PPS Notes Unit 1 & Unit 2 - Dr. Aditya Kumar
PPS Notes Unit 1 & Unit 2 - Dr. Aditya Kumar
INTRODUCTION TO COMPUTERS
Any programming language is implemented on a computer. Right from its inception, to the present
day, all computer system (irrespective of their shape & size) perform the following 5 basic
operations. It converts the raw input data into information, which is useful to the users.
1. Input: It is the process of entering data & instructions to the computer system.
2. Storing: The data & instructions are stored for either initial or additional processing, as & when
required.
3. Processing: It requires performing arithmetic or logical operation on the saved data to convert itinto
useful information.
4. Output: It is the process of producing the output data to the end user.
5. Controlling: The above operations have to be directed in a particular sequence to be completed.
Based on these 5 operations, we can sketch the block diagram of a computer.
Input Unit:
We need to first enter the data & instruction in the computer system, before any computation
begins. This task is accomplished by the input devices. (The data accepted is in a human readable
form. The input device converts it into a computer readable form.
Input device: The input device is the means through which data and instructions enter in a
computer.
1. Camera - most cameras like this are used during live conversations. The camera transmits a
picture from one computer to another, or can be used to record a short video.
.
2. Compact Disc (CD) - CDs store information. The CD can then be put into another computer,
and the information can be opened and added or used on the second computer. Note: A CD-R or CD-
RW can also be used as an OUTPUT device.
3. Keyboard - The keyboard is a way to input letters or numbers into different applications or
programs. A keyboard also has special keys that help operate the computer.
4. Mouse - The mouse is used to open and close files, navigate web sites, and click on a lot of
commands (to tell the computer what to do) when using different applications.
5. Microphone - A microphone is used to record sound. The sound is then saved as a sound file
on the computer.
6. Scanner - A scanner is used to copy pictures or other things and save them as files on the
computer.
7. Joystick - A joystick is used to move the cursor from place to place, and to click on various
items in programs. A joystick is used mostly for computer games.
8. Bar Code Scanner - A bar code scanner scans a little label that has a bar code on it. The
information is then saved on the computer. Bar code scanners are used in libraries a lot.
Storage Unit:
The data & instruction that are entered have to be stored in the computer. Similarly, the end results
& the intermediate results also have to be stored somewhere before being passed to the output unit.
The storage unit provides solution to all these issues. This storage unit is designed to save the initial
data, the intermediate result & the final result. This storage unit has 2 units: Primary storage &
Secondary storage.
Primary Storage:
The primary storage, also called as the main memory, holds the data when the computer is currently
on. As soon as the system is switched off or restarted, the information held in primary storage
disappears (i.e. it is volatile in nature). Moreover, the primary storage normally has a limited
storage capacity, because it is very expensive as it is made up of semiconductor devices.
.
Secondary Storage:
The secondary storage, also called as the auxiliary storage, handles the storage limitation & the
volatile nature of the primary memory. It can retain information even when the system is off. It is
basically used for holding the program instructions & data on which the computer is not working
on currently, but needs to process them later.
Magnetic Disk
The Magnetic Disk is Flat, circular platter with metallic coating that is rotated beneath
read/write heads. It is a Random access device; read/write head can be moved to any location on the
platter.
Floppy Disk
These are small removable disks that are plastic coated with magnetic recording
material. Floppy disks are typically 3.5″ in size (diameter) and can hold 1.44 MB of data. This
portable storage device is a rewritable media and can be reused a number of times. Floppy disks are
commonly used to move files between different computers. The main disadvantage of floppy disks
is that they can be damaged easily and, therefore, are not very reliable.
Hard disk.
A hard disk consists of one or more rigid metal plates coated with a metal oxide
material that allows data to be magnetically recorded on the surface of the platters. The hard disk
platters spin at a high rate of speed, typically 5400 to 7200 revolutions per minute (RPM).Storage
capacities of hard disks for personal computers range from 10 GB to 120 GB (one billion bytes are
called a gigabyte).
CD:
Compact Disk (CD) is portable disk having data storage capacity between 650-700 MB. It can hold
large amount of information such as music, full-motion videos, and text etc. It contains digital
information that can be read, but cannot be rewritten. Separate drives exist for reading and writing
DGI Greater Noida
CDs. Since it is a very reliable storage media, it is very often used as a medium for distributing
large amount of information to large number of users. In fact today most of the software is
distributed through CDs.
DVD
Digital Versatile Disk (DVD) is similar to a CD but has larger storage capacity and enormous
clarity. Depending upon the disk type it can store several Gigabytes of data (as opposed to around
650MB of a CD). DVDs are primarily used to store music or movies and can be played back on
your television or the computer too. They are not rewritable media. It‘s also termed DVD (Digital
Video Disk)
Memory Hierarchy
The total memory capacity of a computer can be visualized by hierarchy of components. The
memory hierarchy system consists of all storage devices contained in a computer system from
the slow Auxiliary Memory to fast Main Memory and to smaller Cache memory.
Auxillary memory access time is generally 1000 times that of the main memory, hence it is at
the bottom of the hierarchy.
The main memory occupies the central position because it is equipped to communicate directly
with the CPU and with auxiliary memory devices through Input/output processor (I/O).
When the program not residing in main memory is needed by the CPU, they are brought in from
auxiliary memory. Programs not currently needed in main memory are transferred into auxiliary
memory to provide space in main memory for other programs that are currently in use.
The cache memory is used to store program data which is currently being executed in the CPU.
Approximate access time ratio between cache memory and main memory is about 1 to 7~10
OutputUnit:
The job of an output unit is just the opposite of an input unit. It accepts the results produced by the
computer in coded form. It converts these coded results to human readable form. Finally, it displays
the converted results to the outside world with the help of output devices ( Eg :monitors, printers,
projectors etc..).
Output device:
Device that lets you see what the computer has accomplished.
1. Monitor - A monitor is the screen on which words, numbers, and graphics can be seem. The
monitor is the most common output device.
2. Compact Disk - Some compact disks can be used to put information on. This is called
burning information to a CD. NOTE: A CD can also be an input device.
3. Printer - A printer prints whatever is on the monitor onto paper. Printers can print words,
numbers, or pictures.
4. Speaker - A speaker gives you sound output from your computer. Some speakers are built
into the computer and some are separate.
5. Headphones - Headphones give sound output from the computer. They are similar to
speakers, except they are worn on the ears so only one person can hear the output at a time.
Hardware-
This hardware is responsible for all the physical work of the computer.
Software-
This software commands the hardware what to do & how to do it. Together, the hardware &
software form the computer system. This software is further classified as system software &
application software.
System Software-
System software are a set of programs, responsible for running the computer, controlling various
operations of computer systems and management of computer resources. They act as an interface
between the hardware of the computer & the application software. E.g.: Operating System.
Application software
is a set of programs designed to solve a particular problem for users. It allows the end user to do
something besides simply running the hardware. E.g.: Web Browser, Gaming Software, etc.
Computer Classification:
Computers can be generally classified by size and power as follows, though there is considerable
overlap:
a. Personal computer: a small, single-user computer based on a microprocessor. In addition to
the microprocessor, a personal computer has a keyboard for entering data, a monitor fordisplaying
information, and a storage device for saving data.
b. Workstation: a powerful, single-user computer. A workstation is like a personal computer,
but it has a more powerful microprocessor and a higher-quality monitor.
c. Minicomputer: a multi-user computer capable of supporting from 10 to hundreds ofusers
simultaneously.
d. Mainframe: a powerful multi-user computer capable of supporting many hundreds or
thousands of users simultaneously.
e. Supercomputer: an extremely fast computer that can perform hundreds of millions of
instructions per second.
For Reference Only **Digital Computer-A brief History
Each generation of computer is characterized by a major technological development that
fundamentally changed the way computers operate, resulting in increasingly smaller, cheaper,
more powerful and more efficient and reliable devices.
First Generation (1940-1956) Vacuum Tubes
• The first computers used vacuum tubes for circuitry and magnetic drums for memory, and
were often enormous, taking up entire rooms.
• They were very expensive to operate and in addition to using a great deal of electricity,
generated a lot of heat, which was often the cause of malfunctions.
• First generation computers relied on machine language, the lowest-level programming
language understood by computers, to perform operations, and they could only solve oneproblem
at a time.
• Input was based on punched cards and paper tape, and output was displayed on printouts.
• The UNIVAC and ENIAC Computers are examples of first-generation computing devices.
Second Generation (1956-1963) Transistors
• Transistors replaced vacuum tubes and ushered in the second generation of computers. The
transistor was far superior to the vacuum tube, allowing computers to become smaller, faster,
cheaper, more energy-efficient and more reliable than their first-generation predecessors.
• Second-generation computers still relied on punched cards for input and printouts for output.
• Second-generation computers moved from cryptic binary machine language to symbolic, or
assembly, languages, which allowed programmers to specify instructions in words. High-level
programming languages were also being developed at this time, such as early versions of COBOL
and FORTRAN.
• The first computers of this generation were developed for the atomic energy industry.
Third Generation (1964-1971) Integrated Circuits
• The development of the integrated circuit was the hallmark of the third generation of
computers.
• Transistors were miniaturized and placed on silicon chips, called semiconductors, which
drastically increased the speed and efficiency of computers.
• Instead of punched cards and printouts, users interacted with third generation computers
through keyboards and monitors and interfaced with an operating system, which allowed the device
to run many different applications at one time with a central program that monitored thememory.
• Computers for the first time became accessible to a mass audience because they were smaller
and cheaper than their predecessors.
Fourth Generation (1971-Present) Microprocessors
• The microprocessor brought the fourth generation of computers, as thousands of integrated
circuits were built onto a single silicon chip.
• The Intel 4004 chip, developed in 1971, located all the components of the computer—from the
central processing unit and memory to input/output controls—on a single chip.
• As these small computers became more powerful, they could be linked together to form
networks, which eventually led to the development of the Internet.
• Fourth generation computers also saw the development of GUIs, the mouse and handheld
devices.
Fifth Generation (Present and Beyond) Artificial Intelligence
• Fifth generation computing devices, based on artificial intelligence, are still in development,
though there are some applications, such as voice recognition, that are being used today.
• The use of parallel processing and superconductors is helping to make artificial intelligence a
reality.
.
Notes
Definition: An operating system (OS) is a collection of software that manages computer hardware
resources and provides common services for computer programs.
Definition:(1)As an interface (2) As an environment (3) As a system software
7. FORMAT Command
You must format new disks before using them on the IBM computers. The format command checks a
diskette for flaws and creates a directory where all the names of the diskette's files will be stored.
8. MKDIR (MD) Make Directory Command
This command creates a new directory.
9. RENAME (REN) Command
The RENAME command permits users to change the name of a file without making a copy of it.
10. RMDIR (RD) Remove Directory Command
This command removes a directory. It is only possible to execute this command if the directory you
wish to remove is empty.
11. Stop Execution (Ctrl-Break)
If you wish to stop the computer in the midst of executing the current command, you may use the key
sequence Ctrl-Break. Some other commands are: DATE, TIME, VER, CLS, and COPYCON.
Microsoft Windows
• Windows is a meta family of graphical operating systems developed, marketed, and sold by
Microsoft.
• Active Windows families include Windows NT, Windows Embedded and Windows Phone;
these may encompass subfamilies, e.g. Windows Embedded Compact (Windows CE) or
Windows Server. Defunct Windows families include Windows 9x; Windows 10 Mobile is an
active product, unrelated to the defunct family Windows Mobile.
• Microsoft introduced an operating environment named Windows on November 20, 1985, as a
graphical operating system shell for MS-DOS in response to the growing interest in graphical
user interfaces (GUIs).
• Version history-Windows 1.0, Windows 2.0, and Windows 2.1x➔Windows 3.x➔Windows
9x➔Windows NT➔ Windows XP➔Windows Vista➔Windows 7➔Windows 8 and
8.1➔Windows 10➔
Basic Features of Windows Operating System-
1) Windows Easy Transfer 2) Windows Anytime Upgrade3) Windows Basics 4) Searching and
Organizing 5) Parental Controls 6) Ease of Access Center 7) Default Programs 8) Remote Desktop
Connection
Linux
• The Unix operating system was conceived and implemented in 1969 at AT&T's Bell
Laboratories in the United States by Ken Thompson, Dennis Ritchie, Douglas McIlroy, and Joe
Ossanna.
• Linux Operating System has primarily three components
• Kernel − Kernel is the core part of Linux. It is responsible for all major activities of this
operating system. It consists of various modules and it interacts directly with the
underlying hardware. Kernel provides the required abstraction to hide low level hardware
details to system or application programs.
• System Library − System libraries are special functions or programs using which
application programs or system utilities accesses Kernel's features. These libraries
implement most of the functionalities of the operating system and do not requires kernel
module's code access rights.
• System Utility − System Utility programs are responsible to do specialized, individual
level tasks.
.
Basic Features
Following are some of the important features of Linux Operating System.
• Portable − Portability means software can works on different types of hardware in same
way. Linux kernel and application programs supports their installation on any kind of
hardware platform.
• Open Source − Linux source code is freely available and it is community based
development project. Multiple teams work in collaboration to enhance the capability of
Linux operating system and it is continuously evolving.
• Multi-User − Linux is a multiuser system means multiple users can access system
resources like memory/ ram/ application programs at same time.
• Multiprogramming − Linux is a multiprogramming system means multiple applications
can run at same time.
• Hierarchical File System − Linux provides a standard file structure in which system
files/ user files are arranged.
• Shell − Linux provides a special interpreter program which can be used to execute
commands of the operating system. It can be used to do various types of operations, call
application programs. etc.
• Security − Linux provides user security using authentication features like password
protection/ controlled access to specific files/ encryption of data.
Architecture
The architecture of a Linux System consists of the following layers −
• Hardware layer − Hardware consists of all peripheral devices (RAM/ HDD/ CPU etc).
• Kernel − It is the core component of Operating System, interacts directly with hardware,
provides low level services to upper layer components.
• Shell − An interface to kernel, hiding complexity of kernel's functions from users. The
shell takes commands from the user and executes kernel's functions.
• Utilities − Utility programs that provide the user most of the functionalities of an
operating systems.
Android
What is Android-One of the most widely used mobile OS these days is ANDROID. Android
is a software bunch comprising not only operating system but also middleware and key
applications. Android Inc was founded in Palo Alto of California, U.S. by Andy Rubin,
Rich miner, Nick sears and Chris White in 2003. Later Android Inc. was acquired by
Google in 2005. After original release there have been number of updates in the original
version of Android
•
Features & Specifications
Android is a powerful Operating System supporting a large number of applications in Smart
Phones. These applications make life more comfortable and advanced for the users.
Android applications are written in java programming language.
Android is available as open source for developers to develop applications which can be
further used for selling in android market.
For software development, Android provides Android SDK (Software development kit).
Applications
These are the basics of Android applications:
• Android applications are composed of one or more application components (activities,
services, content providers, and broadcast receivers)
• Each component performs a different role in the overall application behavior, and each
one can be activated individually (even by other applications)
• The manifest file must declare all components in the application and should also declare
all application requirements, such as the minimum version of Android required and any
hardware configurations required
• Non-code application resources (images, strings, layout files, etc.) should include
alternatives for different device configurations (such as different strings for different
languages)
Topic: Concept of assembler, compiler, interpreter, loader and linker
COMPUTER LANGUAGES
• Languages are a means of communication. Normally people interact with each otherthrough
a language. On the same pattern, communication with computers is carried out through a
language. This language is understood both by the user and the machine.
• Just as every language like English, Hindi has its own grammatical rules; every computer
language is also bounded by rules known as syntax of that language. The user is bound by
that syntax while communicating with the computer system.
• High Level Language: Low level language requires extensive knowledge of the hardware
since it is machine dependent. To overcome this limitation, high level language has been
evolved which uses normal English, which is easy to understand to solve any problem. High
level languages are computer independent and programming becomes quite easy and simple.
Various high level languages are given below:
• BASIC (Beginners All Purpose Symbolic Instruction Code): It is widely used, easy to learn
general purpose language. Mainly used in microcomputers in earlier days.
• COBOL (Common Business Oriented language): A standardized language used for
commercial applications.
• FORTRAN (Formula Translation): Developed for solving mathematical and scientific
problems. One of the most popular languages among scientific community.
• C: Structured Programming Language used for all purpose such as scientific application,
commercial application, developing games etc.
.
• C++: Popular object oriented programming language, used for general purpose.
Compiler: The software that reads a program written in high level language and translates it into an
equivalent program in machine language is called as compiler. The program written by the
programmer in high level language is called source program and the program generated by the
compiler after translation is called as object program.
Interpreter: it also executes instructions written in a high level language. Both complier & interpreter
have the same goal i.e. to convert high level language into binary instructions, but their method of
execution is different. The complier converts the entire source code into machine level program,
while the interpreter takes 1 statement, translates it, executes it & then again takes the next statement.
Assembler: The software that reads a program written in assembly language and translates it into an
equivalent program in machine language is called as assembler.
Linker: A linker or link editor is a computer program that takes one or more object files generated by a
compiler and combines them into a single executable file, library file, or another object file.
.
Algorithm
• Characteristics of algorithm: Input, output, definiteness, finiteness, effectiveness.
• Algorithm is a step-by-step solution to a problem. Example: one algorithm for adding
two digit numbers is "add the units, add the tens and combine the answers"
• "Algorithm" is named after the 9th century Persian mathematician Al-Khwarizmi.
Example: For factorial
1. Start
2. Input number N (for which we want to calculate factorial.)
3. Let M=1 and F=1.
4. F=F*M.
5. Is M=N?
6. If NO then M=M+1 and go to step 3.
7. If YES then output F
8. End
Flow Chart:
A flowchart is a type of diagram that represents an algorithm or process, showing the steps as
boxes of various kinds, and their order by connecting these with arrows. This diagrammatic
representation can give a step-by-step solution to a given problem.
Flowchart:
STRUCTURE OF A C PROGRAM
The structure of a C program is a protocol (rules) to the programmer, which he has to follow while
writing a C program. The general basic structure of C program is shown in the figure below.
The part of the compiler which actually gets your program from the source file is called the preprocessor.
#include <stdio.h>
#include is a pre-processor directive. It is not really part of our program, but instead it is an instruction
to the compiler to make it do something. It tells the C compiler to include the contents of a file (in
this case the system file called stdio.h).
The compiler knows it is a system file, and therefore must be looked for in a special place, by the fact
that the filename is enclosed in <> characters
<stdio.h>
stdio.h is the name of the standard library definition file for all Standard Input and Output functions.
Your program will almost certainly want to send information to the screen and read things from the
keyboard, and stdio.h is the name of the file in which the functions that we want to use are defined.
The function we want to use is called printf. The actual code of printf will be tied in later by the linker.
The ".h" portion of the filename is the language extension, which denotes an include file.
void
This literally means that this means nothing. In this case, it is referring to the function whose name
follows.Void tells to C compiler that a given entity has no meaning, and produces no error.
Main In this particular example, the only function in the program is called main. A C program is typically
made up of large number of functions. Each of these is given a name by the programmer and they
refer to each other as the program runs.C regards the name main as a special case and will
.
run this function first i.e. the program execution starts from main. A parameter to a function gives
the function something to work on.
{ (Brace)
This is a brace (or curly bracket). As the name implies, braces come in packs of two - for every open
brace there must be a matching close one. Braces allow us to group pieces of program together, often
called a block. A block can contain the declaration of variable used within it, followed by a sequence
of program statements. In this case the braces enclose the working parts of the function main.
;( semicolon)
The semicolon marks the end of the list of variable names, and also the end of that declaration statement.
All statements in C programs are separated by ";" (semicolon) characters. The ";" character is actually
very important. It tells the compiler where a given statement ends. If the compiler does not find one
of these characters where it expects to see one, then it will produce an error.
scanf
In other programming languages, the printing and reading functions are a part of the language. In C this
is not the case; instead they are defined as standard functions which are part of the language
specification, but are not a part of the language itself. The standard input/output library contains a
number of functions for formatted data transfer; the two we are going to use are scanf (scan formatted)
and printf (print formatted).
printf
The printf function is the opposite of scanf. It takes text and values from within the program and sends
it out onto the screen. Just like scanf, it is common to all versions of C and just like scanf, it is
described in the system file stdio.h.The first parameter to a printf is the format string, which contains
text, value descriptions and formatting instructions.
Types of error
a) Syntax Errors: Errors in syntax (grammar) of the program.
b) Semantic Errors: Errors in the meaning of the program.
c) Logical Errors: Errors in logic of the program. Compiler cannot diagnose these kinds of errors.
d) Runtime Errors: i) Insufficient memory ii)Floating exception
e) Compile Errors: i) parse error ii)implicit declaration iii) no matching function iv)Unsatisfied
symbols v)incomplete type vi)cannot call member function vii)bad argument viii)cannot
allocate an object
,j
m
Special Character !@#$%^&*
Keywords
Keywords are the words whose meaning has already been explained to the C compiler. The
keywords cannot be used as variable names because if we do so we are trying to assign a
new meaning to the keyword, which is not allowed by the computer. There are only 32
keywords available in C. Below figure gives a list of these keywords for your ready
reference.
Identifier
In the programming language C, an identifier is a combination of alphanumeric characters, the
first being a letter of the alphabet or an underline, and the remaining being any letter of the
alphabet, any numeric digit, or the underline.
Two rules must be kept in mind when naming identifiers.
1. The case of alphabetic characters is significant. Using "INDEX" for a variable is not the same
as using "index" and neither of them is the same as using "InDeX" for a variable. All three
refer to different variables.
2. As C is defined, up to 32 significant characters can be used and will be consideredsignificant
by most compilers. If more than 32 are used, they will be ignored by the compiler.
.
Data Type
In the C programming language, data types refer to a domain of allowed values & the operations
that can be performed on those values. The type of a variable determines how much space it
occupies in storage and how the bit pattern stored is interpreted. There are 4 fundamental
data types in C, which are- char, int, float &, double. Char is used to store any single
character; int is used to store any integer value, float is used to store any single precision
floating point number & double is used to store any double precision floating point number.
We can use 2 qualifiers with these basic types to get more types.
Constants
A constant is an entity that doesn‘t change whereas a variable is an entity that may change constants
can be divided into two major categories: Primary Constants, Secondary Constants
• The exponent must have at least one digit, which must be a positive or negative integer.
Default sign is positive.
• Range of real constants expressed in exponential form is -3.4e38 to 3.4e38.
• Ex. +3.2e-5, 4.1e8, -0.2e+3, -3.2e-5
VARIABLES
Variables are names that are used to store values. It can take different values but one at a
time. A data type is associated with each variable & it decides what values the variable can
take. Variable declaration requires that you inform C of the variable's name and data type.
Syntax – data type variable name;
Eg:int page_no;
char grade;
float salary;
long y;
Declaring Variables:
There are two places where you can declare a variable:
After the opening brace of a block of code (usually at the top of a function)
Before a function name (such as before main() in the program) Consider various examples:
Initialization of Variables
When a variable is declared, it contains undefined value commonly known as garbage value. If
we want we can assign some initial value to the variables during the declaration itself. This
is called initialization of the variable.
Eg-int pageno=10;
Expressions
An expression consists of a combination of operators, operands, variables & function calls. An
expression can be arithmetic, logical or relational. Here are some expressions:
a+b – arithmetic operation
a>b- relational operation a
== b - logical operation
func (a,b) – function call
Statements
Statements are the primary building blocks of a program. A program is a series of statements
with some necessary punctuation. A statement is a complete instruction to the computer. In
C, statements are indicated by a semicolon at the end. a semicolon is needed to identify
instructions that truly are statements.
INPUT-OUTPUT IN C
When we are saying Input that means we feed some data into program. This can be given in the
form of file or from command line. C programming language provides a set of built-in
functions to read given input and feed it to the program as per requirement.
DGI Greater Noida
When we are saying Output that means to display some data on screen, printer or in any file.
C programming language provides a set of built-in functions to output the data on the
computer screen.
Functions printf() and scanf() are the most commonly used to display out and take input
respectively. Let us consider an example:
FORMATTED INPUT-OUTPUT
Data can be entered & displayed in a particular format. Through format specifications, better
presentation of results can be obtained.
/* Prints the number to be right justified to 3 columns but, there are 4 digits so number is not
right justified */
printf("Case 3:%.2f\n",987.6543);
/* Prints the number rounded to two decimal places */
printf("Case 4:%.f\n",987.6543);
/* Prints the number rounded to 0 decimal place, i.e, rounded to integer */
printf("Case 5:%e\n",987.6543);
/* Prints the number in exponential notation (scientific notation) */
return 0;
}
Output
Case 1: 9876
Case 2:9876
Case 3:987.65
Case 4:988
.
• Generally there are two kinds of locations in a computer where such a value can be present, these are
Memory and CPU registers. The storage class of a particular variable determines in which of the
above two locations the variable‘s value is stored.
• There are four properties by which storage class of a variable can be recognized. These are scope,
default initial value, scope and life.
• A variable‘s storage class reveals the following things about a variable
(i) Where the variable is stored.
(ii) What is the initial value of the variable if the value of the variable is not specified?
(iii) What is the scope of the variable (To which function or block the variable is available).
(iv) What is the life of particular variable (Up to what extent the variable exists in a program).
• In c there are four types of storage class. They are: 1. Auto 2. Register 3.
Static 4. Extern
• Storage class is modifier or qualifier of data types which decides: In which area of memory
a particular variable will be stored? What is scope of variable? What is visibility of variable?
Scope of a variable in c: Meaning of scope is to check either variable is alive or dead. Alive
means data of a variable has not destroyed from memory. Up to which part or area of the
program a variable is alive, that area or part is known as scope of a variable. There are four
type of scope in c:
1. Block scope.
2. Function scope.
3. File scope.
3. Program scope.
In the above program, variable a was used frequently as a loop counter so the variable a is defined as a
register variable. Register is a not a command but just a request to the compiler to allocate the memory
for the variable into the register. If free registers are available than memory will be allocated in to the
registers. And if there are no free registers then memory will be allocated in the RAM only (Storage
is in memory i.e. it will act as automatic variable).
Every type of variables can be stored in CPU registers. Suppose the microprocessor has 16 bit registers
then they can‘t hold a float or a double value which requires 4 and 8 bytes respectively.
DGI Greater Noida
But if you use register storage class for a float or double variable then you will not get any error message
rather the compiler will treat the float and double variable as be of automatic storage class(i.e. Will
treat them like automatic variables).
Output:10 11 12
Here in the above program the output is 10, 11, 12, because if a variable is declared as static then it is
initialized only once and that variable will never be initialized again. Here variable k is declared as
static, so when test() is called for the first time k value is initialized to 10 and its value is incremented
by 1 and becomes 11. Because k is static its value persists. When test() is called for the second time
k is not reinitialized to 10 instead its old value 11 is available. So now 11 is get printed and it value
is incremented by 1 to become 12. Similarly for the third time when test() is called 12(Old value) is
printed and its value becomes 13 when executes the statement ‗k++;‘
So the main difference between automatic and static variables is that static variables are initialized to
zero if not initialized but automatic variables contain an unpredictable value(Garbage Value) if not
initialized and static variables does not disappear when the function is no longer active , their value
persists, i.e. if the control comes back to the same function again the static variables have the same
values they had last time.
General advice is avoid using static variables in a program unless you need them, because their values
are kept in memory when the variables are not active which means they occupies space in memory
that could otherwise be used by other variables.
So if a variable is to be used by many functions and in different files can be declared as external variables.
The value of an uninitialized external variable is zero. The declaration of an external variable declares
the type and name of the variable, while the definition reserves storage for the variable as well as
behaves as a declaration. The keyword extern is specified in declaration but not in definition. Now
look at the following four statements
1. auto int a;
2. register int b;
3. static int c;
4. extern int d;
Out of the above statements first three are definitions where as the last one is a declaration. Suppose
there are two files and their names are File1.c and File2.c respectively. Their contents are as follows:
File1.c
int n=10;
void hello()
{
printf(―Hello‖);
}
File2.c
extern int n;
extern void hello();
void main()
{printf(―%d‖, n);
hello();}
In the above program File1.obj+ File2.obj=File2.exe and in File2.c value of n will be 10.
.
Topic: Arithmetic expressions and precedence: Operators and expression using numeric and
relational operators, mixed operands, type conversion, logical operators, bit operations,
assignment operator, operator precedence and associability.
OPERATORS-An operator is a symbol that tells the compiler to perform specific mathematical or
logical manipulations. C language is rich in built-in operators and provides the following
types of operators: Arithmetic Operators, Relational Operators, Logical Operators, Bitwise
Operators, Assignment Operators, Increment and decrement operators, Conditional
operators, Misc Operators
% B % A will give 0
Division
Relational Operators:
Assume variable A holds 10 and variable B holds 20, then:
Operator Description Example
== Checks if the values of two operands are equal or not, if yes (A == B) is not
then condition becomes true. true.
> Checks if the value of left operand is greater than the value (A > B) is not
of right operand, if yes then condition becomes true. true.
< Checks if the value of left operand is less than the value of (A < B) is true.
right operand, if yes then condition becomes true.
>= Checks if the value of left operand is greater than or equal to (A >= B) is not
the value of right operand, if yes then condition becomes true.
true.
<= Checks if the value of left operand is less than or equal to the (A <= B) is true.
value of right operand, if yes then condition becomes true.
Logical Operators:
Assume variable A holds 1 and variable B holds 0, then:
Operator Description Example
&&
nonzero, then condition becomes true. false.
|| (A || B) is true.
non-zero, then condition becomes true.
!(A && B) is
Bitwise Operators
Bitwise operator works on bits and performs bit-by-bit operation. These operators can operate upon int
and char but not on float and double..Bit wise operators in C language are; & (bitwise AND), |
(bitwise OR), ~ (bitwise OR), ^ (XOR), << (left shift) and >> (right shift).The truth tables for &, |,
and ^ are as follows:
P Q p&q p|q p^q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1
& Binary AND Operator copies a bit to the result if it (A & B) will give 12,
exists in both operands. which is 0000 1100
^ Binary XOR Operator copies the bit if it is set in (A ^ B) will give 49,
one operand but not both. which is 0011 0001
~ Binary Ones Complement Operator is unary and has (~A ) will give -61, which
the effect of ‗flipping‘ bits. is 1100 0011 in 2‘s
complement form.
<< Binary Left Shift Operator. The left operands value A << 2 will give 240
is moved left by the number of bits specified by the which is 1111 0000
right operand.
>> Binary Right Shift Operator. The left operands A >> 2 will give 15
value is moved right by the number of bits specified which is 0000 1111
by the right operand.
.
Assignment Operators:
In C programs, values for the variables are assigned using assignment operators.
There are following assignment operators supported by C language:
Operator Description Example
Increment/Decrement OPERATOR
In C, ++ and – are called increment and decrement operators respectively. Both of these operators are
unary operators, i.e, used on single operand. ++ adds 1 to operand and – subtracts 1 to operand
respectively. For example:
Let a=5 and b=10
a++; //a becomes 6
a--; //a becomes 5
++a; //a becomes 6
--a; //a becomes 5
When i++ is used as prefix(like: ++var), ++var will increment the value of var and then return it but, if
++ is used as postfix(like: var++), operator will return the value of operand first and then only
increment it. This can be demonstrated by an example:
#include <stdio.h>
int main()
{int c=2,d=2;
printf(―%d\n‖,c++); //this statement displays 2 then, only c incremented by 1 to 3.
Printf(―%d‖,++c); //this statement increments 1 to c then, only c is displayed.
Return 0;
}
Output:2 4
Conditional Operators (? :)
Conditional operators are used in decision making in C programming, i.e, executes different statements
according to test condition whether it is either true or false.
Syntax of conditional operators;
conditional_expression?expression1:expression2
If the test condition is true (that is, if its value is non-zero), expression1 is returned and if false
expression2 is returned.
y = ( x> 5 ? 3 : 4 ) ;➔this statement will store 3 in y if x is greater than 5, otherwise it will store 4 in y.
Misc Operators:
There are few other operators supported by c language.
Operator Description Example
& Returns the address of a variable. &a; will give actual address of
the variable.
• Type casting /type conversion is a way to convert a variable from one data type to another
data type. For example, if you want to store a long value into a simple integer then you
can typecast long to int.
• You can convert values from one type to another explicitly using the cast operator. There
are two types of type casting in c languages that are implicit conversions and Explicit
Conversions.
• New data type should be mentioned before the variable name or value in brackets which
to be typecast.
C TYPE CASTING EXAMPLE PROGRAM:
In the below C program, 7/5 alone will produce integer value as 1.So, type cast is done
before division to retain float value (1.4).
#include <stdio.h>
int main ()
{
float x;
x = (float) 7/5;
printf(―%f‖,x);
}
Output:
1.400000
WHAT IS TYPE CASTING IN C LANGUAGE?
Converting an expression of a given type into another type is known as type casting. It is best
practice to convert lower data type to higher data type to avoid data loss. Data will be
truncated when the higher data type is converted to lower. For example, if a float is
converted to int, data which is present after the decimal point will be lost.
There are two types of type casting in c language.
TYPES OF TYPECASTING IN C
Types of type casting in C Programming
Implicit Conversion
Explicit Conversion
1. IMPLICIT CONVERSION
Implicit conversions do not require any operator for converted. They are automatically
performed when a value is copied to a compatible type in the program.
#include<stdio.h>
#include<conio.h>
void main()
{
int i=20;
double p;
clrscr();
p=i; // implicit conversion
printf(―implicit value is %d‖,p);
getch();}
Output:-
implicit value is 20.
.
2. EXPLICIT CONVERSION
In C language, Many conversions, especially those that imply a different interpretation of the
value, require an explicit conversion.
Example :-
#include<stdio.h>
#include<conio.h>
void main()
{
int i=20;
short p;
clrscr();
p = (short) i; // Explicit conversion
printf(―Explicit value is %d‖,p);
getch();
}
Output:-
Explicit value is 20.
Topic: Conditional Branching: Applying if and switch statements, nesting if and else,
use of break and Default with switch.
a) If statement
Syntax:
if(boolean_expression)
{ /* statement(s) will execute if the Boolean expression is true */
}
If the Boolean expression evaluates to true then the block of code inside the if statement will be
executed. If boolean expression evaluates to false then the first set of code after the end of the if
statement (after the closing curly brace) will be executed. C programming language assumes any
non-zero and non-null values as true and if it is either zero or null then it is assumed as false value.
Flow Diagram:
Example:
.
#include <stdio.h>
int main ()
{ int a = 10;
if( a < 20 )
{ Printf("a is less than 20\n" );
}
Printf("value of a is : %d\n", a);
}
When the above code is compiled and executed, it produces following result:
a is less than 20;
value of a is : 10
Example:
#include <stdio.h>
main ()
{ int a = 100;
if( a < 20 )
{ Printf("a is less than 20\n" );
}
else
{ Printf("a is not less than 20\n" );
} Printf("value of a is : %d\n", a);}
.
When the above code is compiled and executed, it produces following result:
a is not less than 20;
value of a is : 100
• The constant-expression for a case must be the same data type as the variable in the switch,
and it must be a constant or a literal.
• When the variable being switched on is equal to a case, the statements following that case
will execute until a break statement is reached.
• When a break statement is reached, the switch terminates, and the flow of control jumps
to the next line following the switch statement.
• Not every case needs to contain a break. If no break appears, the flow of control will fall
through to subsequent cases until a break is reached.
• A switch statement can have an optional default case, which must appear at the end of the
switch. The default case can be used for performing a task when none of the cases is true.
No break is needed in the default case.
Flow Diagram:
Example:
main ()
{ char grade = 'B';
switch(grade)
{ case 'A' :
printf("Excellent!\n" );
break;
case 'B' :
case 'C' :
printf("Well done\n" );
break;
case 'D' :
printf("You passed\n" );
break;
case 'F' :
printf("Better try again\n" );
break;
default :
printf("Invalid grade\n" );
} printf("Your grade is %c\n", grade );
}
When the above code is compiled and executed, it produces following result:
Well done
Your grade is
B.
45