Blogger news

Followers

Showing posts with label BE. Show all posts
Showing posts with label BE. Show all posts
Tuesday, August 12, 2014

/*C program to create a file with 16 bytes of arbitrary data from the beginning and another 16 bytes of arbitrary data from an offset of 48.Display the following file contents to demonstrate how the hole in a file is handled */

#include<stdio.h>
#include<fcntl.h>
#include"string.h"


int main()
{
   
    //create a new file by named as file.txt

    int n=creat("file.txt","w");
    char ch[16]="hello world how are";
    char str[20]="od -c file.txt";
   //change permission of file.txt with maximum access

    system("chmod 777 file.txt");
   //write "helloworld string in file.txt     
   write(n,ch,16);
   // to move cursor from begging to 48th position 
    lseek(n,48,SEEK_SET);
  //write "helloworld string in file.txt     

  write(n,ch,16);
    // to prompt command in command prompt
    system(str);
    return(0);
}




 
/*C program to create a file with 16 bytes of arbitrary data from the beginning and another 16 bytes of arbitrary data from an offset of 48.Display the following file contents to demonstrate how the hole in a file is handled with using Command Line Arguments*/
#include<stdio.h>
#include<fcntl.h>
#include"string.h"


int main(int argc,char *argv[])
{
   
      int n=creat(argv[1],"w");
    char ch[16]="hello world how are";
    char str[20]="od -c ";
    char mode[20]="chmod 777 ";

    write(n,ch,16);    
     lseek(n,48,SEEK_SET);
     write(n,ch,16);
    strcat(mode,argv[1]);
       
    system(mode);
   
    strcat(str,argv[1]);
       
    system(str);
    return(0);
}

--------------------------------
screenshot:
output screenshot of vtu sylabus program|OS and SS Laboratory
 
#A non-recursive shell script that accepts any number of arguments and prints #them in the Recursive order, (For example,if the script is named rargs,then #executing rags ABC should produce CBA on the standard output)

echo "input string is :$*"
for x in "$@"
do
y=$x" "$y
done
echo "reversed string is: $y"

---------
output:

sh <filename>.sh x y z
input sting is :x y z
reversed string is: z y x 
/* C program to do the following: Using fork() create a childprocess. The child process prints it's own process-id and id of it's parent and then exits. The parent process waits for it's child to finish(by executing the wait()) and prints it's own process-id and the id of it's child process and then exits*/
#include<stdio.h>
#include<string.h>

int main()
{
    char i[10];
    int n,status=0;
    for(;;)
    {
    printf(">");
    gets(i);
    n=fork();
   
    if(n==0)
    {
        printf("my process  id =%d\n",getpid());
        printf("my parent process id=%d\n",getppid());
        exit(0);   
    }
    else if(n>0)
    {
        while(waitpid(n,status,0)<0)
        {   
           
            break;
        }
        printf("the child process=%d\n",n);
        printf("my id is=%d\n",getpid());
    }
    else
    {
        printf("error\n");
    }
    }
    return (0);
}
Friday, July 25, 2014
/*C program that creates a child process to read commands from the standard input and execute them.You can assume that no arguments will be passed to the commands to be executed*/

#include<stdio.h>
#include<unistd.h>
int main()
{
    char i[10];
    int n;
    //int status;
    while(1)
    {
        printf("Enter your command\n");
        get(i);
        n=fork()
       
        if(n==0)
        {   /*it's for executes in new process execl("/bin/sh/","sh","-c",i,null)
              and add library unisd.h*/

            

             execl("/bin/sh/","sh","-c",i,null);
            exit(0);
        }
        else if(n>0)
        {    /*sometime wait() is not working then you change wait function to
            this following part:
                while(waitpid(n,status,0)<0)
                {
                    break;
                }
            */

            wait();
       
        }
        else
        {
            printf("error\n");
        }
    }
    return(0);
}
Monday, July 21, 2014
#include<stdio.h>
#include<conio.h>

