Monday, September 14, 2009

C Program for Bisection Method

Bisection method:
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "iostream.h"
 
int fn[20];
int n;
double a,b,x0;
double fnval;
 
float abso(float x)
{
        if (x<0) return -x;else return x;
}
 
double power(double a,int b)
{
        int i;
        double c=1;
        for (i=0;i<=b;i++)
c=c*a;
        return c;
}
 
void getfunction()
{
        int i;
        printf("Enter the degree of the function: ");
        cin >> n;
        printf("\nStart entering the coefficients\n\n");
        for (i=n;i>=0;i--)
        {
               printf("Enter coefiicient of degree %d: ",i);
               cin >> fn[i];
        }
}
 
void displayfunction()
{
        int i;
        printf("\nCurrent function is:\n ");
        for (i=n;i>-1;i--)
        {
               if (i==0) printf("%d",fn[i]);
               else printf("%dx^%d + ",fn[i],i);
        }
}
 
float getaccuracy()
{
        float no;
        printf("\nEnter the accuracy required: ");
        cin >> no;
        return no;
}
 
double fx(double x)
{
        int i;
        double ans=0;
        for (i=n;i>-1;i--)
        {
               ans=ans+fn[i]*power(x,i);
        }
        return ans;
}
 
void getinitialvals()
{
        float curr=0,prev=0;
        static float left=-100;
        for (int i=left;i<=100;i++)
        {
               curr=fx(i);
               a=i-1;b=i;
               if (curr==0)
               {
                       left=i+1;
                       printf("\nroot is %f",b);
                       getinitialvals();
               }
 
               if (i==99)
               {
                       printf("\n\nThe equation has no further real roots");
                       exit(1);
               }
 
               if (curr*prev<0)
               {
                       left=i;
                       break;
               }
               prev=curr;
        }
}
 
void checkinivals()
{
        if(fx(a)>fx(b))
        {
               double temp=a;
               a=b;
               b=temp;
        }
}
 
 
int main()
{
        int i=0,itr=0;
        int j=1;
        clrscr();
        getfunction();
        float accu=getaccuracy();
        displayfunction();
        do
        {
               i=0;
               getinitialvals();
               checkinivals();
               cout << "\n\nInitial values are "<< a<< " and " << b << "\n";
               do
               {
                       x0=(a+b)/2;
                       fnval=fx(x0);
                       printf("%d%15f%15f%15f%15f%15f\n",i+1,a,b,x0,fnval,b-a);
                       if (fnval<0) a=x0; else b=x0;
                       i++;
               } while (abso(b-a)>accu);
 
               printf("\n\nThe root of the equation is %f in %d iterations",x0,i);
               printf("\nPress any key to search for more roots");
               getch();
 
        } while(1);
}

C Program to Maintain a Small Library

