bạn nào biết về Lập Trình Hướng Đối Tượng trên ngôn ngữ C++ giúp mình với

mrgoldengun

Verified
Joined
Nov 16, 2011
Messages
659
Reactions
377
MR
0.000
Chat with me via Teams
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 trả về bằng 0, có lẽ là do các dấu đóng mở ngoặc đơn (), việc sử dụng dấu ngoặc đơn để tính biểu thức có lẽ là không được phép, mình thì nghĩ đến việc phải viết một hàm tính toán khác (cộng, trừ, nhân, chia), nhưng nếu mỗi project thì viết các hàm tính toán như vậy mình thấy không khả quan. Cho mình hỏi là có hàm cộng, trừ, nhân, chia nào có sẵn trong thư viện math.h để thực hiện việc tính toán hay không ? Hoặc có cách nào để tính biểu thức dài như trên không ?

Mình cảm ơn
 
Joined
Jul 18, 2012
Messages
377
Reactions
217
MR
0.105
Chat with me via Teams
Neu ban viet keu nay thi nen debug tung cau lenh thi se bit minh sai cho nao thoi. Neu cac ket qua tra ve la so thi dau ngoac hay cac toan tu +-*/ khong co loi
 

nhungst

Senior
Joined
Sep 16, 2013
Messages
357
Reactions
226
MR
0.000
nhìn biểu thức của thớt loằng ngoằng, hoa cả mắt @@
Chương trình đưa ra kết quả nghĩa là không có lỗi. chỉ có biểu thức tính toán sai nên kết quả sai thôi.
Thớt đang hiểu nhầm bản chất của căn bậc 2. căn bậc 2 không phải là các toán tử đều chia cho 2 đâu ạ.
dùng hàm sqrt để tính căn. còn tại sao nó ra kq=0 thì nhìn mỏi mắt và không biết các hàm khác thế nào nên em không biết :)
 
nhìn biểu thức của thớt loằng ngoằng, hoa cả mắt @@
Chương trình đưa ra kết quả nghĩa là không có lỗi. chỉ có biểu thức tính toán sai nên kết quả sai thôi.
Thớt đang hiểu nhầm bản chất của căn bậc 2. căn bậc 2 không phải là các toán tử đều chia cho 2 đâu ạ.
dùng hàm sqrt để tính căn. còn tại sao nó ra kq=0 thì nhìn mỏi mắt và không biết các hàm khác thế nào nên em không biết :)
cái mà mình chia cho 2 tức là mình lấy chu vi chia 2 để ra nửa chu vi nhằm phục vụ cho việc tính diện tích
 

DoThanh2610

Junior
Joined
Jul 26, 2014
Messages
83
Reactions
64
MR
0.004
Call me! Call me! Chat with me via Teams
bạn lên trang sinhvienit.net mà tham khảo, có dầy đũ thông tin và tài liệu dũ loại về chuyên ngành IT, có thể trao đổi cùng với các mem để nhận dc dự giúp đở tốt nhất
 
cái mà mình chia cho 2 tức là mình lấy chu vi chia 2 để ra nửa chu vi nhằm phục vụ cho việc tính diện tích
à ừ. tại thực ra còn chả biết p là cái gì :D
nhưng nếu bài không bị trùng tham số thì k cần dùng con trỏ this, vậy code đỡ dài dòng
Bạn show cả hàm tính khoảng cách lên coi
 

binhlblb123

Banned
Joined
Jun 6, 2014
Messages
339
Reactions
90
MR
0.000
bạn lên trang sinhvienit.net mà tham khảo, có dầy đũ thông tin và tài liệu dũ loại về chuyên ngành IT, có thể trao đổi cùng với các mem để nhận dc dự giúp đở tốt nhất
congdongcviet nữa bác :D:D:D:D:D:D
 
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;
}
nếu debug rồi thì cái nào bằng 0?
this->TamGiac::TinhChuVi() hay this->A.TinhKhoangCach(this->B) hay B.TinhKhoangCach(this->C) hay C.TinhKhoangCach(this->A)?
nếu được thì bạn gửi code qua mình xem thử :D
 

Announcements

Today's birthdays

Forum statistics

Threads
434,208
Messages
7,317,171
Members
185,637
Latest member
naphoga

Most viewed of week

Most viewed of week

Back
Top Bottom