Đăng Nhập

Vui lòng khai báo chính xác tên truy cập và mật khẩu!

Quên mật khẩu?

    Bài toán Hình Học Tong C#

      Có Nhiều Đóng góp Forum
      nhoxpro

      Giới tính : Nam

      Tuổi : 33

      Đến từ : hcm

      Ngày Tham gia : 30/07/2011

      Tổng số bài gửi : 250

      #1

       Sat Oct 29, 2011 9:48 am

      Bài toán Hình Học
      mình chưa test được tọa độ 4 đỉnh hình vuông ai biết giúp mình nha.
      Code:

      using System;
      class Diem
      {
          public Diem(float x, float y)
          {
              this.x = x;
              this.y = y;
          }

          public float X
          {
              get { return x; }
              set { x = value; }
          }

          public float Y
          {
              get { return y; }
              set { y = value; }
          }

          float x;
          float y;
      }


      CODE:
      Code:

      using System;
      abstract class HinhHoc
      {
          public abstract  float DienTich();
          public abstract  float ChuVi();

      }


      CODE:
      using System;
      class HinhChuNhat : HinhHoc
      {
          public HinhChuNhat(Diem gocTrenBenTrai,float chieuNgang,float chieuCao)
          {
              this.gocTrenBenTrai = gocTrenBenTrai;
              this.chieuNgang = chieuNgang;
              this.chieuCao = chieuCao;
          }

          public Diem GocTrenBenTrai
          {
              get { return gocTrenBenTrai; }
              set { gocTrenBenTrai = value; }
          }

          public float ChieuNgang
          {
              get { return chieuNgang; }
              set { chieuNgang = value; }
          }

          public float ChieuCao
          {
              get { return chieuCao; }
              set { chieuCao = value; }
          }

          public override float ChuVi()
          {
              return (chieuCao + chieuNgang) * 2;
          }

          public override float DienTich()
          {
              return chieuNgang * chieuCao;
          }

          public Diem GetTamGiac()
          {
              float a = gocTrenBenTrai.X + chieuNgang / 2;
              float b = gocTrenBenTrai.Y + chieuCao / 2;
              return new Diem(a, b);
          }

          public Diem[] GetDinh()
          {
              Diem[] Dinh = new Diem[4];
              Dinh[0]= new Diem(gocTrenBenTrai.X, gocTrenBenTrai.Y);
              Dinh[1]= new Diem(gocTrenBenTrai.X, gocTrenBenTrai.X + chieuNgang);
              Dinh[2]= new Diem(gocTrenBenTrai.X, gocTrenBenTrai.Y + chieuCao);
              Dinh[3]= new Diem(gocTrenBenTrai.X+chieuNgang,gocTrenBenTrai.Y+chieuCao);
              return Dinh;
          }
         

          Diem gocTrenBenTrai;
          float chieuNgang;
          float chieuCao;
      }


      CODE:
      Code:

      using System;
      class HinhTron : HinhHoc
      {
          public HinhTron(Diem tam, float banKinh)
          {
              this.tam = tam;
              this.banKinh = banKinh;
          }

          public Diem SetTam
          {
              set {tam=value;}
          }

          public float BanKinh
          {
              set { banKinh = value; }
          }

          public override float ChuVi()
          {
              return (float)(2*Math.PI * banKinh);
          }

          public override float DienTich()
          {
              return (float)(Math.PI * banKinh * banKinh);
          }

          public float DienTichHinhVuongNgoaiTiep()
          {
              HinhChuNhat hcn = new HinhChuNhat(new Diem(tam.X - banKinh, tam.Y - banKinh), banKinh, banKinh);
              return hcn.DienTich();
          }

          public float ChuViHinhVuongNoiTiepHinhTron()
          {
              HinhChuNhat hcn = new HinhChuNhat(new Diem(tam.X - banKinh / 2, tam.Y - banKinh / 2),(float)( banKinh * Math.Sqrt(2) ),(float) (banKinh * Math.Sqrt(2)));
              return hcn.ChuVi();
          }

          public float DienTichHinhVuongNoiTiepTrongDuongTronNoiTiepCuaCauLienTren()
          {
              HinhChuNhat hcn = new HinhChuNhat(new Diem(tam.X - banKinh / 4, tam.Y - banKinh / 4), (float)(banKinh * Math.Sqrt(2)/2), (float)(banKinh * Math.Sqrt(2)/2));
              return hcn.DienTich();
          }

          public Diem ToaDoTam()
          {
              return tam;
          }

          public Diem DinhTrenBenTraiHinhVuong()
          {
              return new Diem(tam.X - banKinh / 4, tam.Y - banKinh / 4);
          }

          public float CanhHinhVuong()
          {
              return (float)(banKinh * Math.Sqrt(2) / 2);
          }
          Diem tam;
          float banKinh;
      }

      Code:
      using System;
      class HinhBinhHanh : HinhChuNhat
      {
          public HinhBinhHanh(Diem gocTrenBenTrai, float chieuNgang, float chieuCao,float soDoGocTrong)
              :base(gocTrenBenTrai,chieuNgang,chieuCao)
          {
              this.soDoGocTrong = soDoGocTrong;
          }

          public override float ChuVi()
          {
            return  base.ChuVi();
          }

          public override float DienTich()
          {
              return (float)(Math.Abs(base.DienTich() * Math.Sin(soDoGocTrong)));
          }

          float soDoGocTrong;
      }


      Code:

      using System;
      class CungTron : HinhTron
      {
          public CungTron(Diem tam, float banKinh, float gocDoGocCung)
              :base(tam,banKinh)
          {
              this.gocDoGocCung = gocDoGocCung;
          }

          public override float ChuVi()
          {
              return base.ChuVi() * gocDoGocCung / 360 + (float)(base.ChuVi() / Math.PI);
          }
          public override float DienTich()
          {
              return base.DienTich() * gocDoGocCung / 360;
          }

          float gocDoGocCung;
      }


      Code:

      using System;
      class Tester
      {
          public static void Main()
          {
              // hinh chu nhat
              HinhChuNhat hcn = new HinhChuNhat(new Diem(3, 4), 4, 2);
              Console.WriteLine("Chu vi hinh chu nhat: "+hcn.ChuVi());
              Console.WriteLine("Dien tich hinh chu nhat: "+hcn.DienTich());
              Console.WriteLine("Tam hinh chu nhat: ({0},{1}) ", hcn.GetTamGiac().X, hcn.GetTamGiac().Y);
              Console.WriteLine("Toa do 4 dinh hinh chu nhat");
              //for (int i = 0; i < 4; i++)
              //    Console.WriteLine("Dinh {0} : ({1},{2})", i, hcn.GetDinh().);

                  //hinh tron
                  Console.WriteLine("");
              HinhTron ht = new HinhTron(new Diem(3, 4), 4);
              Console.WriteLine("Dien tich hinh tron: "+ht.DienTich());
              Console.WriteLine("Chu vi hinh tron: "+ht.ChuVi());
              Console.WriteLine("Dien tich hinh vuong ngoai tiep hinh tron: "+ht.DienTichHinhVuongNgoaiTiep());
              Console.WriteLine("Chu vi hinh vuong noi tiep hinh tron: " + ht.ChuViHinhVuongNoiTiepHinhTron());
              Console.WriteLine("Dien tich hinh vuong noi tiep hinh tron noi tiep cau lien tren: " + ht.DienTichHinhVuongNoiTiepTrongDuongTronNoiTiepCuaCauLienTren());
              Console.WriteLine("Toa do tam hinh vuong cua cau lien tren: ({0},{1})",ht.ToaDoTam().X,ht.ToaDoTam().Y);
              Console.WriteLine("Dinh tren ben trai hinh vuong cua cau lien tren: ({0},{1})",ht.DinhTrenBenTraiHinhVuong().X,ht.DinhTrenBenTraiHinhVuong().Y);
              Console.WriteLine("Do dai canh hinh vuong cua cau lien tren: "+ht.CanhHinhVuong());

              //hinh binh hanh
              Console.WriteLine("");
              HinhBinhHanh hbh=new HinhBinhHanh(new Diem(3,4),4,2,60);
              Console.WriteLine("Dien tich hinh binh hanh: " + hbh.DienTich());
              Console.WriteLine("Chu vi hinh binh hanh: " + hbh.ChuVi());

              //cung tron
              Console.WriteLine("");
              CungTron ct = new CungTron(new Diem(3, 4), 5, 80);
              Console.WriteLine("Chu vi cung tron: " + ct.ChuVi());
              Console.WriteLine("Dien tich cung tron: " + ct.DienTich());

              Console.ReadKey();
          }
      }
      Trong lúc test tọa độ bạn sửa lại thành
      CODE:
      Code:

       for (int i = 0; i < 4; i++)
                  Console.WriteLine("Dinh " + i + ": "+ "(" + hcn.GetDinh()[i].X + "," + hcn.GetDinh()[i].Y + ")");

      Là ok Idea