Cho cấu trúc dữ liệu Diem2D được mô tả như sau:
struct Diem2D
{
float iX;
float iY;
};
Thực hiện các yêu cầu sau:
1. Viết hàm Nhập và Xuất Diem2D
2. Viết hàm Tính khoảng cách giữa 2 điểm A và B
3. Viết hàm tính chu vi và diện tích của tam giác được thành từ 3 điểm A, B, C
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define MAX 100
typedef struct Diem2D
{
float iX;
float iY;
};
void NhapDiem(Diem2D &A);
void XuatDiem(Diem2D A);
float KhoangCach(Diem2D A, Diem2D B);
int TinhDienTichVaChuVi(Diem2D A, Diem2D B, Diem2D C);
#include "MangBt03.h"
void NhapDiem(Diem2D &A)
{
printf("Nhap hoanh do :"); scanf_s("%f", &A.iX);
printf("Nhap tung do :"); scanf_s("%f", &A.iY);
}
void XuatDiem(Diem2D A)
{
printf("\nToa do diem : (%.2f ; %.2f)\n", A.iX, A.iY);
}
float KhoangCach(Diem2D A, Diem2D B)
{
float a1 = pow(A.iX - B.iX, 2), a2 = pow(A.iY - B.iY, 2);
float a = sqrt(a1 + a2);
return a;
}
int KiemTra(float a, float b, float c)
{
int kt = 1;
if (a + b > c && a + c > b && b + a > a)
kt = 1;
else kt = 0;
return kt;
}
int TinhDienTichVaChuVi(Diem2D A, Diem2D B, Diem2D C)
{
int hi;
float a, b, c;
a = KhoangCach(B,C); b = KhoangCach(A,C); c = KhoangCach(A,B);
if (KiemTra(a, b, c))
{
hi = 0;
float P, S, p;
P = a + b + c; printf("Chu vi tam giac ABC: %f", P);
p = P / 2;
float x = p - a, y = p - b, z = p - c;
S = sqrt(p*x*y*z);
printf("\nDien tich tam giac ABC: %f\n", S);
}
else
{
printf("3 diem da nhap khong phai la 3 dinh cua tam giac. Moi nhap lai 3 diems:\n");
hi = 1;
}
return hi;
}
#include "MangBt03.h"
void main()
{
printf("An phim 1: Chon cau 1\nAn phim 2: Chon cau 2\nAn phim 3: Chon cau 3");
int luachon; printf("\nNhap lua chon: "); scanf_s("%d", &luachon);
switch (luachon)
{
case 1:
Diem2D X;
printf("Nhap diem \n");
NhapDiem(X);
XuatDiem(X);
break;
case 2:
Diem2D Y, Z;
printf("Nhap diem A\n");
NhapDiem(Y);
printf("Nhap diem B\n");
NhapDiem(Z);
printf("Khoang cach 2 diem A,B: %f\n", KhoangCach(Y, Z));
break;
case 3:
Diem2D A, B, C;
do
{
printf("Nhap diem A\n");
NhapDiem(A);
printf("Nhap diem B\n");
NhapDiem(B);
printf("Nhap diem C\n");
NhapDiem(C);
} while (TinhDienTichVaChuVi(A, B, C));
break;
}
}
struct Diem2D
{
float iX;
float iY;
};
Thực hiện các yêu cầu sau:
1. Viết hàm Nhập và Xuất Diem2D
2. Viết hàm Tính khoảng cách giữa 2 điểm A và B
3. Viết hàm tính chu vi và diện tích của tam giác được thành từ 3 điểm A, B, C
- file header
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define MAX 100
typedef struct Diem2D
{
float iX;
float iY;
};
void NhapDiem(Diem2D &A);
void XuatDiem(Diem2D A);
float KhoangCach(Diem2D A, Diem2D B);
int TinhDienTichVaChuVi(Diem2D A, Diem2D B, Diem2D C);
- Mô tả header
#include "MangBt03.h"
void NhapDiem(Diem2D &A)
{
printf("Nhap hoanh do :"); scanf_s("%f", &A.iX);
printf("Nhap tung do :"); scanf_s("%f", &A.iY);
}
void XuatDiem(Diem2D A)
{
printf("\nToa do diem : (%.2f ; %.2f)\n", A.iX, A.iY);
}
float KhoangCach(Diem2D A, Diem2D B)
{
float a1 = pow(A.iX - B.iX, 2), a2 = pow(A.iY - B.iY, 2);
float a = sqrt(a1 + a2);
return a;
}
int KiemTra(float a, float b, float c)
{
int kt = 1;
if (a + b > c && a + c > b && b + a > a)
kt = 1;
else kt = 0;
return kt;
}
int TinhDienTichVaChuVi(Diem2D A, Diem2D B, Diem2D C)
{
int hi;
float a, b, c;
a = KhoangCach(B,C); b = KhoangCach(A,C); c = KhoangCach(A,B);
if (KiemTra(a, b, c))
{
hi = 0;
float P, S, p;
P = a + b + c; printf("Chu vi tam giac ABC: %f", P);
p = P / 2;
float x = p - a, y = p - b, z = p - c;
S = sqrt(p*x*y*z);
printf("\nDien tich tam giac ABC: %f\n", S);
}
else
{
printf("3 diem da nhap khong phai la 3 dinh cua tam giac. Moi nhap lai 3 diems:\n");
hi = 1;
}
return hi;
}
- Hàm main
#include "MangBt03.h"
void main()
{
printf("An phim 1: Chon cau 1\nAn phim 2: Chon cau 2\nAn phim 3: Chon cau 3");
int luachon; printf("\nNhap lua chon: "); scanf_s("%d", &luachon);
switch (luachon)
{
case 1:
Diem2D X;
printf("Nhap diem \n");
NhapDiem(X);
XuatDiem(X);
break;
case 2:
Diem2D Y, Z;
printf("Nhap diem A\n");
NhapDiem(Y);
printf("Nhap diem B\n");
NhapDiem(Z);
printf("Khoang cach 2 diem A,B: %f\n", KhoangCach(Y, Z));
break;
case 3:
Diem2D A, B, C;
do
{
printf("Nhap diem A\n");
NhapDiem(A);
printf("Nhap diem B\n");
NhapDiem(B);
printf("Nhap diem C\n");
NhapDiem(C);
} while (TinhDienTichVaChuVi(A, B, C));
break;
}
}