Trung tâm đào tạo thiết kế vi mạch Semicon


  • ĐĂNG KÝ TÀI KHOẢN ĐỂ TRUY CẬP NHIỀU TÀI LIỆU HƠN!
  • Create an account
    *
    *
    *
    *
    *
    Fields marked with an asterisk (*) are required.
wafer.jpg

Tổng hợp bài tập và bài giải C/C++ (P2)

E-mail Print PDF
Article Index
Tổng hợp bài tập và bài giải C/C++ (P2)
2
All Pages

1:SẮP XẾP MẢNG

 

#include<alloc.h>

#include<stdio.h>

#include<conio.h>

//=======================================

void taolap(int *A,int n)

  {

    int i;

    printf("\n Tao lap day so:\n");

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

      {

        printf("\n A[%d]=",i);

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

      }

  }

void dayso(int *A,int n)

  {

    int i;

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

      printf("%5d",A[i]);

  }

 

void select(int *A,int n)

  {

    int i,j,temp;

    for(i=0;i<n-1;i++)

      {

        for(j=i+1;j<n;j++)

          {

            if(A[i]>A[j])

              {

               temp=A[i];

               A[i]=A[j];

               A[j]=temp;

              }

          }

       }

    printf("\n Ket qua thu duoc la:");

    dayso(A,n);

  }

void luachon()

  {

    clrscr();

    int *A,n;

    printf("\n \t SAP XEP KIEU LUA CHON\n");

    printf("\n Nhap so phan tu n=");

    scanf("%d",&n);

    A=(int*)malloc(n*sizeof(int));

    taolap(A,n);

    select(A,n);

    free(A);

    getch();

  }

 

//=======================================

void in2(int *A,int n)

  {

    int i;

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

    printf("%5d",A[i]);

  }

void tructiep()

  {

    clrscr();

    int *A,i,j,n,temp;

    printf("\n SAP XEP KIEU TRUC TIEP\n");

    printf("\n\t SAP XEP KIEU TRUC TIEP\n");

    printf("\n Nhap so phan tu n=");

    scanf("%d",&n);

    A=(int*)malloc(n*sizeof(int));

    printf("\n Tao lap day so:\n");

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

      {

        printf("\n A[%d]=",i);

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

      }

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

      {

        temp=A[i];

        for(j=i-1;j>=0&&temp<A[j];j--)

          A[j+1]=A[j];

        A[j+1]=temp;

        printf("\n\nKet qua lan thu %d:",i);

        in2(A,i+1);

      }

    free(A);

    getch();

  }

//=======================================

void tlap(int *A,int n)

  {

 

    int i;

    printf("\n");

    printf("\n Tao lap day so:\n");

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

      {

        printf("\n A[%d]=",i);

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

      }

  }

void in1(int *A,int n)

  {

    int i;

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

    printf("%5d",A[i]);

  }

 

void bubble(int *A,int n)

  {

    int i,j,temp;

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

      {

        for(j=n-1;j>=i;j--)

          {

            if(A[j-1]>A[j])

              {

               temp=A[j-1];

               A[j-1]=A[j];

               A[j]=temp;

              }

          }

        printf("\n\n Ket qua lan %d:",i);

        in1(A,n);

      }

  }

void suibot()

  {

    clrscr();

    int *A,n;

    printf("\n SAP XEP KIEU SUI BOT\n");

    printf("\n Nhap so phan tu n=");

    scanf("%d",&n);

    A=(int*)malloc(n*sizeof(int));

    tlap(A,n);

    bubble(A,n) ;

    free(A);

    getch();

  }

//=======================================

void qs(int *A,int left,int right)

  {

    int i,j,x,y;

    i=left;

    j=right;

    x=A[(left+right)/2];

    do

      {

        while(A[i]<x&&i<right)i++;

        while(A[j]>x&&j>left)j--;

        if(i<=j)

          {

            y=A[i];

            A[i]=A[j];

            A[j]=y;

            i++;

            j--;

          }

      }while(i<=j);

    if(left<j)qs(A,left,j);

    if(i<right)qs(A,i,right);

  }

void quick(int *A,int n)

  {

    qs(A,0,n-1);

  }

 

void in3(int *A,int n)

  {

    int i;

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

      printf("%5d ",A[i]);

  }

void nhanh()

  {

    clrscr();

    int *A,n;

    printf("\n SAP XAP NHANH\n");

    printf("\n So phan tu n=");

    scanf("%d",&n);

    A=(int*)malloc(n*sizeof(int));

    printf("\n\n Tao lap day so:\n");

    for(int i=0;i<n;i++)

      {

        printf("\n A[%d]=",i);

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

      }

    quick(A,n);

    printf("\n\n");

    printf("Ket qua thu duoc la:\n\n");

    in3(A,n);

    getch();

    free(A);

  }

