Monday, October 31, 2016

Radix Sort :) :)

Radix Sort is the method to sort array elements according to the Numbers at unit place,tens place and then we get the sorted list.

Following Program Illustrates Radix Sort:

#include<iostream>
using namespace std;
main()
{   int b[10][10],a[100],n,num,pass,g=1;

cout<<"Enter The No Of Elements ";
cin>>n;

cout<<"Enter The Maximum No Of Digits ";
cin>>pass;

cout<<"Enter The Elements\n";
for(int i=0;i<n;i++)
cin>>a[i];

  for(int h=0;h<pass;h++)    //for number of passes
{for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
b[i][j]=-99;               //intializing all elements to  default value

int j=0,k=0;

for(int i=0;i<n;i++)
{
num=((a[i]/g)%10);    //finding remainder
b[j++][num]=a[i];     //inserting elements at proper position
   }
    g=g*10;                      //updating divisor  
   
   for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
   {
if(b[j][i]!=-99)
       a[k++]=b[j][i];     // updating array    
       }  
cout<<"Pass "<<h+1<<": ";
for(int i=0;i<n;i++)
{  
cout<<a[i]<<"\t";       //printing the results of particular pass
}
cout<<"\n";
}
cout<<"Soterd Array\n";
for(int i=0;i<n;i++)
{
cout<<a[i]<<"\t";     //printing the result
}
}
Output:


Sunday, October 30, 2016

C++ Diwali Special :):)

Its Time to Celebrate Diwali in C++ Style. Following C++ Program Display Outputs according to the System(PC) Dates.

Run this Program on Oct 30, 31 and on Nov 1 and check the Outputs.
You can add more Festivals by changing Date and Festival Name.
Happy DIWALI!!


#include <iostream>
#include <ctime>
#include <stdlib.h>
using namespace std;
void show(string festival);

int main()
{
string s;
system("COLOR 8B"); //Function to Change Text Color
    time_t currentTime;
    struct tm *localTime;

    time( &currentTime );                   // Get the current time
    localTime = localtime( &currentTime );  // Convert the current time to the local time

    int Day    = localTime->tm_mday; //Display Current Date
    int Month  = localTime->tm_mon + 1; //Months are counted from 0
    int Year   = localTime->tm_year + 1900; //Years are counted from 1900


if(Day==30&&Month==10&&Year==2016)
s="DIWALI";

else if(Day==31&&Month==10&&Year==2016)
s="VISHWAKARMA DAY";

else if(Day==1&&Month==11&&Year==2016)
s="BHAI DOOJ";
else
return 0;
cout<<"\n\n\n\n\n\tToday is "<<Day<<"/"<<Month<<"/"<<Year;

show(s);
    return 0;
}
void show(string festival)
{
cout<<"\n\tWish you a Very Happy "<<festival<<"!!\n";
cout<<"\tMay God bring you Luck and Help u Fulfill all your Dearest Dreams\n";

cout<<"\tHappy Coding!!\n\n";
cout<<"\tRegards,\n";

cout<<"\tDishant Mahajan\n\tNitesh Lekhi\n\tNaina Thaman\n\tHargun Kaur Gill\n";
cout<<"\t{gndecprogramming Bloggers}\n";
}





I got these Outputs by changing my PC's date.






Saturday, October 29, 2016

Infix To Prefix Conversion Using Stack :)

Following Code Converts  An Infix Expression To Prefix Expression :

#include<stdio.h>
#include<ctype.h>    //for isalnum function
#include<string.h>
char stack[50];
int top=-1;
void push(char x)
{
if(top==49)
{printf("Overflow");
}
else{

stack[++top]=x;
}
}
char pop()
{ if(top==-1)
{
return -1;
}
else{

return stack[top--];
}
}
int priority(char x)
{
if(x==')')
{ return 0;
}
else if(x=='+'||x=='-')
 return 1;
 else if(x=='*'||x=='/')
 return 2;
}
main()
{
char infix[50],pre[50];
char x,*e;
int i=0;
printf("Enter The Expression  ");
scanf("%s",infix);
strrev(infix);    //reversing the infix expression
e=infix;
while(*e!='\0')
{
if(*e==')')
{
push(*e);
}
else if(isalnum(*e))
{
pre[i++]=*e;
}
else if(*e=='(')
{
while((x=pop())!=')')
pre[i++]=x;
}
else
{
while(priority(stack[top])>=priority(*e))
pre[i++]=pop();
push(*e);
}
e++;
    }   while(top!=-1)
        pre[i++]=pop();
strrev(pre);      //reversing the result from procedure
                printf("Prefix Expression ");
printf("%s",pre);
}

