пыталась и так и сяк, не получается( Надо создать диалоговые окна в Qt:1 окно) введите количество тетраэдров; 2) координаты вершин; 3) вывод по возрастанию из объемов. вот код, где находится и выводится объемы тетраэдров. есть уже готовая программа на с++.вот код:
#include <iostream>
#include <stdio.h>
#include <locale>
#include <math.h>
using namespace std;
class pset
{ public:
float x,y,z;
void input()
{
cout <<"x=";
cin>>x;
cout<<"y=";
cin>>y;
cout << "z=";
cin >> z;
}
void output()
{
cout<<"("<<x<<","<<y<<","<<z<<")";
}
};
class tetr
{ public:
pset A, B, C, D;
void input()
{
cout<<"введите вершины тетраэдра "<<endl;
A.input();
B.input();
C.input();
D.input();
}
void output()
{
cout <<"[";
A.output();
B.output();
C.output();
D.output();
cout << "]";
}
float V ()
{
return abs(((B.x-A.x)*(C.y-A.y)*(D.z-A.z))+((D.x-A.x)*(B.y-A.y)*(C.z-A.z))+((C.x-A.x)*(D.y-A.y)*(B.z-A.z))-((D.x-A.x)*(C.y-A.y)*(B.z-A.z))-((C.x-A.x)*(B.y-A.y)*(D.z-A.z))-((B.x-A.x)*(D.y-A.y)*(C.z-A.z)))/6;
}
};
void main()
{
setlocale(LC_ALL,"RUS");
int N;
tetr **A;
cout<<"введите количество тетраэдров"<<endl;
cin>>N;
A=new tetr *[N];
for(int i=0; i<N; i++)
{
A[i]=new tetr;
A[i]->input();
}
int flag=1; tetr *B;
while(flag)
{
flag=0;
for(int i=0;i<N-1; i++)
{
if(A[i]->V()>A[i+1]->V())
{
B=A[i];
A[i]=A[i+1];
A[i+1]=B;
flag=1;
}
}
}
for(int i=0;i<N;i++)
{
A[i]->output();
cout <<"\n";
cout <<"\n V="<<A[i]->V();
}
system("pause");
}