Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <fstream>
- #include <math.h>
- using namespace std;
- int main ()
- {
- double x1, y1, z1, x2, y2, z2, x3, y3, z3, R1, R2, R3, G=6.67191*pow(10,-11), eps, eps0;
- double Vx1, Vy1, Vz1, Vx2, Vy2, Vz2, Vx3, Vy3, Vz3, ax1, ay1, az1, ax2, ay2, az2, ax3, ay3, az3, m1, m2, m3, a1, a2, a3, V1, V2, V3;
- double delta_t, t_nach, t_konech, t=0, R11, R21, R31, R12, R22, R32;
- int N, i, j, shag=0;
- ifstream vvod ("vvod.txt");
- vvod>>m1>>x1>>y1>>z1>>R1>>Vx1>>Vy1>>Vz1>>m2>>x2>>y2>>z2>>R2>>Vx2>>Vy2>>Vz2>>m3>>x3>>y3>>z3>>R3>>Vx3>>Vy3>>Vz3>>delta_t>>t_nach>>t_konech>>eps0;
- ofstream koordinatii ("koorfinatii.txt");
- ofstream skorosti ("skorosti.txt");
- ofstream yskoreniia ("yskoreniia.txt");
- do
- {
- N=(t_konech-t_nach)/delta_t+1;
- for(i=0;i<N;i++)
- {
- ax1=G*m2*(x2-x1)/(fabs(pow(x2-x1,3)))+G*m3*(x3-x1)/(fabs(pow(x3-x1,3)));
- ay1=G*m2*(y2-y1)/(fabs(pow(y2-y1,3)))+G*m3*(y3-y1)/(fabs(pow(y3-y1,3)));
- az1=G*m2*(z2-z1)/(fabs(pow(z2-z1,3)))+G*m3*(z3-z1)/(fabs(pow(z3-z1,3)));
- a1=sqrt(ax1*ax1+ay1*(ay1)+az1*(az1));
- ax2=G*m1*(x1-x2)/(fabs(pow(x1-x2,3)))+G*m3*(x3-x2)/(fabs(pow(x3-x2,3)));
- ay2=G*m1*(y1-y2)/(fabs(pow(y1-y2,3)))+G*m3*(y3-y2)/(fabs(pow(y3-y2,3)));
- az2=G*m1*(z1-z2)/(fabs(pow(z1-z2,3)))+G*m3*(z3-z2)/(fabs(pow(z3-z2,3)));
- a2=sqrt(ax2*(ax2)+ay2*(ay2)+az2*(az2));
- ax3=G*m1*(x1-x3)/(fabs(pow(x1-x3,3)))+G*m2*(x2-x3)/(fabs(pow(x2-x3,3)));
- ay3=G*m1*(y1-y3)/(fabs(pow(y1-y3,3)))+G*m2*(y2-y3)/(fabs(pow(y2-y3,3)));
- az3=G*m1*(z1-z3)/(fabs(pow(z1-z3,3)))+G*m2*(z2-z3)/(fabs(pow(z2-z3,3)));
- a3=sqrt(ax3*(ax3)+ay3*(ay3)+az3*(az3));
- yskoreniia<<a1<<'\t'<<a2<<'\t'<<a3<<endl;
- x1+=Vx1*delta_t+ax1*delta_t*(delta_t)/2;
- y1+=Vy1*delta_t+ay1*delta_t*(delta_t)/2;
- z1+=Vz1*delta_t+az1*delta_t*(delta_t)/2;
- x2+=Vx2*delta_t+ax2*delta_t*(delta_t)/2;
- y2+=Vy2*delta_t+ay2*delta_t*(delta_t)/2;
- z2+=Vz2*delta_t+az2*delta_t*(delta_t)/2;
- x3+=Vx3*delta_t+ax3*delta_t*(delta_t)/2;
- y3+=Vy3*delta_t+ay3*delta_t*(delta_t)/2;
- z3+=Vz3*delta_t+az3*delta_t*(delta_t)/2;
- koordinatii<<x1<<'/t'<<y1<<'/t'<<z1<<'/t'<<x2<<'/t'<<y2<<'/t'<<z2<<'/t'<<x3<<'/t'<<y3<<'/t'<<z3<<'/t'<<endl;
- Vx1+=ax1*delta_t;
- Vy1+=ay1*delta_t;
- Vz1+=az1*delta_t;
- V1=sqrt(Vx1*(Vx1)+Vy1*(Vy1)+Vz1*(Vz1));
- Vx2+=ax2*delta_t;
- Vy2+=ay2*delta_t;
- Vz2+=az2*delta_t;
- V2=sqrt(Vx2*(Vx2)+Vy2*(Vy2)+Vz2*(Vz2));
- Vx3+=ax3*delta_t;
- Vy3+=ay3*delta_t;
- Vz3+=az3*delta_t;
- V3=sqrt(Vx3*(Vx3)+Vy3*(Vy3)+Vz3*(Vz3));
- skorosti<<V1<<'/t'<<V2<<'/t'<<V3<<endl;
- if(sqrt(pow(x1-x2,2)+pow(y1-y2,2)+pow(z1-z2,2))<=(R1+R2))
- {
- cout<<"Tela 1 i 2 stolknylis'";
- i=N;
- }
- else
- {
- if(sqrt(pow(x1-x3,2)+pow(y1-y3,2)+pow(z1-z3,2))<=(R1+R3))
- {
- cout<<"Tela 1 i 3 stolknylis'";
- i=N;
- }
- else
- {
- if(sqrt(pow(x2-x3,2)+pow(y2-y3,2)+pow(z2-z3,2))<=(R2+R3))
- {
- cout<<"Tela 2 i 3 stolknylis'";
- i=N;
- }
- }
- }
- shag++;
- cout<<shag<<endl;
- }
- R11=sqrt(pow(x1,2)+pow(y1,2)+pow(z1,2));
- R21=sqrt(pow(x2,2)+pow(y2,2)+pow(z2,2));
- R31=sqrt(pow(x3,2)+pow(y3,2)+pow(z3,2));
- delta_t=delta_t/2;
- N=(t_konech-t_nach)/delta_t+1;
- for(i=0;i<N;i++)
- {
- ax1=G*m2*(x2-x1)/(fabs(pow(x2-x1,3)))+G*m3*(x3-x1)/(fabs(pow(x3-x1,3)));
- ay1=G*m2*(y2-y1)/(fabs(pow(y2-y1,3)))+G*m3*(y3-y1)/(fabs(pow(y3-y1,3)));
- az1=G*m2*(z2-z1)/(fabs(pow(z2-z1,3)))+G*m3*(z3-z1)/(fabs(pow(z3-z1,3)));
- a1=sqrt(ax1*ax1+ay1*(ay1)+az1*(az1));
- ax2=G*m1*(x1-x2)/(fabs(pow(x1-x2,3)))+G*m3*(x3-x2)/(fabs(pow(x3-x2,3)));
- ay2=G*m1*(y1-y2)/(fabs(pow(y1-y2,3)))+G*m3*(y3-y2)/(fabs(pow(y3-y2,3)));
- az2=G*m1*(z1-z2)/(fabs(pow(z1-z2,3)))+G*m3*(z3-z2)/(fabs(pow(z3-z2,3)));
- a2=sqrt(ax2*(ax2)+ay2*(ay2)+az2*(az2));
- ax3=G*m1*(x1-x3)/(fabs(pow(x1-x3,3)))+G*m2*(x2-x3)/(fabs(pow(x2-x3,3)));
- ay3=G*m1*(y1-y3)/(fabs(pow(y1-y3,3)))+G*m2*(y2-y3)/(fabs(pow(y2-y3,3)));
- az3=G*m1*(z1-z3)/(fabs(pow(z1-z3,3)))+G*m2*(z2-z3)/(fabs(pow(z2-z3,3)));
- a3=sqrt(ax3*(ax3)+ay3*(ay3)+az3*(az3));
- yskoreniia<<a1<<'\t'<<a2<<'\t'<<a3<<endl;
- x1+=Vx1*delta_t+ax1*delta_t*(delta_t)/2;
- y1+=Vy1*delta_t+ay1*delta_t*(delta_t)/2;
- z1+=Vz1*delta_t+az1*delta_t*(delta_t)/2;
- x2+=Vx2*delta_t+ax2*delta_t*(delta_t)/2;
- y2+=Vy2*delta_t+ay2*delta_t*(delta_t)/2;
- z2+=Vz2*delta_t+az2*delta_t*(delta_t)/2;
- x3+=Vx3*delta_t+ax3*delta_t*(delta_t)/2;
- y3+=Vy3*delta_t+ay3*delta_t*(delta_t)/2;
- z3+=Vz3*delta_t+az3*delta_t*(delta_t)/2;
- koordinatii<<x1<<'/t'<<y1<<'/t'<<z1<<'/t'<<x2<<'/t'<<y2<<'/t'<<z2<<'/t'<<x3<<'/t'<<y3<<'/t'<<z3<<'/t'<<endl;
- Vx1+=ax1*delta_t;
- Vy1+=ay1*delta_t;
- Vz1+=az1*delta_t;
- V1=sqrt(Vx1*(Vx1)+Vy1*(Vy1)+Vz1*(Vz1));
- Vx2+=ax2*delta_t;
- Vy2+=ay2*delta_t;
- Vz2+=az2*delta_t;
- V2=sqrt(Vx2*(Vx2)+Vy2*(Vy2)+Vz2*(Vz2));
- Vx3+=ax3*delta_t;
- Vy3+=ay3*delta_t;
- Vz3+=az3*delta_t;
- V3=sqrt(Vx3*(Vx3)+Vy3*(Vy3)+Vz3*(Vz3));
- skorosti<<V1<<'/t'<<V2<<'/t'<<V3<<endl;
- if(sqrt(pow(x1-x2,2)+pow(y1-y2,2)+pow(z1-z2,2))<=(R1+R2))
- {
- cout<<"Tela 1 i 2 stolknylis'";
- i=N;
- }
- else
- {
- if(sqrt(pow(x1-x3,2)+pow(y1-y3,2)+pow(z1-z3,2))<=(R1+R3))
- {
- cout<<"Tela 1 i 3 stolknylis'";
- i=N;
- }
- else
- {
- if(sqrt(pow(x2-x3,2)+pow(y2-y3,2)+pow(z2-z3,2))<=(R2+R3))
- {
- cout<<"Tela 2 i 3 stolknylis'";
- i=N;
- }
- }
- }
- }
- R12=sqrt(pow(x1,2)+pow(y1,2)+pow(z1,2));
- R22=sqrt(pow(x2,2)+pow(y2,2)+pow(z2,2));
- R32=sqrt(pow(x3,2)+pow(y3,2)+pow(z3,2));
- eps=fabs((R11-R12)/R12)+fabs((R21-R22)/R22)+fabs((R31-R32)/R32);
- }while (eps>eps0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment