Information Technology VietNam

Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

2 posters

    Tập hợp full

    Vy Thanh Định
    Vy Thanh Định
    Web Master
    Web Master


    Giới tính : Nam Bài gửi : 228
    Tổng Điểm : 544
    Điểm Thưởng : 16
    Sinh Nhật : 19/05/1990 Bị Dụ Dỗ : 11/09/2009
    Tuổi : 34

    Tập hợp full Empty Tập hợp full

    Bài gửi by Vy Thanh Định 16/10/2009, 21:29

    Code:
    #include "iostream.h"
    #include "stdio.h"

    typedef struct
    {
        int n;
        int a[100];
    }taphop;

    int ktra(taphop a,int n,int x);
    void nhap(taphop &a);
    void xuat(taphop a);
    void them(taphop a,int k,int x);
    void xoa(taphop a,int k);
    int tim(taphop a,int x);
    void hoi(taphop a,taphop b);
    void giao(taphop a,taphop b);
    void hieu(taphop a,taphop b);

    void main()
    {
        taphop a,b;
        int n,x,k;
        cout<<"\nNhap tap A: ";
        nhap(a);
        cout<<"Tap hop A: ";
        xuat(a);
        them(a,k,x);
        xoa(a,k);
        if(tim(a,x)) cout<<"\nx xuat hien trong tap hop goc!";
        else cout<<"\nx khong co trong tap hop!";
        cout<<"\nNhap tap B: ";
        nhap(b);
        cout<<"Tap hop B: ";
        xuat(b);
        cout<<"\nHoi cua A va B: ";
        hoi(a,b);
        cout<<"\nGiao cua A va B: ";
        giao(a,b);
        cout<<"\nHieu cua A va B: ";
        hieu(a,b);
    }

    int ktra(taphop a,int n,int x)
    {
        int i;
        for(i=0;i<n;i++)
            if(x==a.a[i]) return 1;
        return 0;
    }
    void nhap(taphop &a)
    {
        int i,t=0;
        cout<<"\nNhap vao so phan tu: ";
        cin>>a.n;
        for(i=0;i<a.n;i++)
        {
            cout<<"a["<<i<<"] = ";
            cin>>a.a[i]; if(!ktra(a,t,a.a[i]))
            a.a[t++]=a.a[i];
        }
        a.n=t;
    }

    void xuat(taphop a)
    {
        int i;
        cout<<"{ ";
        for(i=0;i<a.n;i++)
        {
            cout<<a.a[i]<<" ";
            if(i!=a.n-1) cout<<","; else cout<<"}";
        }
    }

    void them(taphop a,int k,int x)
    {
        int i;
        cout<<"\nVi Tri & Gia tri them vao: ";
        cin>>k>>x;
        if(!ktra(a,a.n,x))
        {
            cout<<"\nTap hop goc sau khi them "<<x<<" vao vi tri "<<k<<": ";
            for(i=a.n;i>k-1;i--)
                a.a[i]=a.a[i-1];
            a.a[k]=x; a.n++;
            cout<<"Tap hop:";xuat(a);
        }
        else
        {
            cout<<"\nDa co san "<<x<<" khong the them!";
            cout<<"\nTap hop goc: ";xuat(a);
        }
    }

    void xoa(taphop a,int k)
    {
        int i;
        cout<<"\nVi Tri can xoa: ";
        cin>>k;
        cout<<"Tap hop goc sau khi xoa vi tri "<<k<<": ";
        for(i=k-1;i<a.n;i++)
            a.a[i]=a.a[i+1];
        a.n--;
        xuat(a);
    }

    int tim(taphop a,int x)
    {
        int i;
        cout<<"\nNhap gia tri can tim:";
        cin>>x;
        for(i=0;i<a.n;i++)
            if(a.a[i]==x)
                return 1;
            return 0;
    }

    void hoi(taphop a,taphop b)
    {
        int i,j,k;
        i=j=k=0;
        taphop c;
        while(i<a.n)
            c.a[k++]=a.a[i++];
        while(j<b.n) {
            if(!ktra(a,a.n,b.a[j]))
                c.a[k++]=b.a[j++];
            else j++;
        }
        c.n=k;
        xuat(c);
    }

    void giao(taphop a,taphop b)
    {
        int i,j,k=0;
        taphop c;
        for(i=0;i<a.n;i++)
            for(j=0;j<b.n;j++)
                if(b.a[j]==a.a[i])
                    c.a[k++]=a.a[i];
        c.n=k; xuat(c);
    }

    void hieu(taphop a,taphop b)
    {
        int i,k=0;
        taphop c;
        for(i=0;i<a.n;i++)
            if(!ktra(b,b.n,a.a[i]))
                c.a[k++]=a.a[i];
                c.n=k;
        xuat(c);
    }
    Vy Thanh Định
    Vy Thanh Định
    Web Master
    Web Master


    Giới tính : Nam Bài gửi : 228
    Tổng Điểm : 544
    Điểm Thưởng : 16
    Sinh Nhật : 19/05/1990 Bị Dụ Dỗ : 11/09/2009
    Tuổi : 34

    Tập hợp full Empty Re: Tập hợp full

    Bài gửi by Vy Thanh Định 16/10/2009, 21:38

    Với phân số nà
    Code:
    #include "iostream.h"
    #include "stdio.h"

    typedef struct
    {
        int tu,mau;
    }pso;
    typedef struct
    {
        int n;
        pso a[100];
    }taphop;

    int ktra(taphop a,int n,pso x);
    pso check(pso a);
    void nhap(taphop &a);
    void xuat(taphop a);
    void them(taphop a,int k,pso x);
    void xoa(taphop a,int k);
    int tim(taphop a,pso x);
    void hoi(taphop a,taphop b);
    void giao(taphop a,taphop b);
    void hieu(taphop a,taphop b);

    void main()
    {
        taphop a,b;
        int n,k;
        pso x;
        cout<<"\nNhap tap A: ";
        nhap(a);
        cout<<"Tap hop A: ";
        xuat(a);
        them(a,k,x);
        xoa(a,k);
        if(tim(a,x))cout<<"x xuat hien trong tap hop goc ";
        else cout<<"x khong co trong tap hop!";
        cout<<"\nNhap tap B: ";
        nhap(b);
        cout<<"Tap hop B: ";
        xuat(b);
        cout<<"\nHoi cua A va B: ";
        hoi(a,b);
        cout<<"\nGiao cua A va B: ";
        giao(a,b);
        cout<<"\nHieu cua A va B: ";
        hieu(a,b);
    }

    int ktra(taphop a,int n,pso x)
    {
        int i;
        for(i=0;i<n;i++)
            if(check(x).tu == check(a.a[i]).tu && check(x).mau==check(a.a[i]).mau) return 1;
        return 0;
    }
    pso check(pso a)
    {
        int ttu,tmau;
        ttu=abs(a.tu);
        tmau=abs(a.mau);
        while(ttu!=tmau)
            (ttu>tmau)? (ttu-=tmau): (tmau-=ttu);
           
            a.tu/=ttu;
            a.mau/=tmau;
            if(a.mau<0&&a.mau!=1)
            {
                a.tu=-a.tu;
                a.mau=-a.mau;
            }
            return a;       
    }

    void nhap(taphop &a)
    {
        int i,t=0;
        cout<<"\nNhap vao so phan tu: ";
        cin>>a.n;
        for(i=0;i<a.n;i++)
        {
            cout<<"a["<<i<<"](tu/mau): ";
            scanf("%d/%d",&a.a[i].tu,&a.a[i].mau);
            if(!ktra(a,t,a.a[i]))
            a.a[t++]=check(a.a[i]);
        }
        a.n=t;
    }

    void xuat(taphop a)
    {
        int i;
        cout<<"{ ";
        for(i=0;i<a.n;i++)
        {
            if(a.a[i].mau!=1)
                cout<<a.a[i].tu<<"/"<<a.a[i].mau<<" ";
            else
                cout<<a.a[i].tu<<" ";
            if(i!=a.n-1) cout<<","; else cout<<"}";
        }
    }

    void them(taphop a,int k,pso x)
    {
        int i;
        while(k<0 || k>a.n)
        {
            cout<<"\nVi Tri can them: ";
            cin>>k;
            if(k<0 || k>a.n)
                cout<<"Khong the them --> Nhap lai!";
        }
        cout<<"Gia tri them vao(tu/mau): ";
        scanf("%d/%d",&x.tu,&x.mau);
        x=check(x);
        if(!ktra(a,a.n,x))
        {
            cout<<"THG sau khi them "<<x.tu<<"/"<<x.mau<<" vao vi tri "<<k<<": ";
            for(i=a.n;i>k-1;i--)
            {
                a.a[i].tu=a.a[i-1].tu;
                a.a[i].mau=a.a[i-1].mau;
            }
            a.a[k].tu=x.tu;
            a.a[k].mau=x.mau;
            a.n++;
            cout<<"\nTap hop:";xuat(a);
        }
        else
        {
            cout<<"Da co san "<<x.tu<<"/"<<x.mau<<" khong the them!";
            cout<<"\nTap hop goc: ";
            xuat(a);
        }
    }

    void xoa(taphop a,int k)
    {
        int i;
        while(k<0 || k>=a.n)
        {
            cout<<"\nVi Tri can xoa: ";
            cin>>k;
            if(k<0 || k>=a.n)
                cout<<"Khong co vi tri nay -->Nhap lai!";
        }
        cout<<"Tap hop goc sau khi xoa vi tri "<<k<<": ";
        for(i=k-1;i<a.n;i++)
        {
            a.a[i].tu=a.a[i+1].tu;
            a.a[i].mau=a.a[i+1].mau;
        }
        a.n--;
        xuat(a);
    }

    int tim(taphop a,pso x)
    {
        int i;
        cout<<"\nNhap gia tri can tim(tu/mau): ";
        scanf("%d/%d",&x.tu,&x.mau);
        for(i=0;i<a.n;i++)
            if(a.a[i].tu==check(x).tu && a.a[i].mau==check(x).mau)
                return 1;
            return 0;
    }

    void hoi(taphop a,taphop b)
    {
        int i,j,k;
        i=a.n;
        j=k=0;
        for(j=0;j<b.n;j++)
        {
            if(!ktra(a,a.n,b.a[j]))
            {
                a.a[i].tu=b.a[j].tu;
                a.a[i].mau=b.a[j].mau;
                i++;
            }
        }
        a.n=i;
        xuat(a);
    }

    void giao(taphop a,taphop b)
    {
        int i,j,k=0;
        taphop c;
        for(i=0;i<a.n;i++)
            for(j=0;j<b.n;j++)
                if(ktra(b,b.n,a.a[i]))
                {
                    c.a[k].tu=a.a[i].tu;
                    c.a[k].mau=a.a[i].mau;
                    if(!ktra(c,k,c.a[k]))
                    k++;
                }
        c.n=k; xuat(c);
    }

    void hieu(taphop a,taphop b)
    {
        int i,k=0;
        taphop c;
        for(i=0;i<a.n;i++)
            if(!ktra(b,b.n,a.a[i]))
            {
                c.a[k].tu=a.a[i].tu;
                c.a[k].mau=a.a[i].mau;
                k++;
            }
        c.n=k;
        xuat(c);
    }
    ltv2009
    ltv2009
    Top Poster
    Top Poster


    Giới tính : Nữ Bài gửi : 198
    Tổng Điểm : 450
    Điểm Thưởng : 5
    Sinh Nhật : 17/10/1990 Bị Dụ Dỗ : 10/10/2009
    Tuổi : 34

    Tập hợp full Empty Re: Tập hợp full

    Bài gửi by ltv2009 22/10/2009, 16:58

    Thanks nha, cách làm rất hay, có mấy cái mình không ngờ tới, cố gắng phát huy, iu ông ẹt min này nhất hê hê Loving Heart Eyes Good

    Sponsored content


    Tập hợp full Empty Re: Tập hợp full

    Bài gửi by Sponsored content


      Hôm nay: 2/11/2024, 20:33