Any Problem Please Contact Us mr.dishantmahajan@gmail.com

Output:

Overloading Pointer To Member -> Operator :)

Program To Overload -> Pointer to Member Operator :

#include<iostream>
using namespace std;
class sample
{
public:
int n;
sample()
{
cout<<"Enter Any Value ";
cin>>n;
}
sample* operator ->()
{
return this;
}
};
main()
{
    sample a;
    sample* p=&a;
    cout<<"Accessing Using Pointer";
    cout<<"\nValue is "<<p->n;
    cout<<"\nAccessing Using Object";
    cout<<"\nValue is "<<a->n;
}
Output:

Overloading Subscript [ ] Operator :)

Program to Overload [ ] Subscript Operator:

#include<iostream>
using namespace std;
class sample
{
int a[10];    //private data
public: int n;
sample()
{
cout<<"Enter The No of Elements of Array  ";
cin>>n;
cout<<"Enter The Elements\n";
for(int i=0;i<n;i++)
cin>>a[i];
}
int operator [](int k)  // overloading Subscript operator
{
return(a[k]);
}
};
main()
{
sample a;
cout<<"Elements You Entered\n";
for(int i=0;i<a.n;i++)
cout<<a[i]<<"\n";       //fetching private data using object
}
Output:

Thursday, October 27, 2016

Matrix Operations Using Objects

Write a Class Template by the name matrix and perform the following operations:
1. Sum of 2 Matrices
2. Product of 2 Matrices
3. Sum of each row of matrix and display them
4. Sum of each column of matrix and display them


Solution:
#include<iostream>
using namespace std;
template<class T>
class matrix
{
T a[10][10];
public: int m,n;
matrix()
{
cout<<"Enter The Order of Matrix\n";
cin>>m>>n;
cout<<"Enter The Elements of Matrix\n";
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
cin>>a[i][j];
}
matrix(int x,int y)
{  m=x;n=y;
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
a[i][j]=0;
}
matrix operator +(matrix b)
{
matrix<T>c(b.m,b.n);
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
c.a[i][j]=a[i][j]+b.a[i][j];
return c;
}
matrix operator *(matrix b)
{
matrix<T>c(m,b.n);
if(n!=b.m)
{
cout<<"Multiplication Not Possible\n";
}
else
{for(int i=0;i<m;i++)
for(int j=0;j<b.n;j++)
{c.a[i][j]=0;
for(int k=0;k<n;k++)
c.a[i][j]+=a[i][k]*b.a[k][j];}

    return c;
}
}
void sumr()
{    T sum=0.0;
for(int i=0;i<m;i++)
{ sum=0.0;
for(int j=0;j<n;j++)
{
sum+=a[i][j];
}
cout<<"Sum of"<<i+1<<" row is "<<sum<<"\n";
}
}
void sumc()
{    T sum=0.0;
for(int i=0;i<n;i++)
{ sum=0.0;
for(int j=0;j<m;j++)
{
sum+=a[j][i];
}
cout<<"Sum of"<<i+1<<"column is "<<sum<<"\n";
}
}
void display()
{
cout<<"Elements Are\n";
for(int i=0;i<m;i++)
{for(int j=0;j<n;j++)
{cout<<a[i][j]<<"\t";}
cout<<"\n";}
}

};
main()
{
matrix<int>a,b,c(a.m,b.n);
c=a+b;
cout<<"\nSum is\n";
c.display();
cout<<"\nProduct is\n";
c=a*b;
c.display();
cout<<"\nSum of Rows of A\n";
a.sumr();
cout<<"\nSum of Columns Of A\n";
a.sumc();

}

Matrix Operations using Class Template :)

Write a Class Template by the name matrix and perform the following operations:
1. Sum of 2 Matrices
2. Product of 2 Matrices
3. Sum of each row of matrix and display them
4. Sum of each column of matrix and display them


#include <iostream>
using namespace std;
template<class T> //Declaring Template class

class matrix
{
    T a[30][30],b[30][30];
    int i,j,m,n;
public:
    matrix() //Constructor to Input Matrix
    {
        cout<<"Enter No.of Rows and Columns of Matrices: ";
        cin>>m>>n;
        cout<<"Enter "<<(m*n)<<" Elements of Matrix 1: ";
        for(i=0; i<m; i++)
        {
            for(j=0; j<n; j++)
                cin>>a[i][j];
        }
        cout<<"Enter "<<(m*n)<<" Elements of Matrix 2: ";
        for(i=0; i<m; i++)
        {
            for(j=0; j<n; j++)
                cin>>b[i][j];
        }
    }

    void display()
    {
        cout<<"\nMatrix 1:\n";
        for(i=0; i<m; i++)
        {
            for(j=0; j<n; j++)
                cout<<a[i][j]<<"\t";
            cout<<"\n";
        }

        cout<<"\nMatrix 2:\n";
        for(i=0; i<m; i++)
        {
            for(j=0; j<n; j++)
                cout<<b[i][j]<<"\t";
            cout<<"\n";
        }
    }
    void sum() //Sum of Matrices
    {
        T c[30][30];
        for(i=0; i<m; i++)
        {
            for(j=0; j<n; j++)
                c[i][j]=a[i][j]+b[i][j];
        }
        cout<<"\n\nSum of Matrices is:\n";
        for(i=0; i<m; i++)
        {
            for(j=0; j<n; j++)
                cout<<c[i][j]<<"\t";
            cout<<"\n";
        }
    }
    void rowsum() //Display Sum of Rows
    {
        T sumr=0.0;
        cout<<"\n\nMatrix 1:";
        for(i=0; i<m; i++)
        {
            for(j=0; j<n; j++)
                sumr+=a[i][j];

            cout<<"\nSum of Row "<<(i+1)<<" is "<<sumr;
            sumr=0;
        }

        cout<<"\n\nMatrix 2:";
        for(i=0; i<m; i++)
        {
            for(j=0; j<n; j++)
                sumr+=b[i][j];

            cout<<"\nSum of Row "<<(i+1)<<" is "<<sumr;
            sumr=0;
        }
    }

    void colsum() //Display Sum of Columns
    {
        T sumc=0.0;
        cout<<"\n\nMatrix 1:";
        for(j=0; j<n; j++)
        {
            for(i=0; i<m; i++)
                sumc+=a[i][j];

            cout<<"\nSum of Column "<<(j+1)<<" is "<<sumc;
            sumc=0;
        }
        cout<<"\n\nMatrix 2:";
        for(j=0; j<n; j++)
        {
            for(i=0; i<m; i++)
                sumc+=b[i][j];

            cout<<"\nSum of Column "<<(j+1)<<" is "<<sumc;
            sumc=0;
        }
    }

    void product() //Function to find product
    {
        T prod[30][30]= {0.0}; //Matrix to store Product
        int p,q,k;
        cout<<"\n\nMatrix Product:-\n";
        cout<<"Enter Rows and Columns of Matrix 1: ";
        cin>>m>>n;
        cout<<"Enter "<<(m*n)<<" Elements of Matrix 1: ";
        for(i=0; i<m; i++)
        {
            for(j=0; j<n; j++)
                cin>>a[i][j];
        }
        cout<<"Enter Rows and Columns of Matrix 2: ";
        cin>>p>>q;
        if(n!=p)
            cout<<"\nMatrices Cannot be Multiplied!!";
        else
        {
            cout<<"Enter "<<(p*q)<<" Elements of Matrix 2: ";
            for(i=0; i<p; i++)
            {
                for(j=0; j<q; j++)
                    cin>>b[i][j];
            }

            for(i=0; i<m; i++)
            {
                for(j=0; j<q; j++)
                {
                    prod[i][j]=0.0;
                    for(k=0; k<n; k++)
                        prod[i][j]+=a[i][k]*b[k][j];
                }
            }
            cout<<"\nProduct of Matrices is:\n";
            for(i=0; i<m; i++)
            {
                for(j=0; j<q; j++)
                    cout<<prod[i][j]<<"\t";
                cout<<"\n";
            }
        }
    }
};

int main()
{
    matrix<int> m; //Declaring Template
    m.display();
    m.sum();
    m.rowsum();
    m.colsum();
    m.product();
    return 0;
}