Tính chu vi, diện tích hình tam giác trong C/C++

Tinh chu vi dien tich hinh tam giac
DANH SÁCH BÀI VIẾT
Vẽ hình tam giác trong lập trình C/C++
Vẽ hình vuông trong lập trình C/C++
Vẽ hình chữ nhật trong lập trình C/C++
Kiểm tra 3 cạnh nhập vào có tạo thành hình tam giác
Tính chu vi, diện tích hình tam giác trong C/C++
Tính chu vi diện tích hình tròn, thể tích hình cầu trong C/C++
Tính diện tích, thể tính hình lập phương trong lập trình C/C++
Tính diện tích, thể tích hình hộp chữ nhật trong lập trình C/C++
Tính diện tích, thể tích hình trụ tròn trong lập trình C/C++

Đây là một bài tập rất cơ bản giúp cho việc luyện tập code lập trình C/C++.

Tính chu vi, diện tích hình tam giác trong C/C++

Kiểm tra 3 cạnh nhập vào có tạo thành tam giác không

Để có thể tính được chu vi và diện tích thì trước tiên ta phải đảm bảo 3 cạnh nhập vào từ bàn phím phải là 3 cạnh của hình tam giác đã. Tính chất của hình tam giác thì với tổng bất kì 2 cạnh phải lớn hơn cạnh còn lại.

Như vậy ta có chương trình kiểm tra 3 cạnh nhập vào có tạo thành tam giác hay không như sau:

#include <stdio.h>
int main()
{
    int a, b, c;
    printf("Nhap lan luot 3 canh cua tam giac: ");
    scanf("%d %d %d", &a, &b, &c);
     
    if((a+b > c) &&  (a + c > b) && (c + b > a)){
        printf("3 canh tao thanh 1 hinh tam giac");
    }else{
        printf("3 canh khong the tao thanh 1 hinh tam giac");
    }
}

Mình sẽ viết hàm kiểm tra 3 cạnh có phải là tam giác không thành 1 hàm riêng.

#include <stdio.h>
#include <stdbool.h>
//Hàm kiểm tra 3 cạnh có tạo thanh tam giác không
bool kiemTra(int a, int b, int c){
//nếu tất cả trường hợp đúng trả về true
	if((a+b > c) &&  (a + c > b) && (c + b > a)){
		return true;
	}
	//Ngược lại trả về false
	return false;
}

int main()
{
    int a, b, c;
    printf("Nhap lan luot 3 canh cua tam giac: ");
    scanf("%d %d %d", &a, &b, &c);
     
    if(kiemTra(a,b,c)){
        printf("3 canh tao thanh 1 hinh tam giac");
    }else{
        printf("3 canh khong the tao thanh 1 hinh tam giac");
    }
}

Tính chu vi hình tam giác

Chu vi của tam giác thì đơn giản rồi, chỉ việc cộng 3 cạnh của tam giác lại với nhau là được chu vi hình tam giác.

Viết code C như sau:

#include <stdio.h>
int main()
{
    int a, b, c;
    printf("Nhap lan luot 3 canh cua tam giac: ");
    scanf("%d %d %d", &a, &b, &c);

    int P = a + b +c; //Tính chu vi
    printf("Chu vi hinh tam giac la: %d", P);
}

hoặc ta có thể viết hàm tính chu vi thành 1 hàm riêng.

#include <stdio.h>
//Hàm tính chu vi tam giác
int tinhChuVi(int a, int b, int c)
{
  return a+b+c; //Tính chu vi và trả về cho hàm
}

int main()
{
    int a, b, c;
    printf("Nhap lan luot 3 canh cua tam giac: ");
    scanf("%d %d %d", &a, &b, &c);
     
    int P= tinhChuVi(a,b,c); //Gọi hàm tính chu vi
    printf("Chu vi hinh tam giac la: %d", P);
}

Tính diện tích hình tam giác

Tính diện tích tam giác khi biết độ dài 3 cạnh, ta có công thức chung như sau(Công thức Heron):

Công thức tính diện tích tam giác

Với p chính là nửa chu vi của tam giác(Hàm tính chu vi ta đã có ở bên trên).

Vậy ta sẽ viết chương trình C như sau:

#include <stdio.h>
#include <stdbool.h>
#include <math.h>
//Hàm tính chu vi
int tinhChuVi(int a, int b, int c)
{
  return a+b+c;
}

int main()
{
    int a, b, c;
    printf("Nhap lan luot 3 canh cua tam giac: ");
    scanf("%d %d %d", &a, &b, &c);
     
    int P = tinhChuVi(a, b, c); //Tính chu vi
    float p = P/2.0; //Lấy nửa chu vi bằng cách lấy chu vi chia 2 (ghi 2.0 để ép kiểu kq về số thực)
    
//sqrt là hàm tính căn bậc 2
    float S = sqrt(p * (p-a) * (p-b) *(p-c));
    printf("Dien tich hinh tam giac la: %.2f", S);
}

Ta cũng sẽ viết hàm tính diện tích thành 1 hàm riêng

#include <stdio.h>
#include <stdbool.h>
#include <math.h>
//Hàm tính chu vi
int tinhChuVi(int a, int b, int c)
{
  return a+b+c;
}
//Hàm tính diện tích
float tinhDienTich(int a, int b, int c){
	int P = tinhChuVi(a, b, c);
    float p = P/2.0;
    
    float S = sqrt(p * (p-a) * (p-b) *(p-c));
    
    return S;
}
int main()
{
    int a, b, c;
    printf("Nhap lan luot 3 canh cua tam giac: ");
    scanf("%d %d %d", &a, &b, &c);
     
    float S = tinhDienTich(a,b,c); //Gọi hàm tính diện tích
    printf("Dien tich hinh tam giac la: %.2f", S);
}

Chương trình Tính chu vi, diện tích hình tam giác

Từ 3 ý trên ta có thể viết gộp lại thành 1 chương trình hoàn chỉnh sau:

#include <stdio.h>
#include <stdbool.h>
#include <math.h>
//Hamf kiem tra 3 cạnh có tạo thành tam giác
bool kiemTra(int a, int b, int c){
	if((a+b > c) &&  (a + c > b) && (c + b > a)){
		return true;
	}
	return false;
}
//Hàm tính chu vi
int tinhChuVi(int a, int b, int c)
{
  return a+b+c;
}
//Hàm tính diện tích
float tinhDienTich(int a, int b, int c){
	int P = tinhChuVi(a, b, c);
    float p = P/2.0;
    
    float S = sqrt(p * (p-a) * (p-b) *(p-c));
    
    return S;
}
int main()
{
    int a, b, c;
    printf("Nhap lan luot 3 canh cua tam giac: ");
    scanf("%d %d %d", &a, &b, &c);
     
    if(kiemTra(a,b,c) == false){
    	printf("3 canh khong tao thanh 1 hinh tam giac...");
    }else{
    	int P = tinhChuVi(a,b,c);
    	float S = tinhDienTich(a,b,c);
    	
    	printf("Chu vi hinh tam giac la: %d", P);
    	printf("\nDien tich hinh tam giac la: %.2f", S);
	}
}

Bạn chạy thử chương trình nhé!

[Xem tất cả bài viết chủ đề C/C++ tại đây]