Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 15 kết quả

Đề tài: Tính hợp và giao của hai danh sách?

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    13

    Mặc định Tính hợp và giao của hai danh sách?

    Chào các Pro!
    Tình hình là em đang gặp khó khăn với bài tập như thế này,mong các Pro chỉ giáo ,em cảm ơn lắm lắm!!!
    Đề bài:
    Input:Nhập vào hai danh sách sinh viên A và B ( hai danh sách không cần mã sv)
    Output:-In ra danh sách C là hợp của hai danh sách
    -In ra danh sách D là giao của hai danh sách
    Mong mọi người chỉ giúp em !

  2. #2
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Hợp là những phần chung và riêng. giao chỉ phần chung

    từ ý trên bạn có thể làm như sau:

    duyệt A, duyệt B --> kiếm phần tử A xuất hiện trong B -> nếu có cho nó vào C (phần giao).

    Cho D là các phần tử phân biệt của D A . Duyệt B --> kiếm phần tử nào chưa có trong D --> cho vào D.

    là ok


    Edit:
    hu hu không ai giúp em à???
    Lần sau mới post bài được vài phút mà đã la lên kiểu này tui del bài ráng chịu .
    -- Siêu gà --
    Đã được chỉnh sửa lần cuối bởi zkday2686 : 03-04-2009 lúc 02:00 PM.

  3. #3
    Ngày gia nhập
    03 2009
    Bài viết
    13

    hix,anh trả lời cứ như đúng rùi ý ạ!
    Em bít thế mà ,nhưng cái khó là thuật toán thế nào cơ anh?
    em làm bài này rồi nhưng mà chỉ khi em nhập tên là a,b,c thì được nhưng mà nếu em nhập tên như là nguyen van a,nguyen van b... thì nó toi luôn
    code đây anh à:
    C++ Code:
    1. #include"conio.h"
    2. #include"iostream.h"
    3. class TH
    4. {
    5.    float pt[100];
    6.    char q[50];
    7.  
    8.    public:
    9.       void nhap(int n);
    10.       void in(int n);
    11.       TH hop(TH B,int n,int m);
    12.       TH giao(TH B,int n,int m);
    13.       int kt(int x,int n);
    14. };
    15. void TH::nhap(int n)
    16. {
    17.    int i;
    18.    for(i=1;i<=n;i++)
    19.    {
    20.       cout<<"\nnhap phan tu :pt["<<i<<"]";
    21.       cin>>q[i];
    22.    }
    23. }
    24. void TH::in(int n)
    25. {    int i;
    26.      cout<<"(";
    27.    for ( i=1;i<n;i++)
    28.  
    29.       cout<<q[i]<<",";
    30.     cout<<q[n]<<")";
    31. }
    32.  
    33. int TH::kt(int x,int n)
    34. {
    35.    int i,t=0;
    36.    for(i=1;i<=n;i++)
    37.  
    38.        if(x==q[i])
    39.      t++;
    40.    return t;
    41.  
    42. }
    43. TH TH::giao(TH B,int n,int m)
    44. {   int i;TH C;
    45.     int t=0;
    46.     for(i=1;i<=n;i++)
    47.     for(int j=1;j<=m;j++)
    48.     {
    49.        if(q[i]==B.q[j])
    50.        {
    51.        t++;
    52.        C.q[t]=q[i];
    53.  
    54.        }
    55.     }
    56.  
    57.   if(t==0)
    58.     cout<<"\ngiao cua hai tap hop =tap hop rong";
    59.   else
    60.   {  cout<<"(";
    61.       for(i=1;i<t;i++)
    62.      cout<<C.q[i]<<",";
    63.       cout<<C.q[t]<<")";
    64.   }
    65.     return C;
    66. }
    67. TH TH::hop(TH B,int n,int m)
    68. {
    69.      int k=n;int i,j;TH c;
    70.       for(i=1;i<=k;i++)
    71.     {
    72.         c.q[i]=q[i];
    73.  
    74.     }
    75.  
    76.      for(j=1;j<=m;j++)
    77.      {
    78.     if(kt(B.pt[j],n)==0)
    79.     {
    80.         k++;
    81.         c.q[k]=B.q[j];
    82.     }
    83.      }
    84.   cout<<"(";
    85.    for(i=1;i<k;i++)
    86.       cout<<c.q[i]<<",";
    87.   cout<<c.q[k]<<")";
    88.  
    89.     return c;
    90.  
    91. }
    92. void main()
    93. {
    94.     TH A,B,c;int n,m;   clrscr();
    95.     cout<<"nhap so luong phan tu A n=";
    96.     cin>>n;
    97.     cout<<"\nnhap tap hop A=";
    98.     A.nhap(n);
    99.   cout<<"nhap so luong phan tu B m=";
    100.     cin>>m;
    101.     cout<<"\nnhap tap hop B=";
    102.     B.nhap(m);
    103.     cout<<"\ncac tap hop vua nhap:";
    104.     cout<<"\nA=";
    105.     A.in(n);
    106.     cout<<"\nB=";
    107.     B.in(m);
    108.     cout<<"\nA^B=";
    109.     A.giao(B,n,m);
    110.      cout<<"\nAVB=";
    111.    c= A.hop(B,n,m);
    112.     getch();
    113.  
    114. }
    Ai cũng bắt đầu từ gà mà anh!Em công nhận là em củ chuối và gà thật nhưng của đáng tội em không bít thật!
    Đã được chỉnh sửa lần cuối bởi zkday2686 : 03-04-2009 lúc 03:01 PM.

  4. #4
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Code của bạn viết mình đọc vô hoa cả mắt

    nhưng gợi ý cho bạn thế này

    1 - code thêm: ( operator == ) cho cái class này.
    2 - thằng q bạn không thể so sánh từng phần tử của nó được.
    dùng hàm: compare <ko nhớ rõ là đúng ko nữa -- lâu quá ko đụng vào C>.

    P.s: bạn viết C++ nên dùng string nó hổ trợ cho mình nhiều hơn

  5. #5
    Ngày gia nhập
    11 2008
    Bài viết
    203

    Thôi, làm danh sách sinh viên làm gì cho khổ, xem mỗi SV là một con số nhé!
    Love có một bài cho bạn đây, Love luôn cho bài full chứ không nêu ý tưởng ý tứ gì hết
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<malloc.h>
    
    typedef           int   ElementType;
    typedef           struct  Node
    {
                      ElementType       Element;
                      Node*             Next;
    };
    typedef           Node*             Position;
    typedef           Position          List;
    
    Position          TAONUT()
    {
                      return (Node*)malloc(sizeof(Node));         
    }            
    void              MAKENULL_LIST(List &L)
    {
                      L=TAONUT();
                      L->Next=NULL;     
                  
    }
    int               EMPTY_LIST(List L)
    {
                      return L->Next==NULL;                 
    }
    void              INSERT_LIST(ElementType X, Position P, List &L)
    {
                      Position Temp;
                      //Temp=(Node*)malloc(sizeof(Node));
                      Temp=TAONUT();
                      Temp->Element=X; 
                      Temp->Next=P->Next;
                      P->Next=Temp;   
                                   
    }
    void              DELETE_LIST(Position P, List &L)
    {
                      Position Temp;
                      Temp=P->Next;
                      P->Next=P->Next->Next;
                      free(Temp);  
    }
    void              READ_LIST(List &L)
    {           
                      int i=0;           
                      ElementType X;
                      do{
                          printf("Nhap vao phan tu thu %d:",i+1);scanf("%d",&X);
                            if(X!=-1)
                          INSERT_LIST(X,L,L);
                          i++;
                      }while(X!=-1);
                      
    }
    void              PRINT_LIST(List L)
    {
             if(EMPTY_LIST(L))
                printf("\nDanh sach rong, khong co phan tu de in");         
             else
             {        Position P=L;
                      while(P->Next!=NULL)
                        {
                           printf("%d ",P->Next->Element);
                           P=P->Next;
                        };  
             }               
             printf("\n");         
    }
    Position    LOCATE(ElementType X, List L)
    {                                 
             if(!EMPTY_LIST(L))
             {  Position P=L;
                while((P->Next!=NULL)&&(P->Next->Element!=X))
                {
                   P=P->Next;
                };
                if(P->Next==NULL)
                   return P->Next;
                else
                   return P;
             }
             else return NULL;               
    
    }
    void XOAMOTNUT(List &L)
    {
             ElementType X;
             printf("\nNhap vao gia tri muon xoa: ");scanf("%d",&X);
             Position P=LOCATE(X,L);
             if(EMPTY_LIST(L))
                     printf("\nDanh sach rong! Khong co phan tu nao de xoa");
             else if(P->Next==NULL)
                      printf("\nKhong ton tai phan tu vua nhap!");
                  else
                 {
                     DELETE_LIST(P,L);
                     printf("\n");
                 }
    }
    void     XOA_CAC_NUT_CUNG_GIA_TRI(ElementType X,List &L)
    {
             printf("\nNhap vao gia tri muon xoa:");scanf("%d",&X);
             Position P=L;
             int i=0;//BIEN NAY DE KIEM TRA XEM CO XOA KHONG
             while(P->Next!=NULL)
             {
                if(P->Next->Element==X)
                {
                   DELETE_LIST(P,L); 
                   i++;         
                }  
                else
                    P=P->Next;
                
             }
             if(i==0) printf("\nKhong ton tai gia tri can xoa!\n");
    }
    Position    XACDINHVITRICUOI(List L)
    {
       Position P;
       if(EMPTY_LIST(L))
          return NULL;
       else
       {
          
          P=L;
          while(P->Next!=NULL)
          {
             P=P->Next;  
          }     
          
       }
       return P;
    }   
    void     NOICUOI( List &L)
    {
             ElementType X;
             printf("\nNhap vao gia tri can them vao cuoi: ");  
             scanf("%d",&X);
             Position P=XACDINHVITRICUOI(L);
             INSERT_LIST(X,P,L);
    }  
    int      MOTPHANTU(List L)
    {
             return L->Next->Next==NULL;   
    }
    int     IS_TANGDAN(List L)
    {     
          if(!EMPTY_LIST(L))
              if(MOTPHANTU(L))
                 return -1;
              else
              {
                 int i=0;
                 Position P;
                 P=L;  
                 while(P->Next->Next!=NULL)
                 {
                
                   if(P->Next->Element<P->Next->Next->Element)
                      P=P->Next;
                   else return 0;       
                 };
               return 1;
              }
          else
              return -1;
          
    }
    int     IS_GIAMDAN(List L)//Kiem tra xem danh sach co phai la giam dan khong
    {     
          if(!EMPTY_LIST(L))
              if(MOTPHANTU(L))
                 return -1;
              else
              {
                 int i=0;
                 Position P;
                 P=L;  
                 while(P->Next->Next!=NULL)
                 {
                
                   if(P->Next->Element>P->Next->Next->Element)
                      P=P->Next;
                   else return 0;       
                 };
               return 1;
              }
          else
              return -1;
          
    }
    void     DANH_SACH_CO_TANG_KHONG(List L)
    {
          if(IS_TANGDAN(L)==1)
             printf("\nDanh sach da cho la tang dan!");
          else   if(IS_TANGDAN(L)==0)
                     printf("\nDanh sach khong tang!");
                 else
                     printf("\nKhong xac dinh!");
       
    }  
    void     NHAPXUOI(List &L)
    {
             MAKENULL_LIST(L);
             Position P=L;
             int i=0;
             ElementType X;
             do
             {
                printf("Nhap vao phan tu thu %d:",i+1); 
                scanf("%d",&X);  
                if(X!=-1)
                   INSERT_LIST(X,P,L);
                P=P->Next; 
                i++;             
             }while(X!=-1);  
    }
    
    void     SWAP(ElementType &A, ElementType &B)
    {
             ElementType Temp;
             Temp=A;
             A=B;
             B=Temp; 
    }
    void     SORT(List &L)
    {
             
              if(!EMPTY_LIST(L))
              {
                   Position P=L;
                   while(P->Next!=NULL)
                   {
                      Position Q=P->Next;
                      while(Q->Next!=NULL)
                      {
                         if(P->Next->Element>Q->Next->Element)
                         SWAP(P->Next->Element,Q->Next->Element); 
                         Q=Q->Next;                    
                      }
                    P=P->Next;  
                   }    
                   
              }
       
    }
    List     SAPXEPTANG(List& L)//GIONG HET HAM SORT NHUNG KHAC NHAU TRI TRA VE
    {
             
              if(!EMPTY_LIST(L))
              {
                   Position P=L;
                   while(P->Next!=NULL)
                   {
                      Position Q=P->Next;
                      while(Q->Next!=NULL)
                      {
                         if(P->Next->Element>Q->Next->Element)
                         SWAP(P->Next->Element,Q->Next->Element); 
                         Q=Q->Next;                    
                      }
                    P=P->Next;  
                   }    
    
              }
       
    }               
    List     HOP(List &L1,List L2)//HOP CUA 2 DANH SACH L1, L2
    {                             //TRA RA DANH SACH DUOC SAP THU TU
                
                List L3;
                SAPXEPTANG(L1);
                L3=L1;
                if(EMPTY_LIST(L2))
                   return L3;
                else
                {
                   Position P,Q;
                   P=L2,Q=L3;
                  while(P->Next!=NULL)
                  {
                      if(LOCATE(P->Next->Element,L3)==NULL)
                      {
                         INSERT_LIST(P->Next->Element,L3,L3);
                         SAPXEPTANG(L3);
                      }
                      else
                          P=P->Next;
                  }
                  return L3;
               }
          
    }
    List      GIAO(List L1,List L2)//GIAO 2 DANH SACH CHUA SAP THU TU 
    {                             
             List L3;
             MAKENULL_LIST(L3);
             Position P=L1, R=L3;
             if(!EMPTY_LIST(L1)&&!EMPTY_LIST(L2))  
             {
                while(P->Next!=NULL)
                {
                   Position Q=L2;
                   while(Q->Next!=NULL)
                   {
                      if(P->Next->Element!=Q->Next->Element)
                         Q=Q->Next;
                      else
                      {
                         if(LOCATE(P->Next->Element,L3)==NULL)//KIEM TRA XEM P->N->E CO THUOC L3 CHUA
                         {    INSERT_LIST(P->Next->Element,R,L3);
                              R=R->Next;
                         }
                         else
                              Q=Q->Next;
                      }
                   }
                P=P->Next;
                }
                return L3;
             }
             else  return L3;//NEU MOT TRONG HAI DANH SACH RONG THI KQ LA L3-TUC LA EMPTY
    }
    List     HIEU(List L1, List L2)//HIEU CUA 2 DANH SACH
    {
             if(EMPTY_LIST(L1))//CHO NAY TOI KHONG NHO DAY NHE:
             {             //HIEU CUA TAP RONG VA TAP A KHAC RONG: 0/A=?
                List L3;
                L3=L2;
                SORT(L3);  
                return L3;
             } 
             else if(EMPTY_LIST(L2))
                  {
                      List L3;
                      L3=L1;
                      SORT(L3);  
                      return L3;
                  } 
                  else
                  {
                      Position P;
                      P=L1;
                      List L3;
                      MAKENULL_LIST(L3);
                      while(P->Next!=NULL)
                      {
                         if(LOCATE(P->Next->Element,L2)==NULL)
                         {
                            INSERT_LIST(P->Next->Element,L3,L3);
                            P=P->Next;
                         }
                         
                         else
                            P=P->Next;
                      }
                      SORT(L3);
                      return L3;                   
                   }
                   
       
    }
    int            ISCON(List L1, List L2)
    {
                   if(EMPTY_LIST(L1))
                      return 1;
                   else if(EMPTY_LIST(L2))
                           return 0;
                        else
                        {
                            Position P=L1;
                            while(P->Next!=NULL)
                            {
                               if(LOCATE(P->Next->Element,L2)==NULL)
                                  return 0;
                               else
                                  P=P->Next;   
                               
                            }
                                                    
                         }
                      return 1;
    }
    List        PHANBU(List L1,List L2)//NHAC LAI: NEU A LA CON B THI B/A DUOC GOI LA PHAN BU CUA A TRONG B
    {                             //NHU VAY, TRUOC TIEN PHAI XET XEM A CO LA CON B KHONG?  
                List L3;
                MAKENULL_LIST(L3);
                if(ISCON(L1,L2))
                {
                   L3=HIEU(L2,L1);
                   return L3;
                }
                else
                   return L3;
       
    }
    
    int main()
    {
        List L, L1,L2,L3;
        int X;
      
        
        
        MAKENULL_LIST(L1);
        READ_LIST(L1);
        PRINT_LIST(L1);
        printf("\nNhap danh sach L2:\n");
        MAKENULL_LIST(L2);
        READ_LIST(L2);
        PRINT_LIST(L2);
        L3=PHANBU(L1,L2);
        PRINT_LIST(L3);
        
           
        /*TIM HIEU CUA 2 TAP HOP
        MAKENULL_LIST(L1);
        READ_LIST(L1);
        PRINT_LIST(L1);
        printf("\nNhap danh sach L2:\n");
        MAKENULL_LIST(L2);
        READ_LIST(L2);
        PRINT_LIST(L2);
        L3=HIEU(L1,L2);
        PRINT_LIST(L3);*/
            
        /*MAKENULL_LIST(L1);
        READ_LIST(L1);
        PRINT_LIST(L1);
        printf("\nNhap danh sach L2:\n");
        MAKENULL_LIST(L2);
        READ_LIST(L2);
        PRINT_LIST(L2);
        L3=HOP(L1,L2);
        PRINT_LIST(L3);*/
        
        /*MAKENULL_LIST(L1);
        READ_LIST(L1);
        PRINT_LIST(L1);
        MAKENULL_LIST(L2);
        READ_LIST(L2);
        PRINT_LIST(L2);
        L=GIAO(L1,L2);
        PRINT_LIST(L);*/
        getch();
        
    }
    Khi nào muốn kết thúc việc nhập thì enter -1;
    Tôi tin rằng: giải thuật thì có thể tìm trong hàng trăm GB ebook, hoặc Google nhưng code chạy thì chưa chắc! Hãy post code để chứng tỏ giải thuật của bạn là đúng!
    Giải thuật là bản thiết kế của ngôi nhà, code là phần xây dựng. Nếu chỉ xây nhà trên giấy thì ta sống chả khác nào người nguyên thủy.

  6. #6
    Ngày gia nhập
    03 2009
    Bài viết
    13

    Mặc định Tính hợp và giao của hai danh sách?

    anh ơi cái bài của anh em vừa xem thử,cảm ơn anh đã bỏ công phu viết code cho em nhưng mà anh chơi kiểu list rồi sắp xếp kinh quá,em nhập thế nào nó cũng báo danh sách rỗng.Nếu mà số thì em làm đc rồi,code đơn giản lắm .
    em đang nói là chuỗi ký tự cơ. Danh sách thứ nhất có n tên sv,danh sách thứ 2 có m tên sinh viên.Sau đó lấy hợp và giao của hai danh sách trên.
    Quan trọng là làm sao so sánh được hai chuỗi ký tự ?
    Còn đây là bài code mà tính hợp và giao của hai tập hợp là các số (code đơn giản lắm ạ)
    C++ Code:
    1. #include"conio.h"
    2. #include"iostream.h"
    3. class TH            
    4. {
    5.      int pt[100];int n;
    6.    public:
    7.       void nhap();    
    8.       void in();      
    9.       TH hop(TH B);
    10.       TH giao(TH B);
    11.       int kt(int x);
    12. };
    13. void TH::nhap()
    14. {
    15.    int i,j;
    16.    cout<<"nhap so phan tu n=";cin>>n;
    17.    for(i=1;i<=n;i++)
    18.    {
    19.       cout<<"\nnhap phan tu pt["<<i<<"]:";
    20.       cin>>pt[i];
    21.  
    22.        for(j=i-1;j<=i&&j>=1;j--)
    23.        {  while(pt[i]==pt[j])
    24.      {
    25.         cout<<"phan tu nay da ton tai  moi ban nhap lai pt["<<i<<"]:";
    26.         cin>>pt[i];
    27.      }
    28.        }
    29.  
    30.    }
    31. }
    32. void TH::in()
    33. {    int i;
    34.      cout<<"{";
    35.    for ( i=1;i<n;i++)
    36.  
    37.       cout<<pt[i]<<",";
    38.     cout<<pt[n]<<"}";
    39. }
    40.  
    41. int TH::kt(int x)
    42. {
    43.    int i,t=0;
    44.    for(i=1;i<=n;i++)
    45.  
    46.        if(x==pt[i])
    47.      t++;
    48.    return t;
    49.  
    50. }
    51. TH TH::giao(TH B)
    52. {   int i;TH C;
    53.     int t=0;
    54.     for(i=1;i<=n;i++)
    55.     for(int j=1;j<=B.n;j++)
    56.     {
    57.        if(pt[i]==B.pt[j])
    58.        {
    59.        t++;
    60.        C.pt[t]=pt[i];
    61.  
    62.        }
    63.     }
    64.  
    65.   if(t==0)
    66.     cout<<"{}";
    67.   else
    68.   {  cout<<"{";
    69.       for(i=1;i<t;i++)
    70.      cout<<C.pt[i]<<",";
    71.       cout<<C.pt[t]<<"}";
    72.   }
    73.     return C;
    74. }
    75. TH TH::hop(TH B)
    76. {
    77.      int k=n;int i,j;TH c;
    78.       for(i=1;i<=k;i++)
    79.       c.pt[i]=pt[i];
    80.  
    81.      for(j=1;j<=B.n;j++)
    82.      {
    83.     if(kt(B.pt[j])==0)
    84.     {
    85.         k++;
    86.         c.pt[k]=B.pt[j];
    87.     }
    88.      }
    89.    cout<<"{";
    90.    for(i=1;i<k;i++)
    91.        cout<<c.pt[i]<<",";
    92.    cout<<c.pt[k]<<"}";
    93.  
    94.     return c;
    95.  
    96. }
    97. void main()
    98. {
    99.     TH A,B;   clrscr();
    100.    
    101.    cout<<"\n\n nhap tap hop A\n";
    102.     A.nhap();  
    103.     cout<<"\n\nnhap tap hop B\n";
    104.     B.nhap();          
    105.     cout<<"\n\nCAC TAP HOP VUA NHAP:";
    106.     cout<<"\n\nA=";
    107.     A.in();
    108.     cout<<"\n\nB=";
    109.     B.in();
    110.     cout<<"\n\nA Giao B=";
    111.     A.giao(B);
    112.      cout<<"\n\nA Hop B=";
    113.     A.hop(B);
    114.     getch();
    115.  
    116. }
    Đã được chỉnh sửa lần cuối bởi tinhyeumautim : 04-04-2009 lúc 07:25 AM.

  7. #7
    Ngày gia nhập
    10 2008
    Bài viết
    99

    so sánh hai chuôi kí tự thì bạn sử dụng hàm strcmpi(xau 1, xau 2) // trong thư viện string.h

    hàm nay trả về giá trị 0 nếu hai dãy giống nhau
    và khác 0 nếu hai dãy khác nhau
    Đã được chỉnh sửa lần cuối bởi ddhung : 04-04-2009 lúc 09:57 AM. Lý do: nhầm hàm strcmpi

  8. #8
    Ngày gia nhập
    03 2009
    Bài viết
    13

    anh dh hùng ui ,anh nói thế thì làm cho em đi.Em đọc mãi cũng bít cái hàm đấy nhưng xử lý trong bài này ra sao ạ?anh có thể sửa code cho em đc không ạ?
    Đây là code em chỉ làm đc với 1 ký tự.
    Nếu mình nhập danh sách 1 là
    sv1:a
    sv2:b
    sv3:c
    chẳng hạn
    rồi danh sách 2 là:
    sv1:a
    sv2:b
    sv3:f
    sv4:g
    thì nó sẽ ra kết quả là
    hội hai danh sách là: {a,b}
    hợp hai danh sách là:{ a,b,c,f,g}
    vấn đề thế này thì em làm đc rồi
    nhưng em cần ở đây là làm thế nào nó cho em nhập vào là nguyenvan a
    nguyen van b...
    tức là tên các sinh viênphai dài dài và có khoảng trắng .Sau đó nó so sánh thế nào ra đc hội và hợp hai danh sách cơ.
    Đây là code bài mà em mới chỉ làm được là nhập tên theo kiểu a,b,c thôi:
    C++ Code:
    1.  #include"conio.h"
    2. #include"iostream.h"
    3. class TH
    4. {
    5.    float pt[100];
    6.  char q[100];
    7.  
    8.    public:
    9.       void nhap(int n);
    10.       void in(int n);
    11.       TH hop(TH B,int n,int m);
    12.       TH giao(TH B,int n,int m);
    13.       int ktra(char x,int n);
    14. };
    15. void TH::nhap(int n)
    16. {
    17.    int i;
    18.    for(i=1;i<=n;i++)
    19.    {
    20.      cout<<"\nnhap phan tu :pt["<<i<<"]";
    21.  
    22.       cin>>q[i];
    23.    }
    24. }
    25. void TH::in(int n)
    26. {    int i;
    27.      cout<<"{";
    28.    for ( i=1;i<n;i++)
    29.  
    30.       cout<<q[i]<<",";
    31.   cout<<q[n]<<"}";
    32. }
    33.  
    34. int TH::ktra(char x,int n)
    35. {
    36.    int i,t=0;
    37.    for(i=1;i<=n;i++)
    38.  
    39.        if(x==q[i])
    40.      t++;
    41.    return t;
    42.  
    43. }
    44. TH TH::giao(TH B,int n,int m)
    45. {   int i;TH C;
    46.     int t=0;
    47.     for(i=1;i<=n;i++)
    48.     for(int j=1;j<=m;j++)
    49.     {
    50.        if(q[i]==B.q[j])
    51.        {
    52.        t++;
    53.        C.q[t]=q[i];
    54.  
    55.        }
    56.     }
    57.  
    58.   if(t==0)
    59.     cout<<"\ngiao cua hai tap hop =tap hop rong";
    60.   else
    61.   {  cout<<"(";
    62.       for(i=1;i<t;i++)
    63.      cout<<C.q[i]<<",";
    64.       cout<<C.q[t]<<")";
    65.   }
    66.     return C;
    67. }
    68. TH TH::hop(TH B,int n,int m)
    69. {
    70.      int k=n;int i,j;TH c;
    71.       for(i=1;i<=k;i++)
    72.     {
    73.         c.q[i]=q[i];
    74.  
    75.     }
    76.  
    77.      for(j=1;j<=m;j++)
    78.      {
    79.     if(ktra(B.q[j],n)==0)
    80.     {
    81.         k++;
    82.         c.q[k]=B.q[j];
    83.     }
    84.      }
    85.   cout<<"(";
    86.    for(i=1;i<k;i++)
    87.       cout<<c.q[i]<<",";
    88.   cout<<c.q[k]<<")";
    89.  
    90.     return c;
    91.  
    92. }
    93. void main()
    94. {
    95.     TH A,B,c;int n,m;   clrscr();
    96.     cout<<"nhap so luong phan tu A n=";
    97.     cin>>n;
    98.     cout<<"\nnhap tap hop A=";
    99.     A.nhap(n);
    100.   cout<<"nhap so luong phan tu B m=";
    101.     cin>>m;
    102.     cout<<"\nnhap tap hop B=";
    103.     B.nhap(m);
    104.     cout<<"\ncac tap hop vua nhap:";
    105.     cout<<"\nA=";
    106.     A.in(n);
    107.     cout<<"\nB=";
    108.     B.in(m);
    109.     cout<<"\nA^B=";
    110.     A.giao(B,n,m);
    111.      cout<<"\nAVB=";
    112.    c= A.hop(B,n,m);
    113.     getch();
    114.  
    115. }
    anh có thể giúp em được không ạ?Hãy nói như anh loveanygirls:
    Tôi tin rằng: giải thuật thì có thể tìm trong hàng trăm GB ebook, hoặc Google nhưng code chạy thì chưa chắc! Hãy post code để chứng tỏ giải thuật của bạn là đúng!
    Giải thuật có thể nói mồm, nhưng code thì không!

  9. #9
    Ngày gia nhập
    04 2008
    Bài viết
    336

    Trích dẫn Nguyên bản được gửi bởi tinhyeumautim Xem bài viết
    anh có thể giúp em được không ạ?Hãy nói như anh loveanygirls:
    Tôi tin rằng: giải thuật thì có thể tìm trong hàng trăm GB ebook, hoặc Google nhưng code chạy thì chưa chắc! Hãy post code để chứng tỏ giải thuật của bạn là đúng!
    Giải thuật có thể nói mồm, nhưng code thì không!
    Xin lỗi, khi thảo luận trừ phi giải thuật khó hình dung ra thì mới dùng đến mã giả để viết. Nếu bây giờ ai đó quăng code vào nhưng viết = phương pháp "cao siêu", nó chạy đúng nhưng cậu đọc chẳng hiểu gì thì bằng 0 ?
    code ra gió bão

  10. #10
    Ngày gia nhập
    03 2009
    Bài viết
    13

    Em chả để code của em trên rùi còn gì anh?Chứ em có đòi ăn sẵn đâu.
    Em lao động rồi nhưng không bít làm thế nào mà.
    Em nghĩ bài này không cao siêu đâu,có cái em học hành gà quá nên không bít thôi mà anh
    Hu hu cả một diễn đàn mà chưa có anh nào đưa ra được code thỏa đáng cả.
    Đấy mới là mỗi trường tên sinh viên thôi,chứ nếu có thêm cả quê quán,năm sinh nữa thì kiểm tra thế nào đây
    ?
    Chả nhẽ bó tay hả các anh?
    Đã được chỉnh sửa lần cuối bởi tinhyeumautim : 04-04-2009 lúc 08:49 AM.

Các đề tài tương tự

  1. Bài tập C Sắp xếp danh sách theo thứ tự giảm dần của tổng điểm
    Gửi bởi fanclubcp trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 03-06-2013, 11:26 AM
  2. cách Tạo giao diện danh sách bạn bè như yahoo
    Gửi bởi tuanngocpt trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 21-11-2012, 04:32 PM
  3. Lập trình C Các bác giải dùm em bài trộn 2 danh sách có thứ tự thành 1 danh sách có thứ tự trong DS liên kết đơn
    Gửi bởi letranhoangtai trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 05-09-2012, 02:03 AM
  4. Bài tập C++ Giải thích giùm mình bài tập danh sách liên kết đơn bằng lập trình hướng đối tượng
    Gửi bởi Le thi Ngoc Lan trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 09-07-2012, 11:01 PM
  5. HP ENVY 17Xứng danh vua giải trí
    Gửi bởi nguyenlam14990 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 42
    Bài viết cuối: 28-04-2012, 04:49 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn