Bài toán: Viết chương trình nhập ba cạnh của một tam giác. Nếu là tam giác thì hãy kiểm tra loại tam giác trên thuộc loại gì ?
Ý tưởng giải bài toán
- Ba cạnh a, b, c của một tam giác phải thỏa mãn điều kiện là tổng hai cạnh bất kì luôn lớn hơn cạnh còn lại. Tức là
a+b>c
vàb+c>a
vàa+c>b
. Nếu nó đúng là ba cạnh của một tam giác thì ta tiến hành kiểm tra loại tam giác trên là loại nào. Nếu a, b, c không phải là ba cạnh của một tam giác thì ta in ra màn hình không phải là cạnh của tam giác và kết thúc chương trình. - Tam giác vuông là tam giác có bình phương một cạnh bằng tổng bình phương hai cạnh còn lại.
- Tam giác đều là tam giác có ba cạnh bằng nhau. Ta chỉ cần kiểm tra điều kiện
a==b && b==c
nếu đúng thì đó là tam giác đều. - Tam giác cân là tam giác có hai cạnh bằng nhau. Để kiểm tra xem có phải là tam giác cân hay không ta chỉ cần kiểm tra điều kiện sau:
a==b || a==c || b==c
. - Tam giác tù là tam giác có một góc lớn hơn 90 độ. Giả sử tam giác tù có cạnh lớn là c, hai cạnh a, b còn lại sẽ bằng hai cạnh a’, b’ của một tam giác vuông. Dễ thấy là c sẽ lớn hơn c’, mặt khác c’²=a² +b². Từ điều kiện để là tam giác tù: (a*a>b*b+c*c||b*b>a*a+c*c||c*c >a*a+b*b)
- Trường hợp còn lại sẽ là tam giác nhọn.
Code tham khảo
#include<iostream> using namespace std; int main(){ int a, b, c; cout<<"Nhap vao canh a: "; cin>>a; cout<<"Nhap vao canh b: "; cin>>b; cout<<"Nhap vao canh c: "; cin>>c; if( a<b+c && b<a+c && c<a+b ){ if( a*a==b*b+c*c || b*b==a*a+c*c || c*c== a*a+b*b) cout<<"Day la tam giac vuong"; else if(a==b && b==c) cout<<"Day la tam giac deu"; else if(a==b || a==c || b==c) cout<<"Day la tam giac can"; else if(a*a > b*b+c*c || b*b > a*a+c*c || c*c > a*a+b*b) cout<<"Day la tam giac tu"; else cout<<"Day la tam giac nhon"; } else cout<<"Ba canh a, b, c khong phai la ba canh cua mot tam giac"; return 0; }
Sau khi chạy chương trình trên ta có kết quả sau
Nhap vao canh a: 3 Nhap vao canh b: 4 Nhap vao canh c: 5 Day la tam giac vuong
Bài viết của mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi !
Để lại một bình luận