Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
hat ja schon jemand gepostet...sorry jungs *zudummbin*
ich will euch superhirne ja nicht enttäuschen, aber wenn ich in physik aufgepasst hab, dann bewegen sich die planeten in eliptischen bahnen um die sonne.weiters sind sie in sonnennähe schneller...das heißt was ihr hier berechnet, mag vielleicht ne gute übung sein, hat mit der realität aber rein gar nix zu tun...
Die Planeten haben aber keine konstante geschwindigkeit.Sie werden je näher sie an der sonne sind beschleunigt und in den raum geschossen.dort werden sie durch die anziehungskraft der sonne gebremst.irgendwann sind sie zu langsam und die sonne zieht sie wieder an.dabei beschleunigen sie wieder.wir sprechen hier also nicht von einer gleichförmigen translation.also kann man auch die geschwindigkeit nicht GENAU angeben.(ka wie groß die abweichungen sind)
2. natürlich ist die Aufgabe nicht exakt, aber es ist eine Aufgabe
als Ausgangspunkt nehmen wir eben für die Planetenbahnen Kreise und für ihre Bewegung eine gleichförmige Geschwindigkeit an
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define pi 3.141592654
#define ae 149600000 //in km;; ae=astronomische einheit
#define tag 24*3600 //in sec.; ganzer tag
#define genauigkeit 1 //gibt an wie genau die winkel verglichen werden!
struct planeten
{
float geschwindigkeit;
float bahnradius;
};
struct planeten planeten[10];
float winkel[10];
int umlaufzeiten()
{
float umfang[10],umlaufzeit[10];
int i;
for(i=1;i<=9;i++)
{
umfang[i]=2*pi*planeten[i].bahnradius*ae;
}
for(i=1;i<=9;i++)
{
umlaufzeit[i]=umfang[i]/(planeten[i].geschwindigkeit*tag);
}
}
int winkels(int time) //time sollte in anz. Tage angegeben werden...
{
int i;
printf("\n\n");
for(i=1;i<=9;i++)
{
winkel[i]=planeten[i].geschwindigkeit*3600*time*360*24/(2*pi*planeten[i].bahnradius*ae);
while(winkel[i]>360)
{
winkel[i]-=360;
}
}
}
int matchtest()
{
FILE *matchtest;
unsigned int i;
int test;
matchtest=fopen("match.txt","w");
for(i=0;i<=10000000;i++) //entspricht 27000 Jahren... keine Ahnung ob das genügt!
{
winkels(i);
test=0;
if(winkel[1]-winkel[2]<genauigkeit && winkel[1]-winkel[2]>-genauigkeit) test=1;
if(test==1 && winkel[2]-winkel[3]<genauigkeit && winkel[2]-winkel[3]>-genauigkeit) test=2;
if(test==2 && winkel[3]-winkel[4]<genauigkeit && winkel[3]-winkel[4]>-genauigkeit) test=3;
if(test==3 && winkel[4]-winkel[5]<genauigkeit && winkel[4]-winkel[5]>-genauigkeit) test=4;
if(test==4 && winkel[5]-winkel[6]<genauigkeit && winkel[5]-winkel[6]>-genauigkeit) test=5;
if(test==5 && winkel[6]-winkel[7]<genauigkeit && winkel[6]-winkel[7]>-genauigkeit) test=6;
if(test==6 && winkel[7]-winkel[8]<genauigkeit && winkel[7]-winkel[8]>-genauigkeit) test=7;
if(test==7 && winkel[8]-winkel[9]<genauigkeit && winkel[8]-winkel[9]>-genauigkeit)
{
winkel[1]=winkel[2]=winkel[3]=winkel[4]=winkel[5]=winkel[6]=winkel[7]=winkel[8]=winkel[9];
}
if(winkel[1]==winkel[2] && winkel[2]==winkel[3]) //sind eh alle gleich, daher auch keine weiter bed. nötig!
{
fprintf(matchtest,"SUPERKONJUNKTION GEFUNDEN BEI TAG: %d\n",i);
printf("SUPERKONJUNKTION GEFUNDEN!! TAG: %d\n",i);
}
// if(i%10000=0) printf("Jetzt bei Tag: %d\n",i);
}
printf("---> ENDE <--- Tag %d erreicht",i);
fclose(matchtest);
}
int main()
{
planeten[1].geschwindigkeit = 47.8; //MERKUR
planeten[1].bahnradius=0.39;
planeten[2].geschwindigkeit = 35; //VENUS
planeten[2].bahnradius=0.72;
planeten[3].geschwindigkeit = 29.8; //ERDE
planeten[3].bahnradius=1;
planeten[4].geschwindigkeit = 24.1; //MARS
planeten[4].bahnradius=1.52;
planeten[5].geschwindigkeit = 13; //JUPITER
planeten[5].bahnradius=5.2;
planeten[6].geschwindigkeit = 9.6; //SATURN
planeten[6].bahnradius=9.54;
planeten[7].geschwindigkeit = 6.8; //URANUS
planeten[7].bahnradius=19.20;
planeten[8].geschwindigkeit = 5.4; //NEPTUN
planeten[8].bahnradius=30.06;
planeten[9].geschwindigkeit = 4.7; //PLUTO
planeten[9].bahnradius=39.6;
umlaufzeiten(); //UMLAUFZEIT WIRD BERECHNE
matchtest();
getch();
}
//Astronomie - Unser Sonnensystem
//by Blackvirus
//Dieses Programm berechnet die Abstände der SUPERKONJUNKTION
//Als SUPERKONJUNKTION wird das "Phänomen" bezeichnet, wo alle Planeten
//unseres Sonnensystems in einer Reihe auf einer Seite der Sonne stehen
#include <stdio.h>
#include <conio.h>
#define AE 149600000 //Astronomische Einheiten - 149.600.000 km
#define PI 3,141592653589 //Die Zahl PI
void main()
{
double entfernung[]={0.39,0.72,1,1.52,5.2,9.54,19.2,30.06,39.6}; //Entfernungen von Sonne
double geschwindigkeit[]={47.8,35,29.8,24.1,13,9.6,6.8,5.4,4.7}; //Geschwindigkeiten in km/s
double umfang[9]; //Umfang der Bahn der Planeten
double umlaufszeit[9]; //Umlaufszeit eines Planeten in Sekunden
double umlaufszeitpluto; //Umlaufszeit von Pluto
int richtig=0;
int i=0,j=0,k=0;
printf("\tB E R E C H N U N G D E R A B S T %c N D E Z W I S C H E N\n\t\t S U P E R K O N J U N K T I O N E N\n\n\n",142);
for(i=0;i<9;i++)
{
umfang[i]=entfernung[i]*149600000*2*PI; //Berechnung der Umfänge der Bahnen
//Einheit =km*2*PI=km
}
for(i=0;i<9;i++)
{
umlaufszeit[i]=(umfang[i]/geschwindigkeit[i]); //Berechnung der Umlaufszeiten
//Einheit =(km/(km/s))/10=s
}
umlaufszeitpluto=umlaufszeit[9];
while(richtig==0) //Schleife wird solange ausgeführt,
//bis eine Periode gefunden wird
{
umlaufszeitpluto+=umlaufszeit[9]; //Umlaufszeit von Pluto wird dazugezählt
richtig=1; //Periode wird auf richtig gesetzt
k=0;
while(richtig==1 && k<8) //Solange sich umlaufszeitpluto "glatt"
//durch umlaufszeit der Planeten teilen lässt
//oder k kleiner als 8 ist (9.Planet = Pluto)
{
if((long)umlaufszeitpluto%(long)umlaufszeit[k]!=0) richtig=0; //Vergleich mit Umlaufszeiten
//anderer Planeten,richtig=0 --> keine Periode
k++;
}
}
printf("PERIODE GEFUNDEN!!");
umlaufszeitpluto/=86400; //Umwandlung von s in Tage
umlaufszeitpluto/=365; //Umwandlung von Tage in Jahre
printf("\nEine SUPERKONJUNKTION findet ca. alle %lf Erdjahre statt!!",umlaufszeitpluto);
getch();
}
//Astronomie - Unser Sonnensystem
//by Blackvirus
//Dieses Programm berechnet die Abstände der SUPERKONJUNKTION
//Als SUPERKONJUNKTION wird das "Phänomen" bezeichnet, wo alle Planeten
//unseres Sonnensystems in einer Reihe auf einer Seite der Sonne stehen
//Berechnung: Bei jedem Schleifendurchgang wird die Geschwindigkeit
// der jeweiligen Planeten zu einem Feld dazugezählt (somit auch
// zurückgelegte Strecke). Bei jedem Schleifendurchgang wird
// geprüft, ob sich die Strecke des langsamsten Planeten (Pluto)
// "glatt" durch die Strecken der anderen Planeten teilen lässt.
// Wenn dies der Fall ist, haben wir eine SUPERKONJUNKTION
#include <stdio.h>
#include <conio.h>
#define AE 149600000 //Astronomische Einheiten - 149.600.000 km
#define PI 3,141592653589 //Die Zahl PI
void main()
{
double entfernung[]={0.39,0.72,1,1.52,5.2,9.54,19.2,30.06,39.6}; //Entfernungen von Sonne
double geschwindigkeit[]={47.8,35,29.8,24.1,13,9.6,6.8,5.4,4.7}; //Geschwindigkeiten in km/s
double umfang[9]; //Umfang der Bahn der Planeten
double umlaufszeit[9]; //Umlaufszeit eines Planeten in Sekunden
double umlaeufe[9];
double zeit;
int richtig=0;
int i=0,j=0,k=0;
printf("\tB E R E C H N U N G D E R A B S T %c N D E Z W I S C H E N\n\t\t S U P E R K O N J U N K T I O N E N\n\n\n",142);
for(i=0;i<9;i++)
{
umfang[i]=entfernung[i]*149600000*2*PI; //Berechnung der Umfänge der Bahnen
//Einheit =km*2*PI=km
}
for(i=0;i<9;i++)
{
umlaufszeit[i]=(umfang[i]/geschwindigkeit[i]); //Berechnung der Umlaufszeiten
//Einheit =(km/(km/s))/10=s
}
for(i=0;i<9;i++)
{
umlaeufe[i]=geschwindigkeit[i]; //Berechnung der zurückgelegten Strecke
} //durch Addierung der Geschwindigkeit
while(richtig==0)
{
for(i=0;i<9;i++)
{
umlaeufe[i]+=geschwindigkeit[i]; //Geschwindigkeit wird bei jedem Durchlauf addiert
}
richtig=1;
k=0;
while(richtig==1 && k<8)
{
if((long)umlaeufe[9]%(long)umlaeufe[k]!=0) richtig=0; //Zurückgelegte Strecke von Pluto wird
k++; //mit den anderen Strecken verglichen
}
}
printf("PERIODE GEFUNDEN!!");
zeit=umlaeufe[9]/geschwindigkeit[9]; //Berechnung der Sekunden (Zeit zw. Superkonjunktionen)
zeit/=86400; //Umwandlung in Tage
zeit/=365; //Umwandlung in Jahre
printf("\nEine SUPERKONJUNKTION findet ca. alle %lf Erdjahre statt!!",zeit);
getch();
}