#include"stdio.h"
#include"conio.h"
#include"string.h"
#include"math.h"
struct library
{
            int acc_no;
            char title[20];
            char author[15];
            int price;
            char flag;
};
struct library book[200];
int count,i=0;
int menu()
{
            int opt;
            printf("\n 1. Add Book Information\n 2. Display Book Information");
            printf("\n 3. List all Books of a Given Author\n 4. List the Title of a Specified Book");
            printf("\n 5. List the count of Books in the Library");
            printf("\n 6. List the Books in the Order of Accession No.");
            printf("\n 7. Exit");
            printf("\n Please Enter Your Option : ");
            scanf("%d",&opt);
            return opt;
}
void add()
{
            char ch;
            do{
            printf("\n --**:: Enter the Information of a New Book ::**--");
            printf("\n Accession no.                      : ");
            scanf("%d",&book[i].acc_no);
            printf("\n Title                        : ");
            scanf("%s",book[i].title);
            printf("\n Name of Author                              : ");
            scanf("%s",book[i].author);
            printf("\n Price of the Book                : ");
            scanf("%d",&book[i].price);
            fflush(stdin);
            printf("\n Has the book been Issued? : ");
            scanf("%c",&book[i].flag);
            fflush(stdin);
            textcolor(4);
            cprintf("\n\n Do you want to add another book (y/n) : ");
            textcolor(7);
            scanf("%c",&ch);
            count=i+1;
            i++;
            }while(ch=='y' || ch=='Y');
}
void display()
{
            int i;
            for(i=0;i
            {
                        printf("\n\n <---------------Book No. %d----------------->\n",i+1);
                        printf("\n Name                                   : %s",book[i].title);
                        printf("\n Author                     : %s",book[i].author);
                        printf("\n Accession No.        : %d",book[i].acc_no);
                        printf("\n Price                        : %d",book[i].price);
                        printf("\n Issued (STATUS)   : %c",book[i].flag);
            }
}
void searchau()
{
            char name[15];
            int i,cnt=0;
            printf("\n Enter the Author name to Search : ");
            scanf("%s",name);
            for(i=0;i
            {
                        if(strcmp(name,book[i].author)==0)
                                    printf("\n Book %d  : %s",++cnt,book[i].title);
            }
            if(cnt==0)
                        printf("\n NO RECORD FOUND\n");
            }
void searchacc()
{
            int i,acc,found=0;
            printf("\n Enter the Accession no. to Search the Book : ");
            scanf("%d",&acc);
            for(i=0;i
            {
                        if(acc==book[i].acc_no)
                        {
                                    printf("\n\n Book Title : %s",book[i].title);
                                    found=1;
                        }
            }
            if(found==0)
                        printf("\n NO RECORD FOUND");
}
void main()
{
            int opt;
            char ch;
            do{
            clrscr();
            opt=menu();
            switch(opt)
            {
                        case 1:
                           add();
                           break;
                        case 2:
                           display();
                           break;
                        case 3:
                           searchau();
                           break;
                        case 4:
                           searchacc();
                           break;
                        case 5:
                           printf("\n The Total No. of Books in Library is : %d",count);
                           break;
                        case 6:
                           display();
                           break;
                        default:
                           exit(0);
            }
            fflush(stdin);
            printf("\n Do you want to Continue (y/n) : ");
            scanf("%c",&ch);
            }while(ch=='y' || ch=='Y');
}

Program to Multiply Two Matrices

#include "stdio.h"


#include "conio.h"

typedef int MATRIX;

void main()

{

MATRIX x[5][5],y[5][5],z[5][5];

int i,j,r,c,k;

clrscr();

do{

printf("\n Enter the no. of rows for two matrices : ");

scanf("%d",&r);

printf("\n Enter the no. of cols for two matrices : ");

scanf("%d",&c);

if(r<=0

c<=0)

printf("\n MATRIX is NOT Possible");

if(r!=c)

printf("\n MULTIPLICATION is not possible");

}while(r<=0

c<=0

r!=c);

printf("\n --**:: FIRST MATRIX ::**--");

for(i=1;i<=r;i++)

{

for(j=1;j<=c;j++)

{

printf("\n Element X(%d,%d) :",i,j);

scanf("%d",&x[i][j]);

}

}

printf("\n --**:: SECOND MATRIX ::**--");

for(i=1;i<=r;i++)

{

for(j=1;j<=c;j++)

{

printf("\n Element Y(%d,%d) :",i,j);

scanf("%d",&y[i][j]);

}

}

for(i=1;i<=r;i++)

{

for(j=1;j<=c;j++)

{

z[i][j]=0;

for(k=1;k<=r;k++)

{

z[i][j]+=x[i][k]*y[k][j];

}

}

}

printf("\n --**:: FIRST MATRIX ::**--");

for(i=1;i<=r;i++)

{

printf("\n");

for(j=1;j<=c;j++)

{

printf("\t%d",x[i][j]);

}

}

printf("\n --**:: SECOND MATRIX ::**--");

for(i=1;i<=r;i++)

{

printf("\n");

for(j=1;j<=c;j++)

{

printf("\t%d",y[i][j]);

}

}

printf("\n --**:: MULTIPLICATION DONE ::**--");

printf("\n Result is : \n");

for(i=1;i<=r;i++)

{

printf("\n");

for(j=1;j<=c;j++)

{

printf("\t%d",z[i][j]);

}

}

getch();

}

PROGRAM TO CREATE A PASCAL TRIANGLE

// PROGRAM TO DISPLAY A PASCAL TRIANGLE BY


// INPUTTING THE NO. OF LINES THROUGH KEYBOARD



#include "stdio.h"

#include "conio.h"

int factorial(unsigned long int);

void main()

{

int n,i,j,k;

unsigned long int val;

clrscr();

printf("\n\t\t\t --**:: PASCAL TRIANGLE ::**--");

do{

printf("\n Enter the no. of Lines : ");

scanf("%ld",&n);

if(n<0)

printf("\n Please Enter the correct Data");

}while(n<0);

printf("\n\n");

for(i=0;i

{

printf("\n\t\t\t");

for(k=n-1;k>=i+1;k--)

{

printf(" ");

}

for(j=0;j<=i;j++)

{

val=factorial(i)/(factorial(i-j)*factorial(j));

printf(" %ld",val);

}

}

getch();

}

int factorial(unsigned long int num)

{

unsigned long int fact=1;

while(num>0)

fact*=num--;

return (fact);

}

Sunday, September 13, 2009

The Creativity of Computer Proffessionals

The Creativity of Computer Proffessionals


This is my very first blog and now I am going to express my thought that computer professionals are always Innovative. And the thought arise from the fact that now the days almost all the things arround us are invented by using computers only and without computers these things can't be there and ofcourse it includes the creativity of computer men. Now the question may arise that computer is itself an invention then how it can be the way to invention ?
And the answer is that I am not talking about the computer but the computer professionals and ofcourse the computer was invented by the computer professionals. And hence the computer professionals are always Innovative. Well If somebody disagreed with me than please ask me and I will surely convince him on my view...
Shuaib Sarkar

C programm for Gauss's (Gaussian) Elimination Method

PROGRAM TO FIND THE SOLUTION OF SIMULTANIOUS ALGEBRIC EQUATIONS :
Gaussian Elimination Method
Give ur comments




#include
#include
#include
void main()

{

float x[5][5],r1[4],r2[4],r3[4];

float a,b,c;

int i,j,k;

clrscr();

printf("\n\t\t GAUSS ELIMINATION METHOD");

printf("\n\t\t==========================\n");

for(i=1;i<=3;i++)

{

printf("\n --**:: EQUATION No. : %d ::**--",i);

printf("\n --------------------------------");

for(j=1;j<=4;j++)

{

printf("\nCoeficient of %d term : ",j);

scanf("%f",&x[i][j]);

}

}

/*STEP ONE */

for(k=0;k<4;k++)

{

r1[k]=x[1][k+1]*x[2][1];

r2[k]=x[2][k+1]*x[1][1];

r2[k]=r2[k]-r1[k];

}

for(k=0;k<4;k++)

{

r1[k]=x[1][k+1]*x[3][1];

r3[k]=x[3][k+1]*x[1][1];

r3[k]-=r1[k];

}

for(k=1;k<=4;k++)

{

x[2][k]=r2[k-1];

x[3][k]=r3[k-1];

}

/*STEP TWO*/

for(k=0;k<4;k++)

{

r2[k]=x[2][k+1]*x[3][2];

r3[k]=x[3][k+1]*x[2][2];

r3[k]-=r2[k];

}



for(k=1;k<=4;k++)

x[3][k]=r3[k-1];

/*STEP 3 BACK SUBSTITUION*/

c=x[3][4]/x[3][3];

b=(x[2][4]-c*x[2][3])/x[2][2];

a=(x[1][4]-b*x[1][2]-c*x[1][3])/x[1][1];

printf("\n===================================\n");

printf("\n Solution is : \n");

printf("\n X = %6.3f\t Y = %6.3f\t Z = %6.3f",a,b,c);

getch();

}




OUTPUT

Here are some C language Questions that are asked frequently in the Interviews and Exams::::::

1. What does static variable mean?

2. What is a pointer?

3. What is a structure?

4. What are the differences between structures and arrays?

5. In header files whether functions are declared or defined?

6. What are the differences between malloc() and calloc()?

7. What are macros? what are its advantages and disadvantages?

8. Difference between pass by reference and pass by value?

9. What is static identifier?

10. Where are the auto variables stored?

11. Where does global, static, local, register variables, free memory and C Program instructions get stored?

12. Difference between arrays and linked list?

13. What are enumerations?

14. Describe about storage allocation and scope of global, extern, static, local and register variables?

15. What are register variables? What are the advantage of using register variables?

16. What is the use of typedef?

17. Can we specify variable field width in a scanf() format string? If possible how?

18. Out of fgets() and gets() which function is safe to use and why?

19. Difference between strdup and strcpy?

20. What is recursion?

21. Differentiate between a for loop and a while loop? What are it uses?

22. What are the different storage classes in C?

23. Write down the equivalent pointer expression for referring the same element a[i][j][k][l]?

24. What is difference between Structure and Unions?

25. What the advantages of using Unions?

26. What are the advantages of using pointers in a program?

27. What is the difference between Strings and Arrays?

28. In a header file whether functions are declared or defined?

29. What is a far pointer? where we use it?

30. How will you declare an array of three function pointers where each function receives two ints and returns a float?

31. what is a NULL Pointer? Whether it is same as an uninitialized pointer?

32. What is a NULL Macro? What is the difference between a NULL Pointer and a NULL Macro?

33. What does the error 'Null Pointer Assignment' mean and what causes this error?

34. What is near, far and huge pointers? How many bytes are occupied by them?

35. How would you obtain segment and offset addresses from a far address of a memory location?

36. Are the expressions arr and &arr same for an array of integers?

37. Does mentioning the array name gives the base address in all the contexts?

38. Explain one method to process an entire string as one unit?

39. What is the similarity between a Structure, Union and enumeration?

40. Can a Structure contain a Pointer to itself?

41. How can we check whether the contents of two structure variables are same or not?

42. How are Structure passing and returning implemented by the complier?

43. How can we read/write Structures from/to data files?

44. What is the difference between an enumeration and a set of pre-processor # defines?

45. what do the 'c' and 'v' in argc and argv stand for?

46. Are the variables argc and argv are local to main?

47. What is the maximum combined length of command line arguments including the space between adjacent arguments?

48. If we want that any wildcard characters in the command line arguments should be appropriately expanded, are we required to make any special provision? If yes, which?

49. Does there exist any way to make the command line arguments available to other functions without passing them as arguments to the function?

50. What are bit fields? What is the use of bit fields in a Structure declaration?

51. To which numbering system can the binary number 1101100100111100 be easily converted to?

52. Which bit wise operator is suitable for checking whether a particular bit is on or off?

53. Which bit wise operator is suitable for turning off a particular bit in a number?

54. Which bit wise operator is suitable for putting on a particular bit in a number?

55. Which bit wise operator is suitable for checking whether a particular bit is on or off?

56. which one is equivalent to multiplying by 2:Left shifting a number by 1 or Left shifting an unsigned int or char by 1?

57. Write a program to compare two strings without using the strcmp() function.

58. Write a program to concatenate two strings.

59. Write a program to interchange 2 variables without using the third one.

60. Write programs for String Reversal & Palindrome check

61. Write a program to find the Factorial of a number

62. Write a program to generate the Fibinocci Series

63. Write a program which employs Recursion

64. Write a program which uses Command Line Arguments

65. Write a program which uses functions like strcmp(), strcpy()? etc

66. What are the advantages of using typedef in a program?

67. How would you dynamically allocate a one-dimensional and two-dimensional array of integers?

68. How can you increase the size of a dynamically allocated array?

69. How can you increase the size of a statically allocated array?

70. When reallocating memory if any other pointers point into the same piece of memory do you have to readjust these other pointers or do they get readjusted automatically?

71. Which function should be used to free the memory allocated by calloc()?

72. How much maximum can you allocate in a single call to malloc()?

73. Can you dynamically allocate arrays in expanded memory?

74. What is object file? How can you access object file?

75. Which header file should you include if you are to develop a function which can accept variable number of arguments?

76. Can you write a function similar to printf()?

77. How can a called function determine the number of arguments that have been passed to it?

78. Can there be at least some solution to determine the number of arguments passed to a variable argument list function?

79. How do you declare the following:

o An array of three pointers to chars

o An array of three char pointers

o A pointer to array of three chars

o A pointer to function which receives an int pointer and returns a float pointer

o A pointer to a function which receives nothing and returns nothing

80. What do the functions atoi(), itoa() and gcvt() do?

81. Does there exist any other function which can be used to convert an integer or a float to a string?

82. How would you use qsort() function to sort an array of structures?

83. How would you use qsort() function to sort the name stored in an array of pointers to string?

84. How would you use bsearch() function to search a name stored in array of pointers to string?

85. How would you use the functions sin(), pow(), sqrt()?

86. How would you use the functions memcpy(), memset(), memmove()?

87. How would you use the functions fseek(), freed(), fwrite() and ftell()?

88. How would you obtain the current time and difference between two times?

89. How would you use the functions randomize() and random()?

90. How would you implement a substr() function that extracts a sub string from a given string?

91. What is the difference between the functions rand(), random(), srand() and randomize()?

92. What is the difference between the functions memmove() and memcpy()?

93. How do you print a string on the printer?

94. Can you use the function fprintf() to display the output on the screen?