Beispiel #1
0
        public DanhSachHinhHoc TimHinhChuNhatCVBangX(float x)
        {
            DanhSachHinhHoc result = new DanhSachHinhHoc();

            foreach (var item in ListHinhHoc)
            {
                if (item is HinhChuNhat && ((HinhChuNhat)item).TinhChuVi() == x)
                {
                    result.Them(item);
                }
            }
            return(result);
        }
Beispiel #2
0
        public DanhSachHinhHoc ListHinhChuNhat()
        {
            DanhSachHinhHoc result = new DanhSachHinhHoc();

            foreach (var item in ListHinhHoc)
            {
                if (item is HinhChuNhat)
                {
                    result.Them(item);
                }
            }
            return(result);
        }
Beispiel #3
0
        public DanhSachHinhHoc TimHinhTronDTBangX(float x)
        {
            DanhSachHinhHoc result = new DanhSachHinhHoc();

            foreach (var item in ListHinhHoc)
            {
                if (item is HinhTron && ((HinhTron)item).TinhDienTich() == x)
                {
                    result.Them(item);
                }
            }
            return(result);
        }
Beispiel #4
0
        public DanhSachHinhHoc DanhSachKieuHinh(TypeList typeList)
        {
            DanhSachHinhHoc result = new DanhSachHinhHoc();

            foreach (var item in ListHinhHoc)
            {
                if (TrungKieuHinh(item, typeList))
                {
                    result.Them(item);
                }
            }
            return(result);
        }
Beispiel #5
0
        public DanhSachHinhHoc TimHinhChuNhatMaxChieuDai()
        {
            DanhSachHinhHoc result = new DanhSachHinhHoc();
            float           max    = MaxBanKinhHinhChuNhat();

            foreach (var item in ListHinhHoc)
            {
                if (item is HinhChuNhat && ((HinhChuNhat)item).TinhChuVi() / ((HinhChuNhat)item).ChieuRong * 2 == max)
                {
                    result.Them(item);
                }
            }
            return(result);
        }
Beispiel #6
0
        public DanhSachHinhHoc TimHinhTronMaxBanKinh()
        {
            DanhSachHinhHoc result = new DanhSachHinhHoc();
            float           max    = MaxBanKinhHinhTron();

            foreach (var item in ListHinhHoc)
            {
                if (item is HinhTron && ((HinhTron)item).BanKinh == max)
                {
                    result.Them(item);
                }
            }
            return(result);
        }
Beispiel #7
0
        public DanhSachHinhHoc TimHinhVuongMaxCanh()
        {
            DanhSachHinhHoc result = new DanhSachHinhHoc();
            float           max    = MaxCanhHinhVuong();

            foreach (var item in ListHinhHoc)
            {
                if (item is HinhVuong && ((HinhVuong)item).Canh == max)
                {
                    result.Them(item);
                }
            }
            return(result);
        }
Beispiel #8
0
        public DanhSachHinhHoc TimHinhChuNhatMinCV()
        {
            DanhSachHinhHoc result = new DanhSachHinhHoc();
            float           min    = TimMinCVHinhChuNhat();

            foreach (var item in ListHinhHoc)
            {
                if (item is HinhChuNhat && ((HinhChuNhat)item).TinhChuVi() == min)
                {
                    result.Them(item);
                }
            }
            return(result);
        }
Beispiel #9
0
        public DanhSachHinhHoc TimHinhTronMinDT()
        {
            DanhSachHinhHoc result = new DanhSachHinhHoc();
            float           min    = TimMinDTHinhTron();

            foreach (var item in ListHinhHoc)
            {
                if (item is HinhTron && ((HinhTron)item).TinhDienTich() == min)
                {
                    result.Them(item);
                }
            }
            return(result);
        }