//=======================================

void in4(int *A,int n)

  {

    for(int i=0;i<n;i++)

      printf("%5d",A[i]);

  }

void merge(int *A,int n)

  {

    int i,k,j,low1,up1,low2,up2,size;

    int *ds;

    size=1;

    ds=(int*)malloc(n*sizeof(int));

    while(size<n)

      {

        low1=0;

        k=0 ;

        while(low1+size<n)

          {

            low2=low1+size;

            up1=low2-1;

            if(low2+size-1<n)

              up2=low2+size-1;

            else

              up2=n-1;

            for(i=low1,j=low2;i<=up1 && j<=up2;k++)

              {

               if(A[i]<=A[j])

                 ds[k]=A[i++];

               else

                 ds[k]=A[j++];

              }

            for(;i<up1;k++)

              ds[k]=A[i++];

            for(;j<up2;k++)

              ds[k]=A[j++];

            low1=up2+1;

          }

        for(i=low1;k<n;i++)

          ds[k++]=A[i];

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

          A[i]=ds[i];

        size*=2;

      }

    printf("\n \n Ket qua thu duoc la:\n\n");

    in4(A,n);

    free(ds);

  }

void hoanhap()

  {

    clrscr();

    int *A,n,i;

    printf("\n \t SAP XEP KIEU HOA NHAP\n");

    printf("\n So phan tu n=");

    scanf("%d",&n);

    A=(int*)malloc(n*sizeof(int));

    printf("\n Tao lap day so:\n");

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

      {

        printf("\nA[%2d]=",i);

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

      }

    merge(A,n);

    printf("\n");

    getch();

    free(A);

  }

 

//=======================================

void in5(int *A,int n)

  {

    for(int i=0;i<n;i++)

      printf("%5d",A[i]);

  }

void shaker(int *A,int n)

  {

    int i,j,temp,tdoi;

    do

      {

        tdoi=0;

        for(i=n-1;i>0;i--)

          {

            if(A[i-1]>A[i])

              {

               temp=A[i-1];

               A[i-1]=A[i];

               A[i]=temp;

               tdoi=1;

              }

          }

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

          {

            if(A[j-1]>A[j])

              {

               temp=A[j-1];

               A[j-1]=A[j];

               A[j]=temp;

               tdoi=1;

              }

          }

 

      }while(tdoi);

    printf("\n\n Ket qua la :",tdoi);

    in5(A,n);

  }

void shaker()

  {

    clrscr();

    int *A,n,i;

    printf("\n \tSHAKER_SORT\n");

    printf("\n So phan tu n=");

    scanf("%d",&n);

    A=(int*)malloc(n*sizeof(int));

    printf("\n \n Tao lap day so:\n");

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

      {

        printf("\n A[%2d]=",i);

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

      }

    shaker(A,n);

    getch();

    free(A);

  }

 

 

//=======================================

void main()

  {

    while(1) {

    clrscr();

    int key;

    printf("\n\tSAP XEP VA TIM KIEM\n");

    printf("\n 1.Selection_sort\n");;

    printf("\n 2.Bubble_sort\n");

    printf("\n 3.Insertion_sort\n");

    printf("\n 4.Quick_sort\n");

    printf("\n 5.Merge_sort\n");

    printf("\n 6.Shaker_sort\n");

    printf("\n 0.Tro ve");

    printf("\nBam mot phim de chon chuc nang:");

    scanf("%d",&key);

    if(key==0) break;

  

    switch(key)

      {

        case 1:

               clrscr();

               luachon();

               printf("\n\n\tAn phim bat ky de tro lai menu chinh");

               getch();

               clrscr();

               break;

        case 2:

               clrscr();

               suibot();

               printf("\n\n\tAn phim bat ky de tro lai menu chinh");

               getch();

               clrscr();

               break;

        case 3:

               clrscr();

               tructiep();

               printf("\n");

               printf("\nAn phim bat ky de tro lai menu chinh");

               getch();

               clrscr();

               break;

        case 4:

               clrscr();

               nhanh();

               printf("\n");

               printf("\nAn phim bat ky de tro lai menu chinh");

               getch();

               clrscr();

               break;

        case 5:

               clrscr();

               hoanhap();

               printf("\n");

               printf("\nAn phim bat ky de tro lai menu chinh");

               getch();

               clrscr();

               break;

        case 6:

               clrscr();

               shaker();

               printf("\n");

               printf("\nAn phim bat ky de tro lai menu chinh");

               getch();

               clrscr();

               break;

 

      }

     }

   // getch();

  }

 

