PPS Unit 1 Notes
PPS Unit 1 Notes
PPS Unit 1 Notes
algorithms & Pseudo code - Single line and multiline comments - Introduction to C: Structure of
the C program - Input and output statements. Variables and identifiers, Constants, Keywords -
Values, Names, Scope, Binding, Storage Classes - Numeric Data types: integer, floating point- Non-
Numeric Data types: char and string - L value and R value in expression, Increment and decrement
operator - Comma, Arrow and Assignment operator, Bitwise and Size-of operator - Arithmetic,
Relational and logical Operators - Condition Operators, Operator Precedence - Expressions with pre
/ post increment operator
Machine Languages
In the earliest days of computers, the only programming languages available were
machine languages. Each computer has its own machine language, which is made of
streams of 0’s and 1’s. Instructions in machine language must be in streams of 0’s and
1’s because the internal circuits of a computer are made of switches transistors and other
electronic devices that can be in one of two states: off or on. The off state is represented
by 0 , the on state is represented by 1.The only language understood by computer
hardware is machine language.
Symbolic Languages:
Computer does not understand symbolic language it must be translated to the machine
language. A special program called assembler translates symbolic code into machine
language.Because symbolic languages had to be assembled into machine language they soon
became known as assembly languages. Symbolic language uses symbols or mnemonics to
represent the various ,machine language instructions.
High level languages are portable to many different computers, allowing the
programmer to concentrate on the application problem at hand rather than the intricacies of
the computer. High-level languages are designed to relieve the programmer from the details
of the assembly language. High level languages share one thing with symbolic languages,
They must be converted into machine language. The process of converting them is known
as compilation.
C is a high-level language used for system software and new application code.
Here we try to understand the problem to be solved in totally. Before with the next stage or step, we
should be absolutely sure about the objectives of the given problem.
After understanding thoroughly the problem to be solved, we look at different ways of solving the
problem and evaluate each of these methods.
The idea here is to search for an appropriate solution to the problem under consideration. The end
result of this stage is a broad overview of the sequence of operations that are to be carried out to solve the
given problem.
Here, the overview of the sequence of operations that was the result of the analysis stage is expanded
to form a detailed step by step solution to the problem under consideration.
The last stage of problem-solving is the conversion of the detailed sequence of operations into a
language that the computer can understand. Here, each step is converted to its equivalent instruction or
instructions in the computer language that has been chosen for the implantation.
The vehicle for the computer solution to a problem is a set of explicit and unambiguous instructions
expressed in a programming language. This set of instruction is called a program with problem solving
through programming in C.
The problem solving is a skill and there are no universal approaches one can take to solving problems.
Basically one must explore possible avenues to a solution one by one until she/he comes across the right path
to a solution.In general, as one gains experience in solving problems, one develops one’s own techniques and
strategies, though they are often intangible. Problem-solving skills are recognized as an integral component of
computer programming.
Problem-solving is a creative process which defines systematization and mechanization. There are a
number of steps that can be taken to raise the level of one’s performance in problem-solving. A problem-
solving technique follows certain steps in finding the solution to a problem. Let us look into the steps one by
one:
The success in solving any problem is possible only after the problem has been fully understood. That
is, we cannot hope to solve a problem, which we do not understand. So, the problem understanding is the first
step towards the solution of the problem.
In the problem definition phase, we must emphasize what must be done rather than how is it to be
done. That is, we try to extract the precisely defined set of tasks from the problem statement.
Inexperienced problem solvers too often gallop ahead with the task of the problem – solving only to find that
they are either solving the wrong problem or solving the wrong problem or solving just one particular
problem.
2. Getting Started on a Problem:
There are many ways of solving a problem and there may be several solutions. So, it is difficult to
recognize immediately which path could be more productive. Sometimes you do not have any idea where to
begin solving a problem, even if the problem has been defined. Such block sometimes occurs because you
are overly concerned with the details of the implementation even before you have completely understood or
worked out a solution.
The best advice is not to get concerned with the details. Those can come later when the intricacies of the
problem have been understood.
To get started on a problem, we can make use of heuristics i.e the rule of thumb. This approach will
allow us to start on the problem by picking a specific problem we wish to solve and try to work out the
mechanism that will allow solving this particular problem.
It is usually much easier to work out the details of a solution to a specific problem because the
relationship between the mechanism and the problem is more clearly defined.
This approach of focusing on a particular problem can give us the foothold we need for making a start
on the solution to the general problem.
One way to make a start is by considering a specific example. Another approach is to bring the
experience to bear on the current problems. So, it is important to see if there are any similarities between the
current problem and the past problems which we have solved.
The more experience one has the more tools and techniques one can bring to bear in tackling the given
problem. But sometimes, it blocks us from discovering a desirable or better solution to the problem. A skill
that is important to try to develop in problem-solving is the ability to view a problem from a variety of angles.
One must be able to metaphorically turn a problem upside down, inside out, sideways, backwards,
forwards and so on. Once one has developed this skill it should be possible to get started on any problem.
In some cases, we can assume that we already have the solution to the problem and then try to work
backwards to the starting point. Even a guess at the solution to the problem may be enough to give us a foothold
to start on the problem. We can systematize the investigations and avoid duplicate efforts by writing down the
various steps taken and explorations made. Another practice that helps to develop the problem-solving skills,
once we have solved a problem, to consciously reflect back on the way we went about discovering the solution.
ALGORITHM:
Step 1: Start
Step 2:Read the two numbers in to a,b
Step 3: c=a+b
Step 4: write/print c
Step 5: Stop.
FLOW CHART :
(or)
The diagrammatic representation of way to solve the given problem is called flow chart.
The following are the most common symbols used in Drawing flowcharts:
For processing(input) or
recording of the process
information(output).
switching type of
operations.
COMMENTS IN C
Comments can be used to explain code, and to make it more readable. It can also be used to prevent
execution when testing alternative code.
Single-line Comments
Single-line comments start with two forward slashes (//). Any text between // and the end of the line is
ignored by the compiler (will not be executed). This example uses a single-line comment before a line of
code:
Example
// This is a comment
printf("Hello World!");
C Multi-line Comments
C is the programming language most frequently associated with UNIX. Since the 1970s, the
bulk of the UNIX operating system and its applications have been written in C. Because the C
language does not directly rely on any specific hardware architecture, UNIX was one of the first
portable operating systems. In other words, the majority of the code that makes up UNIX does not
know and does not care which computer it is actually running on. Machine-specific features are
isolated in a few modules within the UNIX kernel, which makes it easy for you to modify them
when you are porting to a different hardware architecture.C was first designed by Dennis Ritchie
for use with UNIX on DEC PDP-11 computers. The language evolved from Martin Richard's
BCPL, and one of its earlier forms was the B language, which was written by Ken Thompson for
the DEC PDP-7. The first book on C was The C Programming Language by Brian Kernighan and
Dennis Ritchie, published in 1978.
The program written in C language follows this basic structure. The sequence of sections
should be as they are in the basic structure. A C program should have one or more sections but the
sequence of sections is to be followed.
1. Documentation section
2. Linking section
3. Definition section
4. Global declaration section
Declaration section
Executable section
1.DOCUMENTATION SECTION : comes first and is used to document the use of logic or
reasons in your program. It can be used to write the program's objective, developer and logic
details. The documentation is done in C language with /* and */ . Whatever is written
between these two are called comments.
2.LINKING SECTION : This section tells the compiler to link the certain occurrences of
keywords or functions in your program to the header files specified in this section.
3. DEFINITION SECTION : It is used to declare some constants and assign them some value.
Here #define is a compiler directive which tells the compiler whenever MAX is found in
the program replace it with 25.
4.GLOBAL DECLARATION SECTION : Here the variables which are used through out the
program (including main and other functions) are declared so as to make them global(i.e
accessible to all parts of program)
5. MAIN FUNCTION SECTION : It tells the compiler where to start the execution
from main()
}
main function has two sections
1. declaration section : In this the variables and their data types are declared.
2. Executable section : This has the part of program which actually performs the task we
need.
6.SUB PROGRAM OR FUNCTION SECTION : This has all the sub programs or the
functions which our program needs.
SIMPLE ‘C’ PROGRAM:
/* simple program in c */
#include<stdio.h>
main()
printf(“welcome to c programming”);
} /* End of main */
The simplest of input operator is getchar to read a single character from the input
device.
varname=getchar();
The simplest of output operator is putchar to output a single character on the output
device.
putchar(varname)
The getchar() is used only for one input and is not formatted. Formatted input refers to an input data
that has been arranged in a particular format, for that we have scanf.
arg1, arg2... argn specifies address of location or variable where data is stored. eg
scanf("%d%d",&a,&b);
%f floats
%l long
%c character
{
int a,b;
float c;
numbers"); scanf("%d%d%f",&a,&b,&c);
printf("%d%d%f",a,b,c);
C-TOKENS :
Tokens are individual words and punctuations marks in English language sentence. The
smallest individual units are known as C tokens.
OPERATORS
E.g. +, -, *
E.g. [ ], { }
SPECIAL SYMBOLS
E.g. “asifia”
STRINGS
C TOKENS
IDENTIFIERS
E.g. rate,no_of_hours
KEYWORDS :
There are certain words, called keywords (reserved words) that have a predefined
meaning in ‘C’ language. These keywords are only to be used for their intended purpose and not
as identifiers.
Volatile While
IDENTIFIERS :
Names of the variables and other program elements such as functions, array,etc,are
known as identifiers.
There are few rules that govern the way variable are named(identifiers).
1. Identifiers can be named from the combination of A-Z, a-z, 0-9, _(Underscore).
2. The first alphabet of the identifier should be either an alphabet or an underscore. digit
are not allowed.
Eg: name,ptr,sum
where data type could be float, int, char or any of the data types.
id1, id2, id3 are the names of variable we use. In case of single variable no commas are
required.
eg float a, b, c;
present_or_absent;
ASSIGNING VALUES :
When we name and declare variables we need to assign value to the variable. In some cases
we assign value to the variable directly like
a=10;
in our program.
In some cases we need to assign values to variable after the user has given input for
that.
main()
int a;
float b;
b=190.5;
scanf("%d",&a);
CONSTANTS :
A quantity that does not vary during the execution of a program is known as a constant
supports two types of constants namely Numeric constants and character constants.
NUMERIC CONSTANTS:
2. Long constant is written with a terminal ‘l’or ‘L’,for example 1234567899L is a Long
constant.
3. Unsigned constants are written with a terminal ‘u’ or ‘U’,and the suffix ‘ul’ and ‘UL’
CHARACTER CONSTANTS:
A character constant is written as one character with in single quotes such as ‘a’. The value
of a character constant is the numerical value of the character in the machines character set. certain
character constants can be represented by escape sequences like ‘\n’. These sequences look like
two characters but represent only one.
\a Alert
\b Backspace
\f Form feed
\n New Line
\r Carriage return
\t Horizontal Tab
\v Vertical Tab
To distinguish between a character constant and a string that contains a single character ex:
‘a’ is not same as “a”. ‘a’ is an integer used to produce the numeric value of letter a in the machine
character set, while “a” is an array of characters containing one character and a ‘\0’ as a string in
C is an array of characters terminated by NULL.
There is one another kind of constant i.e Enumeration constant , it is a list of constant
integer values.
The first name in the enum has the value 0 and the next 1 and so on unless explicit values
are specified.
If not all values specified , unspecified values continue the progression from the last
specified value. For example
VARIABLES :
A quantity that can vary during the execution of a program is known as a variable. To
identify a quantity we name the variable for example if we are calculating a sum of two numbers
we will name the variable that will hold the value of sum of two numbers as 'sum'.
DATA TYPES :
To represent different types of data in C program we need different data types. A data type is
essential to identify the storage representation and the type of operations that can be performed on
that data. C supports four different classes of data types namely
All arithmetic operations such as Addition , subtraction etc are possible on basic data
types.
Char c;
The following table shows the Storage size and Range of basic data types:
Derived datatypes are used in ‘C’ to store a set of data values. Arrays and Structures are
examples for derived data types.
Char name[20];
C Provides a facility called typedef for creating new data type names defined by the
user. For Example ,the declaration ,
makes the name Integer a synonym of int.Now the type Integer can be used in declarations
,casts,etc,like,
Integer num1,num2;
Which will be treated by the C compiler as the declaration of num1,num2as int variables. “typedef”
OPERATORS :
1. Arithmetic operators
2. Relational operators
3. Logical operators
4. Assignment operators
6. Conditional operator
7. Bit wise operators
8. Special operators
operator meaning
+ add
- subtract
* multiplication
/ division
% modulo division(remainder)
An arithmetic operation involving only real operands(or integer operands) is called real
arithmetic(or integer arithmetic). If a combination of arithmetic and real is called mixed mode
arithmetic.
operator meaning
== is equal to
!= is not equal to
It is the form of
3. LOGICAL OPERATORS : An expression of this kind which combines two or more relational
expressions is termed as a logical expressions or a compound relational expression. The operators
and truth values are
non-zero non-zero 1 1
non-zero 0 0 1
0 non-zero 0 1
0 0 0 0
op-1 !op-1
non-zero zero
zero non-zero
v op=exp
v is variable
op binary operator
exp expression
a=a+1 a+=1
a=a-1 a-=1
a=a%b a%=b
++ and == are called increment and decrement operators used to add or subtract. Both
++m or m++
--m or m--
It work as
8. BIT WISE OPERATORS : C supports special operators known as bit wise operators for
manipulation of data at bit level. They are not applied to float or double. operator meaning
^ Bitwise exclusive OR
~ one's complement
9. SPECIAL OPERATORS : These operators which do not fit in any of the above classification
are
,(comma), sizeof, Pointer operators(& and *) and member selection operators (. and ->). The
comma operator is used to link related expressions together.
#include<stdio.h>
main()
int i,j;
float l, m;
scanf("%d%d",&i,&j);
scanf("%f%f",&l,&m);
sum=i+j
mul=i*j;
modu=i%j
; sub=l-m;
divi=l/m;
#include<stdio.h>
main()
int i, j, k;
if((i<j)&&(j<k))
printf("k is largest");
printf("j is largest");
else
main()
int i;
printf("Enter a number");
scanf("%d", &i);
i++;
i--;
#include<stdio.h>
main()
int i,j,large;
scanf("%d%d",&i,&j);
large=(i>j)?i:j;