Beispiel #10
0
        public DanhSachHinhHoc XoaHinhCVNhoNhat()
        {
            DanhSachHinhHoc result    = new DanhSachHinhHoc();
            float           cvNhoNhat = TimMinCV();

            WriteLine("Chu vi nho nhat la " + cvNhoNhat);
            foreach (var item in ListHinhHoc)
            {
                if (item is HinhVuong && ((HinhVuong)item).TinhChuVi() != cvNhoNhat ||
                    item is HinhTron && ((HinhTron)item).TinhChuVi() != cvNhoNhat ||
                    item is HinhChuNhat && ((HinhChuNhat)item).TinhChuVi() != cvNhoNhat)
                {
                    result.Them(item);
                }
            }
            return(result);
        }
Beispiel #11
0
        public DanhSachHinhHoc XoaHinhDTNhoNhat()
        {
            DanhSachHinhHoc result    = new DanhSachHinhHoc();
            float           dtNhoNhat = TimMinDT();

            WriteLine("Dien tich nho nhat la " + dtNhoNhat);
            foreach (var item in ListHinhHoc)
            {
                if (item is HinhVuong && ((HinhVuong)item).TinhDienTich() != dtNhoNhat ||
                    item is HinhTron && ((HinhTron)item).TinhDienTich() != dtNhoNhat ||
                    item is HinhChuNhat && ((HinhChuNhat)item).TinhDienTich() != dtNhoNhat)
                {
                    result.Them(item);
                }
            }
            return(result);
        }
Beispiel #12
0
        public DanhSachHinhHoc TimHinhCoMaxCV()
        {
            DanhSachHinhHoc result = new DanhSachHinhHoc();
            float           max    = TimMaxCV();

            foreach (var item in ListHinhHoc)
            {
                if (item is HinhVuong && ((HinhVuong)item).TinhChuVi() == max)
                {
                    result.Them(item);
                }
                if (item is HinhTron && ((HinhTron)item).TinhChuVi() == max)
                {
                    result.Them(item);
                }
                if (item is HinhChuNhat && ((HinhChuNhat)item).TinhChuVi() == max)
                {
                    result.Them(item);
                }
            }
            return(result);
        }
Beispiel #13
0
        public DanhSachHinhHoc SortHinhHoc <T>(int sortBy)
        {
            DanhSachHinhHoc result = DanhSachKieuHinh <T>();

            switch (sortBy)
            {
            case 0:
                result.ListHinhHoc = result.ListHinhHoc.OrderBy(hinh => hinh.TinhChuVi()).ToList();
                return(result);

            case 1:
                result.ListHinhHoc = result.ListHinhHoc.OrderBy(hinh => hinh.TinhDienTich()).ToList();
                return(result);

            case 2:
                result.ListHinhHoc = result.ListHinhHoc.OrderByDescending(hinh => hinh.TinhChuVi()).ToList();
                return(result);

            case 3:
                result.ListHinhHoc = result.ListHinhHoc.OrderByDescending(hinh => hinh.TinhDienTich()).ToList();
                return(result);
            }
            return(null);
        }