void main()
{
            int m,n,p,q,i,j,k,mat1[10][10],mat2[10][10],result[10][10];
            clrscr();  //to clear the screen
            printf(“enter the number of rows and columns for marix1 respectively \n”);
            scanf(“%d%d”,&m,&n);
            printf(“enter the number of rows and columns for marix2 respectively \n”);
            scanf(“%d%d”,&p,&q);
           
            if(n==p)  //if multiplication of mat1*mat2 then it’s mat1 number of columns must equal to mat2 number of rows
            {          
printf(“enter the elements value of matrix1 \n”);
                                    for(i=0;i<m;i++)
                                                for(j=0;j<n;j++)
                                                            scanf(“%d”,&mat1[i][j]);
                       
                        printf(“enter the elements value of matrix2 \n”);
                                    for(i=0;i<p;i++)
                                                for(j=0;j<q;j++)
                                                            scanf(“%d”,&mat1[i][j]);
                        for(k=0;k<n;k++)
                                    for(i=0;i<m;i++)
                                                for(j=0;j<q;j++)
                                                            result[i][j]=mat1[i][k]*mat2[k][j];

                        printf(“resultant matrix is ….\n”);
                        for(i=0;i<m;i++)
                        {
                                    for(j=0;j<q;j++)
                                    {
                                                printf(“%d\t”,result[i][j]);
                                    }
                                    printf(“\n”);
                        }
            }
            else
            {
                        printf(“math error! \n”);
            }
getch();
}
#include<stdio.h>
#include<conio.h>

void main()
{
            /*col,row variables are used to store number of columns and rows respectively,
            mat is a two dimensional array is used to store the matrix, i,j is used as an indexing the elements from matrix*/
            int col,row,mat[100][100],i,j;
                        clrscr();   //clear the screen
           
printf(“enter the number of rows \n”);
            scanf(“%d”,&row);
           
            printf(“enter the number of coloumns \n”);
            scanf(“%d”,&col);
           
            printf(“number of rows:%d ,number of columns:%d”,row,col);

            printf(“enter the value of matrix \n”);
           
            for(i=0;i<row;i++)  //outer loop represents to the row
                        for(j=0;j<col;j++) // inner loop represents to the column
                                    scanf(“%d”,&mat[i][j]);

            printf(“your matrix is ….\n”);
           
            //following code is used to print each elements of matrix in row wise
            for(i=0;i<row;i++)
            {
                        for(j=0;j<col;j++)
                        {
                                    Printf(“%d\t”,mat[i][j]);
                        }
                        printf(“\n”);
            }
            getch();
}
Design,develop and execute a program in c++ to create a class called DATE with methods to accept two valid dates in the form dd/mm/yy and to implement the following operation by overloading the operators + and – After every operation the results are to be displayed by overloading the operator<<
i.no_of_days=d1-d2;where d1 and d2 are DATE objects,d1>=d2 and no_of_days is an integer.
ii.d2=d1+no_of_days;where d1 is a DATE object and no_of_days is an integer.
#include<iostream.h>
#include<conio.h>

