Xác định loại tam giác từ 3 cạnh nhập vào | How Kteam

Bài toán cần xử lý

Viết chương trình nhập vào ba số a, b, c. Nếu a, b, c là ba cạnh của một tam giác thì kiểm tra và hiển thị ra màn hình loại của tam giác.

Kiến thức cần có

  • Hàm input() và hàm print()
  • Cấu trúc rẽ nhánh trong Python
  • Biến và kiểu dữ liệu

Định dạng đầu vào

Gồm một dòng duy nhất chưa ba số a, b, c cách nhau bởi khoảng trắng.

Định dạng đầu ra

Gồm một dòng duy nhất hiển thị như sau:

Nếu a, b, c là ba cạnh của một tam giác: {a}, {b}, {c} la ba canh cua mot tam giac {loai}

Nếu a, b, c không là ba cạnh của một tam giác: {a}, {b}, {c} khong phai la ba canh cua mot tam giac

Với:

  • {a}, {b}, {c} là ba số nhập vào từ bàn phím
  • {loai} thuộc một trong các loại [‘vuong’, ‘can’, ‘deu’, ‘tu’, ‘nhon’]

Ví dụ

  • Input 1:
10 15.6 20.55
  • Output 1:
10, 15.6, 20.55 la ba canh cua mot tam giac tu

  • Input 2:
2 6 5.7
  • Output 2:
2.0, 6.0, 5.7 la ba canh cua mot tam giac nhon

  • Input 3:
5.7 8 5.7
  • Output 3:
5.7, 8.0, 5.7 la ba canh cua mot tam giac can

  • Input 4:
3 4 5
  • Output 4:
3.0, 4.0, 5.0 la ba canh cua mot tam giac vuong

  • Input 5:
12.75 12.75 12.75
  • Output 5:
12.75, 12.75, 12.75 la ba canh cua mot tam giac deu

  • Input 6:
10 2 5.5
  • Output 6:
10, 2, 5.5 khong phai la ba canh cua mot tam giac

Gợi ý

  • Dùng hàm input() và hàm split() để nhận số đo ba cạnh a, b, c từ bàn phím.
  • Ép kiểu dữ liệu của a, b, c sang số thực để xử lý cho chính xác vì các giá trị nhận được từ hàm
    input() mặc định sẽ ở kiểu chuỗi.
  • Dùng cấu trúc rẽ nhánh if … else với điều kiện phù hợp để giải quyết yêu cầu của bải toán.
  • Thuật 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à a+c>b và b+c>a.
  • 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. Ta kiểm tra điều kiện: a*a==b*b+c*c hoặc b*b==a*a+c*c hoặc c*c== a*a+b*b
  • Tam giác đều là tam giác có ba cạnh bằng nhau. Ta kiểm tra điều kiện a==b và b==c
  • Tam giác cân là tam giác có hai cạnh bằng nhau. Ta kiểm tra điều kiện: a==b hoặc a==c hoặc b==c
  • Tam giác tù là tam giác có một góc lớn hơn 90 độ. Từ điều kiện kiểm tra tam giác vuông, ta suy ra điều kiện để là tam giác tù là: a*a>b*b+c*c hoặc b*b>a*a+c*c hoặc c*c >a*a+b*b
  • Trường hợp còn lại sẽ là tam giác nhọn.
  • Dùng hàm print() để xuất thông báo theo yêu cầu.

Code mẫu

#Nhap so do ba canh tu ban phim
#Su dung ham map() va float de ep kieu du lieu sang so thuc
a, b, c = map(float, input().split())

#Dung cau lenh re nhanh de kiem tra dieu kien cac tam giac
#Kiem tra dieu kien la ba canh cua tam giac
if a+b>c and a+c>b and b+c>a:
   #Kiem tra tam giac vuong
   if a*a==b*b+c*c or b*b==a*a+c*c or c*c==a*a+b*b:
       loaiTamGiac = 'vuong'
   #Kiem tra tam giac deu
   elif a==b and b==c:
       loaiTamGiac = 'deu'
   #Kiem tra tam giac can
   elif a==b or a==c or b==c:
       loaiTamGiac = 'can'
   #Kiem tra tam giac tu
   elif a*a > b*b+c*c or b*b > a*a+c*c or c*c > a*a+b*b:   
       loaiTamGiac = 'tu'
   #Cac truong hop con lai la tam giac nhon
   else:
       loaiTamGiac = 'nhon'
   #Xuat thong bao theo yeu cau
   print('{}, {}, {} la ba canh cua mot tam giac {}'.format(a, b, c, loaiTamGiac))
else:
   print("{}, {}, {} khong phai la ba canh cua mot tam giac".format(a, b, c))

Kết luận

Trong bài này, Kteam đã hướng dẫn bạn cách viết chương trình nhập vào ba số a, b, c. Nếu a, b, c là ba cạnh của một tam giác thì kiểm tra và hiển thị ra màn hình loại của tam giác.

Ở bài tiếp theo, chúng ta sẽ cũng nhau học cách NHẬP VÀ KIỂM TRA BA SỐ A, B, C LÀ BA CẠNH CỦA MỘT TAM GIÁC GÌ? (CÓ XỬ LÝ NGOẠI LỆ ĐẦU VÀO).

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của bạn để phát triển bài viết tốt hơn. Đừng quên ”
Luyện tập – Thử Thách – Không ngại khó!

Tải xuống

Project

Nếu việc thực hành theo hướng dẫn không diễn ra suôn sẻ như mong muốn. Bạn cũng có thể tải xuống PROJECT THAM KHẢO ở link bên dưới!

Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.