Beispiel #14
0
        public DanhSachHinhHoc SortHinhHoc(SortBy sortBy, TypeList typeList)
        {
            DanhSachHinhHoc result = new DanhSachHinhHoc();

            switch (sortBy)
            {
            // OrderSort
            case SortBy.SortUpByDT:
                if (typeList == TypeList.HinhVuong)
                {
                    result             = DanhSachKieuHinh(TypeList.HinhVuong);
                    result.ListHinhHoc = result.ListHinhHoc.OrderBy(hinh => (hinh as HinhVuong).TinhDienTich()).ToList();
                    return(result);
                }
                if (typeList == TypeList.HinhTron)
                {
                    result             = DanhSachKieuHinh(TypeList.HinhTron);
                    result.ListHinhHoc = result.ListHinhHoc.OrderBy(hinh => (hinh as HinhTron).TinhDienTich()).ToList();
                    return(result);
                }
                if (typeList == TypeList.HinhChuNhat)
                {
                    result             = DanhSachKieuHinh(TypeList.HinhChuNhat);
                    result.ListHinhHoc = result.ListHinhHoc.OrderBy(hinh => (hinh as HinhChuNhat).TinhDienTich()).ToList();
                    return(result);
                }
                break;

            // Delegate Sort
            case SortBy.SortUpByCV:
                if (typeList == TypeList.HinhVuong)
                {
                    result = DanhSachKieuHinh(TypeList.HinhVuong);
                    result.ListHinhHoc.Sort(delegate(HinhHoc x, HinhHoc y)
                    {
                        return((x as HinhVuong).TinhChuVi().CompareTo((y as HinhVuong).TinhChuVi()));
                    });
                    return(result);
                }
                if (typeList == TypeList.HinhTron)
                {
                    result = DanhSachKieuHinh(TypeList.HinhTron);
                    result.ListHinhHoc.Sort(delegate(HinhHoc x, HinhHoc y)
                    {
                        return((x as HinhTron).TinhChuVi().CompareTo((y as HinhTron).TinhChuVi()));
                    });
                    return(result);
                }
                if (typeList == TypeList.HinhChuNhat)
                {
                    result = DanhSachKieuHinh(TypeList.HinhChuNhat);
                    result.ListHinhHoc.Sort(delegate(HinhHoc x, HinhHoc y)
                    {
                        return((x as HinhChuNhat).TinhChuVi().CompareTo((y as HinhChuNhat).TinhChuVi()));
                    });
                    return(result);
                }
                break;

            // IcomparerSort and OrderByDescending Sort
            case SortBy.SortDownByDT:
                if (typeList == TypeList.HinhVuong)
                {
                    result = DanhSachKieuHinh(TypeList.HinhVuong);
                    result.ListHinhHoc.Sort(new SortListHinhVuongGiam_DT());
                    return(result);
                }
                if (typeList == TypeList.HinhTron)
                {
                    result             = DanhSachKieuHinh(TypeList.HinhTron);
                    result.ListHinhHoc = result.ListHinhHoc.OrderByDescending(hinh => (hinh as HinhTron).TinhDienTich()).ToList();
                    return(result);
                }
                if (typeList == TypeList.HinhChuNhat)
                {
                    result             = DanhSachKieuHinh(TypeList.HinhChuNhat);
                    result.ListHinhHoc = result.ListHinhHoc.OrderByDescending(hinh => (hinh as HinhChuNhat).TinhDienTich()).ToList();
                    return(result);
                }
                break;

            // Lambda Sort
            case SortBy.SortDownByCV:
                if (typeList == TypeList.HinhVuong)
                {
                    result = DanhSachKieuHinh(TypeList.HinhVuong);
                    result.ListHinhHoc.Sort((HinhHoc x, HinhHoc y) => (y as HinhVuong).TinhChuVi().CompareTo((x as HinhVuong).TinhChuVi()));
                    return(result);
                }
                if (typeList == TypeList.HinhTron)
                {
                    result = DanhSachKieuHinh(TypeList.HinhTron);
                    result.ListHinhHoc.Sort((HinhHoc x, HinhHoc y) => (y as HinhTron).TinhChuVi().CompareTo((x as HinhTron).TinhChuVi()));
                    return(result);
                }
                if (typeList == TypeList.HinhChuNhat)
                {
                    result = DanhSachKieuHinh(TypeList.HinhChuNhat);
                    result.ListHinhHoc.Sort((HinhHoc x, HinhHoc y) => (y as HinhChuNhat).TinhChuVi().CompareTo((x as HinhChuNhat).TinhChuVi()));
                    return(result);
                }
                break;
            }
            return(result);
        }
