000
07.07.2010, 10:23 Uhr
~Amateur
Gast
|
Hi zusammen
Ich habe ein Programm geschrieben, mit dem ich die Bahn des Massenpunktes bei einem 2D-Wurf berechnen kann. Der Output soll alle x- und y-Werte des Punktes zu jeder Zeit sowie die Zeit selber (i*dt) ausgeben.
Das Programm läuft endlich, nur gibt der Output die Werte in einer Reihe aus. Kann man das irgendwie ordnen, ich glaube ich habe es auch schon einmal geschafft, den Output in drei Spalten hinzubekommen.
Hier noch das Programm:
C++: |
#include <cstdlib> #include <stdio.h> #include <string> #include <windows.h> #include <iostream> #include <fstream> #include <math.h>
using namespace std; int main() { FILE *outp, *inp; int n; float dt;
inp=fopen("Inputn.txt","r"); fscanf(inp,"%i",&n); fclose(inp);
float *ax=new float[n]; float *vx=new float[n]; float *sx=new float[n]; float *ay=new float[n]; float *vy=new float[n]; float *sy=new float[n]; float sx0; float sy0; float Alpha; float ObereGrenze; float Veraenderungt; float mB; float rB; float v0;
//{ inp=fopen("Input.txt","r"); fscanf(inp,"%f %f %f %f %f",&dt,&sx0,&sy0,&v0,&Alpha); fclose(inp);
Alpha=Alpha*3.14159265/180;
ax[0]=0; ay[0]=-9.81; vx[0]=v0*cos(Alpha); vy[0]=v0*sin(Alpha); sx[0]=sx0; sy[0]=sy0;
for (int i=0; i<n-1; i++) {
ax[i+1]=0; ay[i+1]=-9.81; vx[i+1]=vx[i]+ax[i]*dt; vy[i+1]=vy[i]+ay[i]*dt; sx[i+1]=sx[i]+vx[i]*dt; sy[i+1]=sy[i]+vy[i]*dt;
}
outp=fopen("Output.txt","w");
for (int i=1; i<n; i++) { fprintf(outp,"%f %f %f",i*dt,sx[i],sy[i]); } fclose(outp);
cout<<"Ende \n\n";
delete[] ax; delete[] ay; delete[] vx; delete[] vy; delete[] sx; delete[] sy;
return 0; }
|
|