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

Bài tập Python tự luyện

4.5 (2 đánh giá)
Tạo bởi Kteam Cập nhật lần cuối 3 năm trước 115.930 lượt xem 23 bình luận
Tác giả/Dịch giả: TrongPhuCBL49 Kteam
Học nhanh

Danh sách bài học

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

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:
  • Output 1:
  • Input 2:
  • Output 2:
  • Input 3:
  • Output 3:
  • Input 4:
  • Output 4:
  • Input 5:
  • Output 5:
  • Input 6:
  • Output 6:

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


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

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Xác định loại tam giác từ 3 cạnh nhập vào dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên likeshare để ủng hộ Kteam và tác giả nhé!

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.

Tác giả/Dịch giả

Có niềm đam mê với thuật toán và tư duy logic. Là người cầu toàn, thích lập kế hoạch và tối ưu mọi vấn đề trong cuộc sống. Mong muốn luôn sống vui vẻ yêu đời =))) không bon chen.

Sở thích cá nhân: Đàn ca nhảy múa và đi du lịch.


Khóa học

Bài tập Python tự luyện

Serial dành cho những bạn cần luyện tập phương pháp, tu duy lập trình. Làm quen với các bài toán trong lập trình, ngẫu nhiên từ cơ bản đến nâng cao. Nội dung Serial này được phân tách chi tiết nhất có thể, nhằm giúp các bạn dễ hiểuthực hành được ngay.

Bạn nên tự làm lại từng bài tập trên video để có kết quả tốt nhất. Cùng Kteam "Luyện tập - Thử thách - không ngại khó"

Đánh giá

TankAnk đã đánh giá 4 năm trước

staminablossom đã đánh giá 4 năm trước

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
duclm3 đã bình luận 9 tháng trước

import math

while True:

    try:

        a,b,c = map(float, input("Nhap vao 3 canh: ").split())

        if a+b>c and a+c>b and b+c>a:

            if math.pow(a,2)==(math.pow(b, 2)+math.pow(c, 2)) or math.pow(b, 2)==(math.pow(a, 2)+math.pow(c, 2)) or math.pow(c, 2)==(math.pow(a, 2)+math.pow(b, 2)):

                print(f"Ba số {a} {b} {c} tạo thành tam giác vuông")

            elif a == b == c:

                print(f"Ba số {a} {b} {c} tạo thành tam giác đều")

            elif a == b or a ==c or b == c:

                print(f"Ba số {a} {b} {c} tạo thành tam giác cân")

            elif math.pow(a, 2)>math.pow(b, 2)+math.pow(c, 2) or math.pow(b, 2)>math.pow(a, 2)+math.pow(c, 2) or math.pow(c, 2)>math.pow(a, 2)+math.pow(b, 2):

                print(f"Ba số {a} {b} {c} tạo thành tam giác tù")

            else:

                print(f"Ba số {a} {b} {c} tạo thành tam giác nhọn")

        else:

            print(f"Ba số {a} {b} {c} không tạo thành tam giác")

    except:

        print("Yêu cầu nhập đúng số liệu")

        break

 

kakavan đã bình luận 9 tháng trước

a,b,c = map(float,input("Nhập a,b,c: ").split())

con1 = a*a == b*b + c*c or b*b == a*a + c*c or c*c == a*a + b*b
con2 = a == b == c
con3 = a == b or a == c or b == c
con4 = a*a > b*b + c*c or b*b > a*a + c*c or c*c > a*a + b*b

if a + b > c and a + c > b and b + c > a:
    if con1:
        triangle = 'vuông'
    elif con2:
        triangle = 'đều'
    elif con3:
        triangle = "cân"
    elif con4:
        triangle = 'tù'
    else:
        triangle = "nhọn"
    print("{}, {}, {} là ba cạnh của 1 tam giác {}".format(a,b,c,triangle))        
else:
    print("{}, {}, {} không phải là ba cạnh của 1 tam giác".format(a,b,c))

hungvu1997 đã bình luận 2 năm trước

def istriangle(_a, _b, _c) -> bool:
    maxx = max(_a, _b, _c)
    tong = _a + _b + _c
    if tong - maxx > maxx:
        return True
    return False


def issquaretriangle(_a, _b, _c) -> int:
    maxx = max(_a, _b, _c)
    maxx2 = maxx * maxx
    tong = _a*_a + _b*_b + _c*_c
    if tong == 2 * maxx2:
        return 0
    elif tong < 2 * maxx2:
        return 1
    else:
        return -1


while True:
    try:
        a, b, c = map(float, input().strip().split(' '))
        if not istriangle(a, b, c):
            print(f'{a}, {b}, {c} khong phai la mot tam giac')
        else:
            if a == b == c:
                print(f'{a}, {b}, {c} la mot tam giac deu')
           elif a == b or a == c or b == c:
               if issquaretriangle(a, b, c) == 0:
                   print(f'{a}, {b}, {c} la mot tam giac vuong can')
               else:
                   print(f'{a}, {b}, {c} la mot tam giac can')
           else:
                result = issquaretriangle(a, b, c)
                if result == 0:                   
                    print(f'{a}, {b}, {c} la mot tam giac vuong')
                elif result < 0:
                    print(f'{a}, {b}, {c} la mot tam giac nhon')
                else:
                    print(f'{a}, {b}, {c} la mot tam giac tu')
    except Exception:
        print('Loi nhap du lieu.')

TayMonKhanh đã bình luận 2 năm trước

a,b,c=map(float,input('Nhập ba cạnh của tam giác: ').split())

if a+b>c and a+c>b and b+c>a:

    if a==b or a==c or b==c:

        ketqua='tam giác cân'

    elif a==b==c:

        ketqua='tam giác đều'

    elif a*a==b*b+c*c or a*a+b*b==c*c or b*b==a*a+c*c:

        ketqua='tam giác vuông'

    elif a*a>b*b+c*c or c*c>a*a+b*b or b*b>a*a+c*c:

        ketqua='tam giác tù'

    elif a*a<b*b+c*c or c*c<a*a+b*b or b*b<a*a+c*c:

        ketqua='tam giác nhọn'

    print(f'{a} {b} {c} là 3 cạnh của 1 '+ ketqua)

else:

    print('Đây không phải là cạnh của tam giác')

bachhoclaptrinhdayquyettam :)) đã bình luận 2 năm trước
	a,b,c = map(float, input("").split())
	if a+b-c>0 and a-b+c>0 and -a+b+c>0:
		if a==b==c:
			print("tg deu")
		elif a==b or a==c or b==c:
			print("tg can")
		elif a**2 + b**2 - c**2 ==0 or a**2 - b**2 + c**2 ==0 or - a**2 + b**2 + c**2 ==0:
			if a==b or a==c or b==c:
				print("tg vuong can")
			else:
				print("tg vuong")
		else:
			if a**2 + b**2 - c**2 <0 or a**2 - b**2 + c**2 <0 or - a**2 + b**2 + c**2 <0:
				print("tg tu")
			else:
				print("tg nhon")
		
	else:
		print("khong phai tg")

 

Không có video.