Beispiel #15
0
        public float MinMaxCV_DT_BK_C_CD(TypeMinMax typeMinMax, TypeList typeList)
        {
            DanhSachHinhHoc hinhVuong   = DanhSachKieuHinh(TypeList.HinhVuong);
            DanhSachHinhHoc hinhTron    = DanhSachKieuHinh(TypeList.HinhTron);
            DanhSachHinhHoc hinhChuNhat = DanhSachKieuHinh(TypeList.HinhChuNhat);
            float           minMax      = 0;

            switch (typeList)
            {
            case TypeList.HinhVuong:
                switch (typeMinMax)
                {
                case TypeMinMax.maxDienTich:
                    minMax = hinhVuong.ListHinhHoc.Max(x => (x as HinhVuong).TinhDienTich());
                    break;

                case TypeMinMax.maxChuVi:
                    minMax = hinhVuong.ListHinhHoc.Max(x => (x as HinhVuong).TinhChuVi());
                    break;

                case TypeMinMax.minDienTich:
                    minMax = hinhVuong.ListHinhHoc.Min(x => (x as HinhVuong).TinhDienTich());
                    break;

                case TypeMinMax.minChuVi:
                    minMax = hinhVuong.ListHinhHoc.Min(x => (x as HinhVuong).TinhChuVi());
                    break;

                case TypeMinMax.maxCanh:
                    minMax = hinhVuong.ListHinhHoc.Max(x => (x as HinhVuong).Canh);
                    break;

                case TypeMinMax.minCanh:
                    minMax = hinhVuong.ListHinhHoc.Min(x => (x as HinhVuong).Canh);
                    break;
                }
                break;

            case TypeList.HinhTron:
                switch (typeMinMax)
                {
                case TypeMinMax.maxDienTich:
                    minMax = hinhTron.ListHinhHoc.Max(x => (x as HinhTron).TinhDienTich());
                    break;

                case TypeMinMax.maxChuVi:
                    minMax = hinhTron.ListHinhHoc.Max(x => (x as HinhTron).TinhChuVi());
                    break;

                case TypeMinMax.minDienTich:
                    minMax = hinhTron.ListHinhHoc.Min(x => (x as HinhTron).TinhDienTich());
                    break;

                case TypeMinMax.minChuVi:
                    minMax = hinhTron.ListHinhHoc.Min(x => (x as HinhTron).TinhChuVi());
                    break;

                case TypeMinMax.maxBanKinh:
                    minMax = hinhTron.ListHinhHoc.Max(x => (x as HinhTron).BanKinh);
                    break;

                case TypeMinMax.minBanKinh:
                    minMax = hinhTron.ListHinhHoc.Min(x => (x as HinhTron).BanKinh);
                    break;
                }
                break;

            case TypeList.HinhChuNhat:
                switch (typeMinMax)
                {
                case TypeMinMax.maxDienTich:
                    minMax = hinhChuNhat.ListHinhHoc.Max(x => (x as HinhChuNhat).TinhDienTich());
                    break;

                case TypeMinMax.maxChuVi:
                    minMax = hinhChuNhat.ListHinhHoc.Max(x => (x as HinhChuNhat).TinhChuVi());
                    break;

                case TypeMinMax.minDienTich:
                    minMax = hinhChuNhat.ListHinhHoc.Min(x => (x as HinhChuNhat).TinhDienTich());
                    break;

                case TypeMinMax.minChuVi:
                    minMax = hinhChuNhat.ListHinhHoc.Min(x => (x as HinhChuNhat).TinhChuVi());
                    break;

                case TypeMinMax.maxChieuDai:
                    minMax = hinhChuNhat.ListHinhHoc.Max(x => (x as HinhChuNhat).TinhDienTich());
                    break;

                case TypeMinMax.minChieuDai:
                    minMax = hinhChuNhat.ListHinhHoc.Min(x => (x as HinhChuNhat).TinhDienTich());
                    break;
                }
                break;

            case TypeList.TatCaHinh:
                switch (typeMinMax)
                {
                case TypeMinMax.maxDienTich:
                    minMax = ListHinhHoc.Max(x => x.TinhDienTich());
                    break;

                case TypeMinMax.maxChuVi:
                    minMax = ListHinhHoc.Max(x => x.TinhChuVi());
                    break;

                case TypeMinMax.minDienTich:
                    minMax = ListHinhHoc.Min(x => x.TinhDienTich());
                    break;

                case TypeMinMax.minChuVi:
                    minMax = ListHinhHoc.Min(x => x.TinhChuVi());
                    break;
                }
                break;
            }
            return(minMax);
        }