- 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);
}
2 posters
Tập hợp full
Vy Thanh Định- Web Master
- Giới tính : 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
- Post n°1
Tập hợp full
Vy Thanh Định- Web Master
- Giới tính : 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
- Post n°2
Re: Tập hợp full
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- Top Poster
- Giới tính : 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
- Post n°3
Re: Tập hợp full
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ê