class date
{
  int dd;
  int mm;
  int yy;
  int a[13];
  public:
     date()
     {
       a[1]=31;a[2]=28;a[3]=31;a[4]=30;a[5]=31;a[6]=30;a[7]=31;a[8]=31;a[9]=30;
       a[10]=31;a[11]=30;a[12]=31;dd=0;mm=0;yy=0;
     }
     date operator+(int n);
     int operator-(date d2);
     friend ostream& operator<<(ostream &print,date d1);
     void read();
     int isleap(date d1);
  };


     date date::operator+(int n)
     {
       int i;
       for(i=1;i<=n;i++)
       { dd++;
                 if(isleap(*this))
                 {
                  a[2]=29;
                 }
                 if(dd>a[mm])
                 {
                  dd=1;
                  ++mm;
                 }
                 if(mm>12)
                 {
                  mm=1;
                  ++yy;
                 }

       }
       return (*this);
     }

     int date::operator-(date d2)
     { int count=0;
       while(!((mm==d2.mm)&&(dd==d2.dd)&&(yy==d2.yy)))
       { count++;
                 d2.dd++;
                 if(isleap(d2))
                 {
                  d2.a[2]=29;
                 }
                 if(d2.dd>d2.a[d2.mm])
                 {
                   d2.dd=1;
                   d2.mm++;
                 }
                 if(d2.mm>12)
                 {
                  d2.mm=1;
                  d2.yy++;
                 }
       }
       return count;
     }

     void date::read()
     {
      cout<<"enter the date"<<endl;
      cout<<"dd="<<endl;
      cin>>dd;
      cout<<"mm="<<endl;
      cin>>mm;
      cout<<"yy="<<endl;
      cin>>yy;
     }

     int date::isleap(date d1)
     {
      if((d1.yy%4==0)&&(d1.yy%100!=0))
      {
                return 1;
      }
      else
       return 0;
     }

     ostream& operator<<(ostream &print,date d1)
     {
       print<<d1.dd<<"/"<<d1.mm<<"/"<<d1.yy<<endl;
       return print;
      }

      void main()
      {
       int no_of_days=0;
       date d1,d2,d3;
       clrscr();
       d1.read();
      
       cout<<"date1="<<d1;
      
       cout<<"temp="<<endl;
       cin>>no_of_days;
       d3=d1+no_of_days;
       cout<<"date3="<<d3;
       d2.read();
       cout<<"date2="<<d2;
       no_of_days=d1-d2;
       cout<<"no_of_days="<<no_of_days<<endl;
       getch();
      }
//program end


/* Sort a given set of elements using the quicksort method and determine the time required to sort the elements. Repeat the experiment for different values of n,
the number of elements in the list to be sorted and plot a graph of the time taken versus n.The elements can be read
From a file or can be generated using the random number generator*/


#include<stdio.h>
#include<time.h>
int a[10000000];
void swap1(int a[],int i,int j)
{
            int temp;
            temp=a[i];
            a[i]=a[j];
            a[j]=temp;
}
int partition(int a[],int m,int p)
{
            int i,j,pi;
            pi=a[m];
            i=m;j=p;
            while(i<=j)
            {
                        while(a[i]<=pi)
                                    i++;
                        while(a[j]>pi)
                                    j--;
                        if(i<j)
                                    swap1(a,i,j);
            }
            a[m]=a[j];
            a[j]=pi;
            return j;
}

void quicksort(int a[],int m,int p)
{
            int j;
            if(m<p)
            {
                        j=partition(a,m,p);
                        quicksort(a,m,(j-1));
                        quicksort(a,(j+1),p);
            }
}
void main()
{
            int n,i,m,p;
            double start,end,dur,maxm;
            printf("\n\nEnter the number of elements\n\n");
            scanf("%d",&n);
            for(i=0;i<n;i++)
            {
                        a[i]=rand()%100;
            }
            for(i=0;i<n;i++)
                        printf("\n\nRandom numbers are%d\t",a[i]);
            start=clock();
            for(k=0;k<maxm;k++)
            quicksort(a,m,p);
            end=clock();
            dur=(end-start)/CLOCKS_PER_SEC;
            printf("\n\nTime taken is:%lf\t\n\n",dur);
            printf("\n\nSorted array is:");
            for(i=0;i<n;i++)
                        printf("%d\t",a[i]);
            printf("\n\n");
}

/*Computer the Transitive closure of a given directed graph using warshall’s algorithm*/

