

Preview text:
BÀI TẬP VỀ PHÂN SỐ #include ; using namespace std; long long ucln(long x, long y) { if(y==0) return x; return ucln(y,x%y); } long long bcnn(long x, long y) { long long tich=x*y; if(y==0) return x; return tich/ucln(x,y); } //CAC BAI TOAN VE PHAN SO
void nhap(int&x, int&y) { cin>>x>>y; } void xuat(int x, int y) { cout<} //Rút gọn phân số void rutgon(int x, int y) { int m=x/ucln(x,y); int n=y/ucln(x,y); cout<}
//Kiểm tra có phải phân số tối giản không? bool toigian(int x, int y) { if(ucln(x,y)==1) return true; else return false; }
//Viết phân số về dạng hỗn số void honso(int x, int y) { int m=x/y, n=abs(x)%abs(y);
if(abs(x)>abs(y)) cout< else cout<} //quy đồng phân số
void quydong(int x,int y, int z,int t) {
x=x*bcnn(y,t)/y; z=z*bcnn(y,t)/t; cout< cout<} //Cộng hai phân số.
void cong(int x,int y, int z,int t ) {
x=x*bcnn(y,t)/y; z=z*bcnn(y,t)/t;
rutgon(x+z,bcnn(y,t)); cout<} //Trừ hai phân số
void truphanso(int x,int y, int z,int t ) {
x=x*bcnn(y,t)/y; z=z*bcnn(y,t)/t;
rutgon(x-z,bcnn(y,t)); cout<} //Nhân hai phân số.
void nhan(int x,int y, int z,int t ) { x=x*z; y=y*t; rutgon(x,y); cout<} //Chia hai phân số.
void chia(int x,int y, int z,int t ) { x=x*t; y=y*z; rutgon(x,y); cout<}
//Kiểm tra phân số âm, dương bool psa(int x, int y) {
if((x>0&&y>0)||(x<0&&y<0)) return true; else return false; }
//So sánh 2 phân số: hàm trả về 1 trong 3 giá trị: 0,-1,1
void sosanh(int x, int y, int z, int t) {
x=x*bcnn(y,t)/y; z=z*bcnn(y,t)/t; if(x==z) cout<<"0";
else if(x>z) cout<<"1"; else cout<<"-1"; } int main() {
//freopen("toigian.inp","r",stdin); //freopen("toigian.out","w",stdout); int a,b,c,d;
nhap(a,b); xuat(a,b); cout< cout< rutgon(a,b); honso(a,b); quydong(a,b,c,d); cong(a,b,c,d); truphanso(a,b,c,d); nhan(a,b,c,d); chia(a,b,c,d); return 0;