2:Một ví dụ về Đa hình

#include <iostream.h>
#include <conio.h>
#include <math.h>
class hinhve
{
   public:
       
virtual float dientich() = 0;
        
virtual char *ten() = 0;
        
virtual void in()=0;
};

class 
haichieu : public hinhve
{
    public:
       
virtual float chuvi() = 0;
      
void in()
      {
           
cout<<"ten cua hinh: "<<ten()
             <<
" ,dien tich la: "<<dientich()
             <<
" ,chu vi la: "<<chuvi()<<endl;
      }
};

class 
bachieu : public hinhve
{
  public:
      
virtual float thetich() = 0;
      
void in()
      {
           
cout<<"ten cua hinh: "<<ten()
             <<
" ,dien tich la: "<<dientich()
             <<
" ,the tich la: "<<thetich()<<endl;
      }
};


class 
hinhtron : public haichieu
{
      private:
       
float r;
   public:
       
hinhtron() { 0;}
       
hinhtron(float bk) {bk;}
      
float chuvi()
      {
            return 
2*3.14*r;
      }
      
float dientich()
      {
             return 
3.14*r*r;
      }
      
char *ten()
      {
             return 
"Hinh Tron";
      }

};


class 
hinhvuong : public haichieu
{
      private:
       
float a;
   public:
       
hinhvuong(float x)
      {
               
x;
      }
      
float chuvi()
      {
          return 
a*4;
      }
      
float dientich()
      {
              return 
a*a;
      }
      
char *ten()
      {
             return 
"Hinh Vuong";
      }
};

class 
tgdeu : public haichieu
{
     private:
       
float a;
   public:
       
tgdeu(float x) : a(x){}
      
float chuvi()
      {
              return 
3*a;
      }
      
float dientich()
      {
           return 
a*a*sqrt(3)/2;
      }
      
char *ten()
      {
              return 
"Hinh tam giac deu";
      }
};
class 
cau: public bachieu
{
  private:
      
float r;
   public:
      
cau(float bk): r(bk){}
      
float thetich() { return r*r*r*3.14;}
      
float dientich() { return 4*3.14*r*r; }
      
char *ten()
      {
           return 
"Hinh Cau";
      }
};

class 
lapphuong : public bachieu
{
      private:
       
float a;
   public:
       
lapphuong(float x) : a(x) {}
       
float thetich() { return a*a*a; }
       
float dientich() { return 6*a*a; }
       
char ten() { return "Hinh Lap Phuong"; }
};

void main()
{
   
hinhve *p;
   
= new hinhtron(3);
   
p->in();
   
delete p;
   
= new lapphuong(3);
   
-> in();
   
delete p;
   
= new cau(3);
   
-> in();
   
delete p;
   
= new tgdeu(5);
   
-> in();
   
delete p;
   
= new hinhvuong(6);
   
-> in();
   
getch();

3:Tiếp một ví dụ về Đa hình

#include <iostream.h>
#include <conio.h>
#include <math.h>

class Point
{
      private:
       
int xint y;
   public:
       
Point()
      {
            
00;
      }
       
Point(int a,int b)
      {
            
ab;
      }
      
virtual void set(int a,int b)
      {
            
ab;
      }
      
float gettung()
      {
            return 
y;
      }
      
float gethoanh()
      {
            return 
x;
      }
      
float kc(Point t)
      {
             return ((
t.x)*(t.x) + (t.y)*(t.y));
      }
      
virtual void in()
      {
            
cout<<"\n("<<x<<";"<<y<<")";
      }
};
class 
Cpoint : protected Point
{
    private:
       
int mau;
   public:
      
Cpoint() : Point()
      {
             
mau 0;
      }
       
Cpoint(int a,int b,int mau_) : Point(a,b)
      {
             
mau mau_;
      }
      
void set(int a,int b,int mau_)
      {
            
Point::set(a,b);
          
mau mau_;
      }
      
void in()
      {
             
Point::in();
               
cout<<" Co mau la "<<mau;
      }
} ;

void main()
{
    
Point *p;
   
= new Cpoint(3,5,6);
   
p->in();
   
delete p;
   
= new Point(5,2);
   
p->in();
   
getch();
}



Last Updated ( Monday, 05 October 2015 14:14 )  

Related Articles

Chat Zalo