#include<stdio.h>
void warshall(int);
long int ad[10][10];
void main()
{
            int i, j,n;
            printf("\n****Warshalls Algorithm****\n");
            printf("Enter the number of nodes\n\n");
            scanf("%d",&n);
            printf("\nEnter the graphs in the form of adjacency matrix\n\n");
            for(i=1;i<=n;i++)
                        for(j=1;j<=n;j++)
                                    scanf("%ld",&ad[i][j]);
            printf("\n\nThe adjacency matrix is:\n\n");
            for(i=1;i<=n;i++)
            {
                        for(j=1;j<=n;j++)
                                    printf("%ld\t",ad[i][j]);
                        printf("\n");
            }
            warshall(n);
            printf("\nThe transitive closure of given directed graph is\n");
            for(i=1;i<=n;i++)
            {
                        for(j=1;j<=n;j++)
                                    printf("%ld\t",ad[i][j]);
                        printf("\n");
            }
}
void warshall(int n)
{
            int i,j,k;
            for(k=1;k<=n;k++)
                        for(i=1;i<=n;i++)
                                    for(j=1;j<=n;j++)
                                                ad[i][j]=ad[i][j]||ad[i][k]&&ad[k][j];
           
}

                                   


/*Implement any scheme to find the optimal solution for the Traveling Salesperson problem*/



#include<stdio.h>
int tspda(int,int,int,int);
int n,c[1000][1000],start,n,temp[1000],mincost,ccost,tour[1000],mintour[1000],i,j,k;
void main()
{
            printf("\nEnter the number of nodes\n");
            scanf("%d",&n);
            printf("\nEnter the cost matrix\n");
            for(i=1;i<=n;i++)
                        for(j=1;j<=n;j++)
                                                scanf("%d",&c[i][j]);
            printf("\nEntered cost matrix is:\n");
            for(i=1;i<=n;i++)
            {
                        for(j=1;j<=n;j++)
                                    printf("%d\t",c[i][j]);
                        printf("\n");
            }
            printf("\nThe approximate tour is:\n");
            tspda();
}
int tspda(int c[10][10],int tour[10],int start,int n)
{
            if(start==n-1)
                        return(c[tour[n-1][tour[n]+c[tour[n][tour[1]];
            for(i=start+1;i<=n;i++)
            {
                        for(j=1;j<=n;j++)
                                    temp[j]=tour[j];
                        temp[start+1]=tour[i];
                        temp[i]=temp[start+1];
                        if(c[tour[start][tour[i]]+(ccost=tspdp(c,temp,start+1,n)))<min)
                        {
                                    mincost=ccost+c[tour[start][tour[i]];
                                    for(k=1;k<=n;k++)
                                                mintour[k]=temp[k];
                        }
            }
            for(i=1;i<=n;i++)
                        tour[i]=mintour[i];
            return mincost;
}



/*Implement any scheme to find the solution for the TravelingSalesperson in the approximation method*/


#include<stdio.h>
void tspaprx(int);
int n,cost[100][100],s,count=0,mincost,visited[100],u,i,j,min;
void main()
{
            printf("\nEnter the number of nodes\n");
            scanf("%d",&n);
            printf("\nEnter the cost matrix\n");
            for(i=1;i<=n;i++)
                        for(j=1;j<=n;j++)
                                                scanf("%d",&cost[i][j]);
            printf("\nEntered cost matrix is:\n");
            for(i=1;i<=n;i++)
            {
                        for(j=1;j<=n;j++)
                                    printf("%d\t",cost[i][j]);
                        printf("\n");
            }
            printf("\nThe approximate tour is:\n");
            tspaprx(1);
}
void tspaprx(int s)
{
            visited[s]=1;
            count++;
            printf("%d->",s);
            if(count==n)
            {
                        printf("1");
                        mincost+=cost[s][1];
                        printf("\nThe minimum tour cost is %d",mincost);
                        return;
        }
            min=999;
            for(i=1;i<=n;i++)
            {
                        if(cost[s][i]<min && !visited[i])
                        {          
                                    min=cost[s][i];
                                    u=i;
                        }
            }
            mincost+=min;
            tspaprx(u);
}