Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 3 của 3
  1. #1
    Ngày tham gia
    Sep 2015
    Đang ở
    Hà Nội
    Bài viết
    0

    kết quả trả về của biểu thức mình luôn bằng 0

    Mã:
    float TamGiac::TinhDienTich()
    {
    	float kq;
    	kq=this->TamGiac::TinhChuVi()/2 * (this->TamGiac::TinhChuVi()/2 - this->A.TinhKhoangCach(this->B)) * (this->TamGiac::TinhChuVi()/2 - this->B.TinhKhoangCach(this->C)) * (this->TamGiac::TinhChuVi()/2 - this->C.TinhKhoangCach(this->A));
    	return kq;
    }
    Đây là hàm để tính diện tích tam giác bằng công thức căn bậc 2(p*(p-a)*(p-b)*(p-c)), mình viết bằng ngôn ngữ C++ bằng phương pháp Lập Trình Hướng Đối Tượng.
    Vấn đề của mình là tại sao kq luôn bằng 0, có lẽ là do các dấu đóng mở ngoặc đơn ().

    Mình cảm ơn

  2. #2
    thử thế này xem:
    Mã:
    float TamGiac::TinhDienTich()
    {
    	float kq;
    	kq=this->TamGiac::TinhChuVi()/2.0 * (this->TamGiac::TinhChuVi()/2.0 - this->A.TinhKhoangCach(this->B)) * (this->TamGiac::TinhChuVi()/2.0 - this->B.TinhKhoangCach(this->C)) * (this->TamGiac::TinhChuVi()/2.0 - this->C.TinhKhoangCach(this->A));
    	return kq;
    }
    thay các số nguyên bằng các số thực, thì phép chia "/" sẽ cho kết quả đúng, còn nếu nó là các số nguyên thì kết quả sẽ là phần nguyên thôi
    bạn kiểm tra lại các phương thức tính chu vi, tinh khoảng cách tương tự như tư tưởng này nhé

  3. #3
    Trích dẫn Gửi bởi Nguyen.TienHai
    thử thế này xem:
    Mã:
    float TamGiac::TinhDienTich()
    {
    	float kq;
    	kq=this->TamGiac::TinhChuVi()/2.0 * (this->TamGiac::TinhChuVi()/2.0 - this->A.TinhKhoangCach(this->B)) * (this->TamGiac::TinhChuVi()/2.0 - this->B.TinhKhoangCach(this->C)) * (this->TamGiac::TinhChuVi()/2.0 - this->C.TinhKhoangCach(this->A));
    	return kq;
    }
    thay các số nguyên bằng các số thực, thì phép chia "/" sẽ cho kết quả đúng, còn nếu nó là các số nguyên thì kết quả sẽ là phần nguyên thôi
    bạn kiểm tra lại các phương thức tính chu vi, tinh khoảng cách tương tự như tư tưởng này nhé
    chuẩn đấy bạn, mình cũng mới dính vụ này bên java, phép chia với số kiểu int sẽ luôn lấy phần nguyên thôi thế nên muốn lấy phần thập phân nữa thì phải là số thực

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •