C++ xử lý phân số
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace bai_7 { class Phanso { int tu, mau; public Phanso() //ham khoi tao khong tham so { tu = 0; mau = 1; } public Phanso(int x) //khoi tao mot tham so { tu = x; mau = 1; } public Phanso(int t, int m) //khoi tao hai tham so { tu = t; mau = m; } public void XuatPhanSo() //Xuat phan so { Console.WriteLine("{0}/{1}", tu, mau); } public Phanso CongPS(Phanso ps10) //tong cua 2 phan so { int ts = tu*ps10.mau + mau*ps10.tu; int ms=mau*ps10.mau; Phanso ketqua = new Phanso(ts,ms); return(ketqua); } public Phanso TruPS(Phanso ps1) { int ts = tu * ps1.mau - mau * ps1.tu; int ms = mau * ps1.mau; Phanso ketqua = new Phanso(ts, ms); return (ketqua); } public Phanso NhanPS(Phanso ps1) { int ts = tu * ps1.tu; int ms = mau * ps1.mau; Phanso ketqua = new Phanso(ts, ms); return (ketqua); } public Phanso ChiaPS(Phanso ps1) { int ts = tu * ps1.mau; int ms = mau * ps1.tu; Phanso ketqua = new Phanso(ts, ms); return (ketqua); } public int UCLN () { while (tu!=mau) if (tu>mau) tu=tu-mau; else mau=mau-tu; return (tu); } public Phanso RutGon() { int ts = tu; int ms = mau; while (tu != mau) if (tu > mau) tu = tu - mau; else mau = mau - tu; ts = ts / tu; ms = ms / tu; Phanso ketqua = new Phanso(ts, ms); return (ketqua); } } class Program { static void Main(string[] args) { int chon, a, d, c; Phanso ps = new Phanso(); Phanso ps1 = new Phanso(4,2); Phanso ps2 = new Phanso(1,1); Console.Write("Phan so thu nhat = "); ps1.XuatPhanSo(); Console.Write("Phan so thu hai = "); ps2.XuatPhanSo(); do { Console.WriteLine("******************************************************"); Console.WriteLine(" MENU"); Console.WriteLine(" 1. a.Tong"); Console.WriteLine(" 2. a.Hieu"); Console.WriteLine(" 3. b.Tich"); Console.WriteLine(" 4. b.Thuong"); Console.WriteLine(" 5. c.Cong phan so hien hanh voi mot so nguyen"); Console.WriteLine(" 6. d.Cong phan so hien hanh voi mot phan so khac"); Console.WriteLine(" 7. e.UCLN cua phan so va Rut gon phan so"); Console.WriteLine(" 8. Thoat"); chon = Int32.Parse(Console.ReadLine()); switch (chon) { case 1: { ps = ps1.CongPS(ps2); Console.Write("Tong cua hai phan so : "); ps.RutGon(); ps.XuatPhanSo(); break; } case 2: { ps = ps1.TruPS(ps2); Console.Write("Hieu cua hai phan so :"); ps.XuatPhanSo(); break; } case 3: { ps = ps1.NhanPS(ps2); Console.Write("Hieu cua hai phan so :"); ps.XuatPhanSo(); break; } case 4: { ps = ps1.ChiaPS(ps2); Console.Write("Hieu cua hai phan so :"); ps.XuatPhanSo(); break; } case 5: { Console.Write("Phan so hien hanh la: "); ps1.XuatPhanSo(); Console.Write("Nhap vao so nguyen a = "); a = Int32.Parse(Console.ReadLine()); Phanso b = new Phanso(a); ps = ps1.CongPS(b); Console.Write("Tong cua so phan so hien hanh va so nguyen a = " + a + " la: "); ps.XuatPhanSo(); break; } case 6: { Console.Write("Phan so hien hanh la: "); ps1.XuatPhanSo(); Console.WriteLine("Nhap mot phan so:"); Console.Write("Nhap vao tu so: "); d = Int32.Parse(Console.ReadLine()); Console.Write("Nhap vao mau so: "); c = Int32.Parse(Console.ReadLine()); Phanso psk = new Phanso(d,c); ps = ps1.CongPS(psk); Console.Write("Tong cua phan so hien hanh voi phan so " + d + "/" + c + " la:"); ps.XuatPhanSo(); break; } case 7: { Console.Write("Phan so can rut gon: "); ps1.XuatPhanSo(); ps = ps1.RutGon(); Console.Write("UCLN cua tu va mau : {0}",ps1.UCLN()); Console.WriteLine(); Console.Write("Phan so sau khi rut gon: "); ps.XuatPhanSo(); break; } case 8: goto ketthuc; } } while (chon != 8); Console.ReadLine(); ketthuc: ; } } } |