Saturday, May 8, 2010

Polynomial Multiplication

//Polynomial Multiplication

#include
#include
#include

typedef struct poly
{
int coeff,expo;
}P;
P p1[10],p2[10],p3[20]={0};
int t1,t2;

void multiply();

void main()
{
int i,ch;
char cho;
clrscr();

printf("Please enter number of terms in p1: ");
scanf("%d",&t1);
printf("\nPlease enter coeff. & expo of terms in p1\n");
for(i=0;i {
scanf("%d%d",&p1[i].coeff,&p1[i].expo);
}
printf("\n\nPlease enter number of terms in p2: ");
scanf("%d",&t2);
printf("\nPlease enter coeff. & expo of terms in p2\n");
for(i=0;i {
scanf("%d%d",&p2[i].coeff,&p2[i].expo);
}

do
{
clrscr();
printf("First polynomial is\n");
for(i=0;i<(t1-1);i++)
{
printf("(%d x^%d) + ",p1[i].coeff,p1[i].expo);
}
printf("(%d x^%d)",p1[i].coeff,p1[i].expo);
printf("\n\nSecond polynomial is\n");
for(i=0;i<(t2-1);i++)
{
printf("(%d x^%d) + ",p2[i].coeff,p2[i].expo);
}
printf("(%d x^%d)",p2[i].coeff,p2[i].expo);

printf("\n\n\tYour choices are:\n");
printf(" \t1:Multiplication\n \t2:Exit\n\n");
printf("\n\nPlease enter your choice: ");
scanf("%d",&ch);

switch(ch)
{
case 1:
multiply();
break;

case 2:
exit();

default:
printf("\n\nInvalid choice");
}
printf("\nPress y to continue and any other key to stop:");
fflush(stdin);
scanf("%c",&ch);
}
while(cho=='y' || cho=='Y');
getch();
}

void multiply()
{
int i=0,j=0,k=0,cnt=0,exp,coef,flag;
for(i=0;i<20;i++)
{
p3[i].coeff=0;
p3[i].expo=0;
}
i=0;
while(i {
j=0;
while(j {
flag=0;
coef=p1[i].coeff*p2[j].coeff;
exp=p1[i].expo+p2[j].expo;
for(cnt=0;cnt {
if(p3[cnt].expo==exp)
{
p3[cnt].coeff=p3[cnt].coeff+coef;
flag=1;
}
}
if(flag==0)
{
p3[k].expo=exp;
p3[k].coeff=coef;
k++;
}
j++;
}
i++;
}
printf("\nMultiplication is \n");
for(i=0;i<(k-1);i++)
{
printf("(%d x^%d) + ",p3[i].coeff,p3[i].expo);
}
printf("(%d x^%d)",p3[i].coeff,p3[i].expo);
}

Vowels Count

//Program to calculate frequency of vowels in a string

#include
#include
void main()
{
int a=0,e=0,i=0,o=0,u=0,sum=0;
char c;
clrscr();
printf("\nEnter string:- ");
printf("\nString will be terminated if you press Ctrl-Z & then ENTER.");
printf("\nSTRING:- ");
while ((c=getchar())!=EOF)
{
if (c=='a'||c=='A')
a=a+1;
if (c=='e'||c=='E')
e=e+1;
if (c=='i'||c=='I')
i=i+1;
if (c=='o'||c=='O')
o=o+1;
if (c=='u'||c=='U')
u=u+1;
}

sum=a+e+i+o+u;
printf("\n\nFrequency of vowel 'a' is %d.",a);
printf("\nFrequency of vowel 'e' is %d.",e);
printf("\nFrequency of vowel 'i' is %d.",i);
printf("\nFrequency of vowel 'o' is %d.",o);
printf("\nFrequency of vowel 'u' is %d.",u);
printf("\nTotal no. of vowels in the text is %d.",sum);
printf("\n\nHAVE A NICE DAY! BYE.");
getch();
}

Matrix Implementation

#include
#include
#include
int a[10][10],b[10][10],x[10][10];
void add()
{
int r,c,i,j,n;
cout<<"ENTER THE ORDER OF MATRIX : ";
cin>>n;
r=n;
c=n;
cout<<"ENTER THE ELEMENTS FOR MATRIX 'A' :"< for(i=0;i {
for(j=0;j {
cin>>a[i][j];
}
}
cout<<"ENTER THE ELEMENTS FOR MATRIX 'B' : "< for(i=0;i {
for(j=0;j {
cin>>b[i][j];
}
}
clrscr();

cout<<"MATRIX 'A' IS "< for(i=0;i {
for(j=0;j {
cout< }
cout< }

cout<<"MATRIX 'B' IS "< for(i=0;i {
for(j=0;j {
cout< }
cout< }
//.....................ADDITION OF MATRIX........................

for(i=0;i {
for(j=0;j {
x[i][j]=a[i][j]+b[i][j];
}
}

cout<<"THE SUM OF TWO ENTERED MATRIX IS "< for(i=0;i {
for(j=0;j {
cout< }
cout< }
}

void multiply()
{
int r1,c1,r2,c2,i,j,k;
clrscr();
cout<<"ENTER THE NO.OF ROWS OF MATRIX (A) : ";
cin>>r1;
cout<<"ENTER THE NO.OF COLOUMS OF MATRIX (A) :";
cin>>c1;
cout<<"ENTER THE ELEMENTS FOR MATRIX (A) :"< for(i=0;i {
for(j=0;j {
cin>>a[i][j];
}
}

cout<<"ENTER THE NO.OF ROWS OF MATRIX (B) : ";
cin>>r2;
cout<<"ENTER THE NO.OF COLOUMS OF MATRIX (B) : ";
cin>>c2;
cout<<"ENTER THE ELEMENTS FOR MATRIX (B) :"< for(i=0;i {
for(j=0;j {
cin>>b[i][j];
}
}

clrscr();
cout<<"MATRIX 'A' IS "< for(i=0;i {
for(j=0;j {
cout< }
cout< }

cout<<"MATRIX 'B' IS "< for(i=0;i {
for(j=0;j {
cout< }
cout< }

if(c1!=r2)
{
cout<<"MULTIPLICATION IS NOT POSSIBLE ";
}
else
{
for(i=0;i {
for(j=0;j {
x[i][j]=0;
for(k=0;k {
x[i][j]=x[i][j]+(a[i][k]*b[k][j]);
}
}
}
}

cout<<"MULTIPLICATION OF TWO MATRIX IS "< for(i=0;i {
for(j=0;j {
cout< }
cout< }
}

void main()
{
clrscr();
while(1)
{
int ch;
cout<<"

";
cout<<"...ENTER YOUR CHOICE........"<cout<<"1. ADDITION OF TWO MATRIX "<cout<<"2. MULTIPLICATION OF TWO MATRIX "<cout<<"3. EXIT "<cin>>ch;
switch(ch)
{
case 1:
add();
break;
case 2:
multiply();
break;
case 3:
exit(0);
default :
cout<<"INVALID CHOICE !! ENTER CORRECT CHOICE";
}
//getch();
}
}

LCM GCD implementation

//Finding LCM and GCD

#include
#include

void main()
{
int a[20],n,i,j,c,max,min;
unsigned long prod;
clrscr();
printf("Enter the no. of entries: ");
scanf("%d",&n);
printf("Enter the entries:");
for(i=0;i {
scanf("%d",&c);
if(c>0)
a[i]=c;
else
{
printf("Invalid Entry");
return;
}
}

max=a[0];
for(i=0;i if(a[i]>=max)
max=a[i];
min=a[0];
for(i=0;i if(a[i] min=a[i];

for(i=0,prod=1;i prod=prod*a[i];

for(i=max;i<=prod;i+=max)
{

c=0;
for(j=0;j if(i%a[j]==0)
c+=1;
if(c==n)
{ printf("The LCM of the nos: %d",i);
break;
}
}

for(i=min;i>0;i--)
{
if (min%i==0)
{
c=0;
for(j=0;j if(a[j]%i==0)
c+=1;
}
if(c==n)
{
printf("The GCD of the nos: %d",i);
break;
}
}
getch();
}

Factorial

//Factorial Function

#include
#include

long int factorial(int n);

void main()
{
int n,i;
float s,r;
char c;
clrscr();
repeat : printf("You have this series:- 1/1! + 2/2! + 3/3! + 4/4!..");
printf("To which term you want its sum? ");
scanf("%d",&n);
s=0;
for (i=1;i<=n;i++)
{
s=s+((float)i/(float)factorial(i));
}
printf("The sum of %d terms is %f",n,s);
fflush(stdin);
printf ("Do you want to continue?(y/n):- ");
scanf("%c",&c);
if (c=='y')
goto repeat;
getch();
}

long int factorial(int n)
{
if (n<=1)
return(1);
else
n=n*factorial(n-1);
return(n);
}

Bubble Sort

//Bsort, bubble sort [array]

#include
#include


void bubble_sort(int a[], int size);

int main(void)
{
clrscr();

int arr[10] = {10, 4, 2, 1, 6, 5, 8, 7, 3, 9};
int i = 0;

printf("before:\n");
for(i = 0; i < 10; i++) printf("%d ", arr[i]);
printf("\n");

bubble_sort(arr, 10);

printf("after:\n");
for(i = 0; i < 10; i++) printf("%d ", arr[i]);
printf("\n");
getch();

return 0;
}

void bubble_sort(int a[], int size)
{
int switched = 1;
int hold = 0;
int i = 0;
int j = 0;

size -= 1;

for(i = 0; i < size && switched; i++)
{
switched = 0;
for(j = 0; j < size - i; j++)
if(a[j] > a[j+1])
{
switched = 1;
hold = a[j];
a[j] = a[j + 1];
a[j + 1] = hold;
}
}

getch();
}

Binary Search

//Binary search [int array]

#include
#include

#define TRUE 0
#define FALSE 1

int main(void)
{
int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int left = 0;
int right = 10;
int middle = 0;
int number = 0;
int bsearch = FALSE;
int i = 0;

printf("ARRAY: ");
for(i = 1; i <= 10; i++)
printf("[%d] ", i);

printf("\nSearch for Number: ");
scanf("%d", &number);

while(bsearch == FALSE && left <= right)
{
middle = (left + right) / 2;
if(number == array[middle])
{
bsearch = TRUE;
printf("** Number Found **\n");
}
else
{
if(number < array[middle]) right = middle - 1;
if(number > array[middle]) left = middle + 1;
}
}

if(bsearch == FALSE)
printf("-- Number Not found --\n");
getch();


return 0;
}