using System.Collections.Generic;
public int TuSo { get; set; }
Exception MauBangKhong = new Exception("Mau phai khac 0");
public PhanSo(int tuSo, int mauSo)
Console.Write("Nhap tu so: ");
this.TuSo = int.Parse(Console.ReadLine());
Console.Write("Nhap mau so: ");
this.MauSo = int.Parse(Console.ReadLine());
public override string ToString()
return $"{this.TuSo}/{this.MauSo}";
public int UCLN(int tuso, int mauso)
return UCLN(mauso, tuso % mauso);
public void RutGonPhanSo()
int c = UCLN(TuSo, MauSo);
public static PhanSo operator +(PhanSo a, PhanSo b)
PhanSo ps = new PhanSo(a.TuSo * b.MauSo + b.TuSo * a.MauSo, a.MauSo * b.MauSo);
public static PhanSo operator -(PhanSo a, PhanSo b)
PhanSo ps = new PhanSo(a.TuSo * b.MauSo - b.TuSo * a.MauSo, a.MauSo * b.MauSo);
public static PhanSo operator *(PhanSo a, PhanSo b)
PhanSo ps = new PhanSo(a.TuSo * b.TuSo, a.MauSo * b.MauSo);
public static PhanSo operator /(PhanSo a, PhanSo b)
PhanSo ps = new PhanSo(a.TuSo * b.MauSo, a.MauSo * b.TuSo);
public static bool operator >(PhanSo a, PhanSo b)
PhanSo ps = new PhanSo(a.TuSo * b.MauSo - b.TuSo * a.MauSo, a.MauSo * b.MauSo);
public static bool operator <(PhanSo a, PhanSo b)
PhanSo ps = new PhanSo(a.TuSo * b.MauSo - b.TuSo * a.MauSo, a.MauSo * b.MauSo);
public static bool operator ==(PhanSo a, PhanSo b)
PhanSo ps = new PhanSo(a.TuSo * b.MauSo - b.TuSo * a.MauSo, a.MauSo * b.MauSo);
public static bool operator !=(PhanSo a, PhanSo b)
PhanSo ps = new PhanSo(a.TuSo * b.MauSo - b.TuSo * a.MauSo, a.MauSo * b.MauSo);
public static void Main()
List<PhanSo> listPs = new List<PhanSo>()
Console.WriteLine($"1. Nhap phan so moi");
Console.WriteLine($"2. Hien thi day phan so vua nhap");
Console.WriteLine($"3. Sap xep day phan so tang dan");
Console.WriteLine($"4. Sap xep day phan so giam dan");
Console.WriteLine($"5. Rut gon day phan so");
Console.WriteLine($"6. Cong day phan so");
Console.WriteLine($"7. Tru day phan so");
Console.WriteLine($"8. Nhan day phan so");
Console.WriteLine($"9. Chia day phan so");
Console.WriteLine($"0. Thoat!");
luaChon = Console.ReadLine();
PhanSo ps = new PhanSo();
Console.WriteLine($"Nhap phan so thu {i}, nhap : ");
Console.WriteLine(e.Message);
foreach (var item in listPs)
Console.Write($"{item.ToString()} \t");
SapXepDayGiamDan(listPs);
SapXepDayTangDan(listPs);
Console.WriteLine($"Tong day phan so: {CongDayPhanSo(listPs)}");
Console.WriteLine($"Hieu day phan so: {TruDayPhanSo(listPs)}");
Console.WriteLine($"Tich day phan so: {NhanDayPhanSo(listPs)}");
Console.WriteLine($"Thuong day phan so: {ChiaDayPhanSo(listPs)}");
Console.WriteLine("Lua chon khong phu hop, hay nhap lai");
Console.WriteLine($"\n------------------------------------");
} while (luaChon != "0");
private static PhanSo ChiaDayPhanSo(List<PhanSo> listPs)
PhanSo Thuong = new PhanSo(1,1);
foreach (var phanSo in listPs)
private static PhanSo NhanDayPhanSo(List<PhanSo> listPs)
PhanSo Tich = new PhanSo();
foreach (var phanSo in listPs)
private static PhanSo TruDayPhanSo(List<PhanSo> listPs)
PhanSo Hieu = new PhanSo();
foreach (var phanSo in listPs)
private static PhanSo CongDayPhanSo(List<PhanSo> listPs)
PhanSo Tong=new PhanSo();
foreach(var phanSo in listPs)
private static void RutGonDayPhanSo(List<PhanSo> listPs)
Console.WriteLine($"Day phan so rong");
foreach(var item in listPs)
private static void SapXepDayGiamDan(List<PhanSo> listPs)
for (int i = 0; i < listPs.Count - 1; i++)
for (int j = i + 1; j < listPs.Count; j++)
if (listPs[i] < listPs[j])
PhanSo phanSo = new PhanSo();
private static void SapXepDayTangDan(List<PhanSo> listPs)
for (int i = 0; i < listPs.Count - 1; i++)
for (int j = i + 1; j < listPs.Count; j++)
if (listPs[i] > listPs[j])
PhanSo phanSo = new PhanSo();