30/09/2018, 20:55

Mọi người giúp em với chương trình chạy rồi nhưng sai kết quả

#include <iostream>
#include <conio.h>
#include <math.h>

using namespace std;

class ToaDo{
	
	private:
		
		int x,y;
		char z;
		
	public:
		void Input();
		void Output();
		int Getx();
		int Gety();
		int TestD();
		int TestTG();

		
};
class Tam{
	
	private:
		
		ToaDo A, B, C;
	public:
		
		void Input_d();
		void Output_d();
		double Dodai(ToaDo a, ToaDo b);
		int TestDD();
		void TestTam();
		double Dien();
};


int main(){
	
	ToaDo t;
	Tam d;
    int count = 0;

	do{
		
		d.Input_d();
		
	}while(t.TestD());
	
	cout << "Toa do cua ba diem thoa man: " << endl;
	
	
	d.Output_d();
	
	cout << "Tam giac.
";
	
	d.TestTam();
	
	cout << "Dien tich tam giac: " << d.Dien();
	
	
	system("pause");
	
	return 0;
}

void ToaDo :: Input(){
	ToaDo t;
	
	cout << "Diem: ";
	fflush(stdin);
	cin  >> z;
	
	cout << "Nhap vao toa do x:";
	cin  >> x;
	
	cout << "Nhap vao toa do y: ";
	cin  >> y;
	
	t.TestD();
}
void ToaDo :: Output(){
	
	cout << z << "(" << x << ", " << y << ")" << endl;
	
}

int ToaDo :: Getx(){
	
	return x;
}
int ToaDo :: Gety(){
	
	return y;
}
int ToaDo :: TestD(){
	
	if(x < 0 || y < 0){
		
		return 0;
	}
	
}
//--------- ham lien quan den dinh cua tam giac-----
void Tam :: Input_d(){
	
	A.Input();
	B.Input();
	C.Input();
	
}
void Tam :: Output_d(){
	
	A.Output();
	B.Output();
	C.Output();

	
}
double Tam :: Dodai(ToaDo a, ToaDo b){
	
	double canh = sqrt( pow((a.Getx() - b.Getx()),2) + pow((a.Gety() - b.Gety()),2) );
	
	return canh;
}

int Tam ::  TestDD(){
	
	ToaDo a, b, c;
	Tam t;
	
	double ab = t.Dodai(a, b);
	double bc = t.Dodai(b, c);
	double ac = t.Dodai(a, c);
	
	if(ab + bc <= ac || ac + bc <= ab || ab + ac <= bc ){
		
		return 0;
	}
	
}

void Tam :: TestTam(){
	
	Tam d;
	
	ToaDo a, b, c;
	
	double ab, bc, ac;
	
	ab = d.Dodai(a, b);
	bc = d.Dodai(b, c);
	ac = d.Dodai(a, c);
	
	if(ab == bc){
		
		if(ab*ab + bc*bc == ac*ac){
			
			cout << "Tam giac vuong can tai b." << endl;
			
		}else{
			
			cout << "Tam giac can tai b." << endl;
			
		}
		
	}else if(ab == ac){
		
		if(ab*ab + ac*ac == bc*bc){
			
			cout << "Tam giac vuong can tai a." << endl;
			
		}else{
			
			cout << "Tam giac can tai a." << endl;
			
		}
    }
    else{
		
		if(ac*ac + bc*bc == ab*ab){
			
			cout << "Tam giac vuong can tai c." << endl;
			
		}else{
			
			cout << "Tam giac can tai c." << endl;
			
		}
		
	}
	

}
double Tam :: Dien(){
	
	Tam d;
	ToaDo a,b,c;
	
	double s;
	
		double ab = d.Dodai(a, b);
		double bc = d.Dodai(b, c);
		double ac = d.Dodai(a, c);
		
		double p = (ab+bc+ac)/2.0;
		
		s = sqrt(p*(p-ab)*(p-ac)*(p-bc));
	
	return s;
}
Tao Không Ngu. viết 23:03 ngày 30/09/2018

This post was flagged by the community and is temporarily hidden.

Mu Hoasua viết 23:05 ngày 30/09/2018

http://codepad.org/xI4tJnrG#line-18

Ngô Doãn Tuấn viết 23:02 ngày 30/09/2018

Chạy nhưng sai kết quả là lỗi logic. Bạn thử tự kiểm tra lại code rồi debug xem.
Như vậy mới lên cơ chứ.

Tao Không Ngu. viết 23:06 ngày 30/09/2018

This post was flagged by the community and is temporarily hidden.

Mai Anh Dũng viết 23:11 ngày 30/09/2018

Câu hỏi mơ hồ quá, Đạt ẩn đi nhé, mọi người muốn thảo luận thì thảo luận, nhưng nếu sửa được topic cho nó rõ ràng hơn thì Đạt sẽ hiển thị lên cho mọi người cùng xem.

Ngô Doãn Tuấn viết 23:01 ngày 30/09/2018

mình giúp chứ không làm hộ

Mu Hoasua viết 23:01 ngày 30/09/2018

em cảm ơn mới tham gia nên còn nhiều thiếu xót ,mong mọi người thông cảm .Bài này em vẫn chưa sửa được.

Mu Hoasua viết 23:11 ngày 30/09/2018

Chào mọi người em sửa được rồi ạ . cảm ơn anh chị

Bài liên quan
0