Monday, September 26, 2011

Different printf Statement

consider this code :

                                void main()
                                {
                                   int a=10,b=20;
                                   printf("%d...%d");
                                 }
o/p :
             10...20
the values will be printed even its variables are not mentioned. format specifier is necessary for that statement.


    




HOW TO PRINT THIS - printf("hello")

this can be done by the following code :

                                        printf("printf(\"hello\")");

o/p :

printf("hello")

Sunday, July 17, 2011

when will you declare a variable as a pointer variable

first understand the meaning of this declaration below :
                           
                                                 int a=10;
                                           
                                     
                                              
The statement describes the  variable (a) which holds the value 10 in a address in memory.Now the point to be noted is variable (a) contains a value.




But at the same time if the variable wants to hold address as a value like mentioned below

                                             a= address of another variable

then you have to declare this variable as a pointer variable like this
                                            int *a ;

Thursday, June 30, 2011

Snake game in C

The libraries used in this snake game are:
  • graphics.h
  • stdio.h
  • conio.h
  • dos.h
  • time.h
  • stdlib.h
#include <graphics.h>
#include <stdlib.h>
#include <dos.h>
#include <conio.h>
#include <stdio.h>
#include <time.h>


check();
end();
win();
int m[500],n[500],con=8,temp,a,i,j,t,s=500,z;
clock_t start,stop;
void main(void)

{
int gd=DETECT,gm,ch,maxx,maxy,x=13,y=14,p,q,spd=100;

initgraph(&gd,&gm,"D:\\TC\\BGI");


setcolor(WHITE);
settextstyle(3,0,6);
outtextxy(150,2," SNAKE GAME ");
settextstyle(6,0,2);
setcolor(RED);
outtextxy(20,80," Use Arrow Keys To Direct The Snake ");
setcolor(YELLOW);
outtextxy(20,140," Avoid The Head Of Snake Not To Hit Any Part Of Snake");
outtextxy(20,160," Pick The Beats Untill You Win The Game ");
setcolor(BLUE);
outtextxy(20,240," Press 'Esc' Anytime To Exit ");
outtextxy(20,220," Press Any Key To Continue ");

setcolor(GREEN);


outtextxy(400,380,"Made By :");
outtextxy(400,400,"Shubhang");
outtextxy(400,420,"Mohit");
outtextxy(400,440,"Rahul");



ch=getch();
if(ch==27) exit(0);
cleardevice();
maxx=getmaxx();
maxy=getmaxy();
for (z=0;z<3;z++)
{
sound(s);
delay(1000);
nosound();
delay(1000);
s+=500;
}
randomize();

p=random(maxx);
temp=p%13;
p=p-temp;
q=random(maxy);
temp=q%14;
q=q-temp;



start=clock();
a=0,i=0;
while(1)
{

 setcolor(WHITE);
 setfillstyle(SOLID_FILL,con+5);
 circle(p,q,5);
 floodfill(p,q,WHITE);

   if( kbhit() )
   {
     ch=getch(); if(ch==0) ch=getch();
     if(ch==72&& a!=2) a=1;
     if(ch==80&& a!=1) a=2;
     if(ch==75&& a!=4) a=3;
     if(ch==77&& a!=3) a=4;
      }
       else
     {
     if(ch==27
     ) break;
     }

       if(i<20){
     m[i]=x;
     n[i]=y;
     i++;
        }

   if(i>=20)

   {
     for(j=con;j>=0;j--){
      m[1+j]=m[j];
      n[1+j]=n[j];
       }
     m[0]=x;
     n[0]=y;

     setcolor(WHITE);
     setfillstyle(SOLID_FILL,con);
     circle(m[0],n[0],8);
     floodfill(m[0],n[0],WHITE);

     setcolor(WHITE);
     for(j=1;j<con;j++)
     {
    setfillstyle(SOLID_FILL,con+j%3);
     circle(m[j],n[j],5);
     floodfill(m[j],n[j],WHITE);
          }
       delay(spd);

    setcolor(BLACK);
    setfillstyle(SOLID_FILL,BLACK);
     circle(m[0],n[0],8);
     floodfill(m[0],n[0],BLACK);

     setcolor(BLACK);
    setfillstyle(SOLID_FILL,BLACK);
     circle(m[j],n[j],5);
     floodfill(m[j],n[j],BLACK);

     }
     stop=clock();
     t=(stop-start)/CLK_TCK;
     check();

    if(x==p&&y==q)
    {
    con=con+1;
    if(spd>=5)
    spd=spd-5;

    else spd=5;

    if(con>50)
    win();

    p=random(maxx);
    temp=p%13;
    p=p-temp;
    q=random(maxy);
    temp=q%14;
    q=q-temp;
        }

    if(a==1)
    y =  y-14;

    if(y<0)
    { temp=maxy%14;
    y=maxy-temp;
    }

    if(a==2)
    y =  y+14;

    if(y>maxy)
    y=0;

    if(a==3)
    x =  x-13;

    if(x<0)
    {
    temp=maxx%13;
    x=maxx-temp;
    }

    if(a==4)
    x =  x+13;

    if(x>maxx)
    x=0;

    if(a==0)
    {
    y = y+14 ;
    x=x+13;
    }

   }

 }


check()
{
   int a;
   for(a=1;a<con;a++)

if(m[0]==m[a] && n[0]==n[a]) end();
   else continue;
   return 0;
}

end()

{

    int j,i;
   setcolor(WHITE);
   for(i=0;i<5;i++)
   {
   delay(500);
   cleardevice();
   delay(500);
   for(j=0;j<=con;j++)
   {
    setfillstyle(SOLID_FILL,RED);
    circle(m[j],n[j],5);
    floodfill(m[j],n[j],RED);
   }

   }

    settextstyle(3,0,4);
    outtextxy(150,150,"    GAME OVER ");
    getch();
    getch();
    exit(0);
    return 0;
    }

win()
{
int j,i;
setcolor(WHITE);
   for(i=0;i<5;i++)
   {
   for(j=0;j<=con;j++)
   {
     setfillstyle(SOLID_FILL,con);
     circle(m[j],n[j],5);
     floodfill(m[j],n[j],WHITE);
   }

    delay(500);
    cleardevice();
    delay(500);
   }
  settextstyle(3,0,4);
  outtextxy(210,320," YOU WIN ");
  getch();
  exit(0);
  return 0;
}
NOTE : If the game shows any linking error 
then go to options>linkers>libraries and the tick on graphics.This
 method automatically link the graphics. 

Wednesday, June 29, 2011

swapping of two numbers without using temporary variable

swapping of two numbers using temporary variable :

                              int t;
                              t=a;
                              a=b;
                              b=t;
now consider swapping of two numbers without using the temporary variable:
                               a=a+b;
                               b=a-b;
                               a=a-b;

ex : consider a=10 and b=20
     a=10+20=30
     b=30-20=10
     a=30-10=20
now a=20 and b=10 after swapping

Tuesday, June 28, 2011

exit function


 The "exit" function terminates program execution and
returns the status value to the system. 
 
#include <stdlib.h>
exit( status );

The function begins its work by calling all the clean-up functions specified by "atexit" routines, in the reverse order that the functions were specified (so that the most recently specified clean-up function is executed first). These clean-up functions are executed in an environment that makes it look as if "main" has just returned. This means that automatic storage duration objects created by the program may not be accessed.
Next, "exit" flushes all I/O buffers and closes any streams that are currently open. Files created with the "tmpfile" function are removed.
Lastly, control is returned to the system. The system receives the status value indicating the success or failure of the program. The status is encoded in the program switch words in the same way as the UW Tools "exit" function; see "expl b lib exit" for details. In TSS, EXIT_FAILURE also issues a DRL T.ERR indicating an error.
For compatibility with other versions of C, you should only count on the lowest eight bits of "status" being returned to the caller.

exit(0) - exit with success
exit(1)-exit with failure

Use of return statement in a function

The most important thing is to know what happens when a return type function is used . let us taken a simple example
of it .
           function with return type :
            sum()- this is a function call.when the program encounters this statement it automatically goes to the definition part of the function from the main function.the point to be noted in here is before going to the defintion part of a function it stores the function call line address of the main function to the stack. now after executing that function when it encounters the closing "return" statement of the function. the stored address in the stack helps it to come back to the line where it is called from  the main function program.
look down the fig below and follow the steps :

Monday, June 27, 2011

Function Call

The most important thing is to know what happens when a function is called . let us taken a simple example
of it .
           function with no return type :
            sum()- this is a function call.when the program encounters this statement it automatically goes to the definition part of the function from the main function.the point to be noted in here is before going to the defintion part of a function it stores the next line address of the main function to the stack. now after executing that function when it encounters the closing "}" of the function. the stored address in the stack helps it to come back to the next line of the main function program.
look down the fig below and follow the steps :

Saturday, June 25, 2011

Functions in C and C ++

Function is a portion of code within a larger program that performs a specific task and is relatively independent of the remaining code.
 functions in c and c++ has three things to be considered before using it in a program
  •        prototype - tells you what type of function that you are going to use in your program
  •        definition- defines the function
  •        call- calls the function
 It is to be noted that where these three things comes in our program.Function prototype comes before starting of the main function after the main function.Function definition comes after the main function ends and Function  call comes inside the main function.

The general format of a function is
<Return type>   <Function name>   <Parameter list> 
{
     local definitions;
     statements;
     Return value;
}
#include <stdio.h>
int f1(int,int);      //prototype
void main(){
   int i=3;
   int j = 6;

   int k = f1(i,j);   //call
  
   printf("%d",k);
}
int f1 (int j, int f)   //definition
{
    int k;
    k = j + f;
    return k;
}
 

Wednesday, June 22, 2011

Main Function in C and C++

  • In many programming languages, the main function is where a program starts execution.
  • typically has access to the command arguments given to the program when it was executed.
  • The main function is generally the first programmer-written function run when a program starts, and is invoked directly from the system-specific initialization contained in crt0 or equivalent.
  • In C and C++, the function prototype of the main function looks like one of the following:
    int main(void)
     
    int main(int argc, char *argv[])
    
     
  • Unix (though not POSIX.1) and Microsoft Windows have a third argument giving the program's environment, otherwise accessible through getenv in stdlib.h:
     
    int main(int argc, char **argv, char **envp)
     
      
    • Mac OS X and Darwin have a fourth parameter containing arbitrary OS-supplied information, such as the path to the executing binary:

    int main(int argc, char **argv, char **envp, 
    char **apple)

      The name of the variable argc stands for "argument count"; argc contains the number of arguments passed to the program. The name of the variable argv stands for "argument vector". A vector is a one-dimensional array, and argv is a one-dimensional array of strings. Each string is one of the arguments that was passed to the program. envp specifies the envrionmental variables for the program .
     

Differences between int main and void main

int main() is from the older C times in which you returned a value to the calling program usually the operating system to indicate the success (0) or failure (any other value) of the program.

void main() - well there was no real reason to have the main return a value to the OS so it probably was discarded in later versions in favor of the cleaner void main().

Another reason :  void main() is a newer standard, and some compilers require this. It cannot return any value.

int main() is the original standard, and some older compilers require this. It can return a value that can be picked up by the operating system, such as an error message or other feedback.

It comes from the days when programs were run at the console, like DOS, not a GUI like Windows. When the program ended, either correctly or with an error, it would display the return code.

I think modern operating systems do not make any use of this.


Edit:
In the original Kernighan and Ritchie (K&R) C which was the standard for many years, 'void' did not exist.



Tuesday, June 21, 2011

How to create User-defined header File

juz open turbo c and type is following code

#include <stdio.h>
#include <conio.h>
void get()
{
  printf("Hi this is from header\n");
}
void put()
{
printf("bye");
}


// once you write this file save it as myheader.h in ur turbo c editor


***************************************************************
Now you open a new file in turbo c and then start writing is code given below:

#include "myheader.h"

void main()
{
   get();
   put();
}

save this file as sample.c and see it works ///
 

Benefits of C

In today's world of computer programming, there are many high-level languages to choose from, such as Pascal, BASIC, and Java. But C stands apart from all these languages. This is due to its many desirable qualities. It is a robust language whose rich set of built-in functions and operators can be used to write any complex logic program. The C language compiler combines the capabilities of a low level language with the features of a high level language. Therefore the language is suitable for writing both system software as well as business packages & other software. You will many compilers available in the market written in C.
• Program written in c are very efficient and fast. This is due to its variety of data types and powerful operators. It is many time faster than BASIC. This helps developers in saving their valuable time.
• C is a powerful and flexible language which helps system developers to deliver various complex tasks with ease. C is used for diverse projects as operating systems, word processors, graphics, spreadsheets, and even compilers for other languages.
• C is popular among professional programmers for programming, as a result, a wide variety of C compilers and helpful accessories are available.
• C is highly portable language. This means that a C program written for one computer system (an IBM PC, for example) can be run on another system (a DEC VAX system, perhaps) with little or no modification. Portability is enhanced by the ANSI standard for C, the set of rules for C compilers.
• C’s another striking feature is its ability to extend itself. A C program is basically a collection of various function supported by C library (also known as header files). We can also add our own functions to the C library. These functions can be reused in other applications or programs by passing pieces of information to the functions, you can create useful, reusable code.
• Writing C program with user-defined functions makes program more simple and easy to understand. Breaking a problem in terms of functions makes program debugging, maintenance and testing easier.
As these features shows that C is an excellent choice for your first programming language. But what is C++? You might have heard this term C++ and the programming technique called Object-Oriented Programming (OOP). Possibly you're wondering what the differences are between C and C++ and whether you should learn C or C++.
C++ is a superset of C, means that C++ is the new improved version of C for the latest programming needs. It contains everything C does, plus new additions for OOP concept. If you will learn C++ later, you will find that almost everything which you learnt in C is applicable in C++ too. In learning C, you are not only learning one of today's most powerful and popular programming languages, but you are also preparing yourself for other similar programming languages.
Another language that has gotten lots of attention is Java for its OOP and portability. Java, just like C++, is based on C. If later you decide to learn Java, you will find that almost everything you learned about C applies here.

C History

Before we start any complex program in C, we must understand what really C is, how it came into existence and how it differs from other languages of that time. In this tutorial I will try to talk about these issues and then move towards view structure of a typical C program.
C is a programming language which born at “AT & T’s Bell Laboratories” of USA in 1972. It was written by Dennis Ritchie. This language was created for a specific purpose: to design the UNIX operating system (which is used on many computers). From the beginning, C was intended to be useful--to allow busy programmers to get things done.
Because C is such a powerful, dominant and supple language, its use quickly spread beyond Bell Labs. In the late 70’s C began to replace widespread well-known languages of that time like PL/I, ALGOL etc. Programmers everywhere began using it to write all sorts of programs. Soon, however, different organizations began applying their own versions of C with a subtle difference. This posed a serious problem for system developers. To solve this problem, the American National Standards Institute (ANSI) formed a committee in 1983 to establish a standard definition of C. This committee approved a version of C in 1989 which is known as ANSI C. With few exceptions, every modern C compiler has the ability to adhere to this standard. ANSI C was then approved by the International Standards Organization (ISO) in 1990.
Now, what about the name? Why it was named C, why not something else. The C language is so named because its predecessor was called B. The B language was developed by Ken Thompson of Bell Labs.