Code C\C++: Sử dụng struct trong hình không gian
/*
Viết chương trình:
-
Nhập vào
tọa độ 3 điểm A,B,C trong không gian
-
Kiểm tra
tính thẳng hàng của A,B,C
-
Nếu A,B,C
không thẳng hàng thì tìm tọa độ trọng tâm G của
-
Ghi tọa độ
A,B,C và tọa độ trọng tâm tam giác ABC vào file có tên là TamGiac.txt trong ổ
đĩa E:\
*/
#include<stdio.h>
#include<conio.h>
#include<math.h>
// khai bao cau truc
struct ToaDo{
float x,y,z;
};
ToaDo A,B,C; // khai bao 3 bien có kiem la ToaDo
// nhap toa do
void Nhap(){
printf("\n Nhap toa do diem A: ");
printf("\n x : "); scanf("%f",&A.x);
printf("\n y : "); scanf("%f",&A.y);
printf("\n z : "); scanf("%f",&A.z);
printf("\n Nhap toa do diem B: ");
printf("\n x : "); scanf("%f",&B.x);
printf("\n y : "); scanf("%f",&B.y);
printf("\n z : "); scanf("%f",&B.z);
printf("\n Nhap toa do diem C: ");
printf("\n x : "); scanf("%f",&C.x);
printf("\n y : "); scanf("%f",&C.y);
printf("\n z : "); scanf("%f",&C.z);
}
// kiem tra tinh thang hang
int KiemTraThangHang(){
float d1=sqrt((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y)+(A.z-B.z)*(A.z-B.z));//AB
float d2=sqrt((A.x-C.x)*(A.x-C.x)+(A.y-C.y)*(A.y-C.y)+(A.z-C.z)*(A.z-C.z));//AC
float d3=sqrt((C.x-B.x)*(C.x-B.x)+(C.y-B.y)*(C.y-B.y)+(C.z-B.z)*(C.z-B.z));//BC
if (d1+d2==d3||d1+d3==d2||d2+d3==d1)
return 1; // thang hang
return 0;// khong thang hang
}
// chu vi, dien tich tam giac
void ChuVi_DienTich(){
if(KiemTraThangHang()==1) printf("\n 3 diem A,B,C thang hang");
else {
float d1=sqrt((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y)+(A.z-B.z)*(A.z-B.z));
float d2=sqrt((A.x-C.x)*(A.x-C.x)+(A.y-C.y)*(A.y-C.y)+(A.z-C.z)*(A.z-C.z));
float d3=sqrt((C.x-B.x)*(C.x-B.x)+(C.y-B.y)*(C.y-B.y)+(C.z-B.z)*(C.z-B.z));
// chu vi
float c=d1+d2+d3;
// dien tich
float p=c/2;
float s=sqrt(p*(p-d1)*(p-d2)*(p-d3));
printf("\n Chu vi = %f ; Dien tich = %f ",c,s);
}
}
// Tinh toa do trong tam G
ToaDo TrongTam(){
ToaDo G;
G.x=(A.x+B.x+C.x)/3;
G.y=(A.y+B.y+C.y)/3;
G.z=(A.z+B.z+C.z)/3;
return G;
}
// GHI VAO FILE
void GhiFile(){
FILE *f;
f=fopen("E:\\TamGiac.txt","w");
fwrite(&A,sizeof(A),1,f);
fwrite(&B,sizeof(B),1,f);
fwrite(&C,sizeof(C),1,f);
fclose(f);
}
int main(){
Nhap();
ChuVi_DienTich();
printf("\n Toa do trong tam G:(%f,%f,%f)",TrongTam().x,TrongTam().y,TrongTam().z );
GhiFile();
getch();
return 0;
}
* Có thể bạn quan tâm:
- Những cuốn sách mà các bạn không thể bỏ qua khi còn trẻ
- Khoá học tin học văn phòng tốt nhất
Chúc các bạn thành công!