Wednesday 30 November 2011

Introduction to 'C'


About C
C is a programming language developed at AT&T’s Bell Laboratories of USA in 1972. It was designed and written by a man named Dennis Ritchie. In the late seventies C began to replace the more familiar languages of that time like PL/I, ALGOL etc.

History of C
By 1960 a hoard of computer languages had come into existence, almost each for specific purpose. For example, COBOL was being used for Commercial Applications, FORTRAN for Engineering and Scientific Applications and so on. At this stage people started thinking that instead of learning and using so many languages, each for a different purpose, why not use only one language which can program all possible applications. Therefore, an international committee came out with a language called ALGOL 60. However, ALGOL 60 never really became popular because it is too abstract, too general. To reduce this new language called Combined Programming Language (CPL) was developed at Cambridge University. However, CPL turned out to be so big, having so many features, that it was hard to learn and difficult to implement.
Basic Combined Programming Language(BCPL), developed by Martin Richards at Cambridge University aimed to solve this problem by bringing CPL down to its basic good features. Around the same time a language called B was written by Ken Thompson at AT&T’s Bell Labs. Ritchie inherited the features of B and BCPL, added some of his own and developed C. Ritchie’s main achievement is the restoration of the lost generality in BCPL and B, and still keeping powerful.

C Stand between……
Problem oriented languages or High level languages:
These languages have been designed to give a better programming efficiency, i.e. faster program development. Examples are FORTRAN, BASIC, PASCAL.

Machine oriented languages or Low level languages:
These languages have been designed to give a better machine efficiency, i.e faster program execution. Examples are Assembly languages and Machine language.

C stands in between these two categories. That’s why it is often called as a middle level language, since it was designed to have both a relatively good programming efficiency (as compared to Machine oriented language) and relatively good machine efficiency (as compared to Problem oriented languages).



Getting Started with C


The C Character Set
A character denotes any alphabet, digit or special symbol used to represent information. Following table shows the valid alphabets, numbers and special symbols allowed in C:


Constants, Variables and Keywords
The alphabets, numbers and special symbols when properly combined form constants, variables and keywords. A constant is a quantity that doesn’t change.
A variable can be considered as a name given to the location in memory where this constant is stored. Naturally the constant of the variable can change.





Types of C Constants

Rules for Constructing Integer Constants
a)     An integer constant must have at least one digit.
b)    It must not have a decimal point.
c)     It could be either positive or negative.
d)    If no sign precedes an integer constant it is assumed to be positive.
e)     No comments or blanks are allowed within an integer constant.
f)      The allowable range for integer constant is -32768 to +32767.
Ex.:     426
            +782
            -8000
            -7605
 
Rules for Constructing Real Constants
Real constants are often called Floating Point constants. The real constants could be written in two forms, Fractional form and Exponential form.
a)     A real constant must have atleast one digit.
b)    It must have a decimal point.
c)     It could be either positive or negative.
d)    Default sign is positive.
e)     No commas or blanks are allowed within a real constant.
Ex.:     +325.34
            426.0
                        -32.76
                        -48.5792

Rules for Constructing Constants
a)     A character constant is either a single alphabet, a single digit or a single special symbol enclosed within single inverted commas Both the inverted commas should point to the left. For example, ‘A’ is a valid character constant.
b)    The maximum length of a character constant can be 1 character.
Ex.:     ‘A’
            ‘I’
            ‘5’
            ‘=’
Types of C Variables
In C, a quantity which may vary during program execution is called a variable. Variable names are names given to locations in memory of computer where different constants are stored. These locations can contain integer, real or character constants.

Rules for Constructing Variable Names
a)     A variable name is any combination of 1 to 8 alphabets, digits or underscores. Some compilers allow variable names whose length could be up to 40 characters. Still, it would be safer to stick to the rule of 8 characters.
b)    The first character in the variable name must be an alphabet.
c)     No commas or blanks are allowed within a variable name.
d)    No special symbol other than an underscore (as in gross_sal) can be used in variable name.
Ex.:     si_int
            M_hra
            Pop_e_89

C Keywords
Keywords are the words whose meaning has already been explained to the C compiler (or in a broad sense to the computer). The keywords cannot be used as variable names because if we do so we are trying to assign a new meaning to the key word, which is not allowed by the computer. There are 32 keywords available in C.

C Instructions
There are four types of instructions in C
A)    Type Declaration Instruction
B)    Input/Output Instruction
C)    Arithmetic Instruction
D)   Control Instruction

Type Declaration Instruction
This instruction is used to declare the type of variables being used in the program. Any variable used in the program must be declared before using it in any statement. The type declaration statement is usually written at the beginning of the C program.
Ex.:     int bas;
            Float   rs, grosssal;
            Char name, code;

Arithmetic Instructions
C Arithmetic instructions consists of a variable name on the left hand side of = and variable name & constants on the right hand side of =.
The variables and constants appearing on the right hand side of = are connected by arithmetic operators like +, -, *, /.


Ex.:     int ad;
            Float kot, deta, alpha, beta, gamma;
            ad=3200;
            kot=0.0056;
            deta=alpha*beta/gamma+3.2*2/5;
Here
            *, /, -, + are the arithmetic operators.
            = is the assignment operator.
            2,5 and 3200 are ineger constants.
            3.2 and 0.0056 are real constants.
            ad is an integer variable.
            kot, deta, alpha, beta, gamma are real variables.

First C Program
/* Caliculation of simple interest */
Main()
{
            int p, n;
            float r,si;

            p=1000;
            n=3;
r=8.5;
si=p*n*r/100;
printf(“%f”,si);
}


The printf Function

1.     printf displays information on screen.
2.     printf returns the number of characters printed.
3.     printf displays the text you put inside the double quotes.
4.     printf requires the backslash character - an escape sequence - to display some special characters.
5.     printf can display variables by using the % conversion character.
6.     printf format: a string argument followed by any additional arguments.

#include <stdio.h>

main()
{
    int i = 0;
    
    i=printf("abcde\n");   
    
    printf("total characters printed %d\n",i);
}
Output:
abcde
     total characters printed 6

The printf() Conversion Characters and flags


Conversion Character
Displays Argument (Variable's Contents) As
%c
Single character
%d
Signed decimal integer (int)
%e
Signed floating-point value in E notation
%f
Signed floating-point value (float)
%g
Signed value in %e or %f format, whichever is shorter
%i
Signed decimal integer (int)
%o
Unsigned octal (base 8) integer (int)
%s
String of text
%u
Unsigned decimal integer (int)
%x
Unsigned hexadecimal (base 16) integer (int)

scanf  function

The scanf function: read information from a standard input device (keyboard).
scanf("conversion specifier", variable);
The conversion specifier argument tells scanf how to convert the incoming data.
1.     scanf starts with a string argument and may contain additional arguments.
2.     Additional arguments must be pointers.
3.     scanf returns the number of successful inputs.
Common Conversion Specifiers Used with Scanf
Conversion Specifier
Description
%d
Receives integer value
%f
Receives floating-point numbers
%c
Receives character

#include <stdio.h>

main()
{
    int i = 0;
    int k,j=10;

    printf("Input three integers and press enter to confirm.");

    i=scanf("%d%d%d",&j,&k,&i);
    printf("total values inputted %d\n",i);
    printf("The input values %d %d\n",j,k);
}

Output:
Input three integers and press enter to confirm.1 2 3
total values inputted 3
The input values 1 2