Erledigt Danke Berechnung Entfernung Erde Alpha Centauri
-
Fällt dir bei deinen Formeln nichts auf? Schreib das mal auf Papier hin und guck mal nach, ob du wirklich den Zahlwert der Lichtgeschwindigkeit brauchst, wenn du die Entfernung schon in Lichtjahren kennst.
Weiterhin ein paar grobe Fehler:
- Das s fließt nirgends ein. Die Entfernung ist für die Reisedauer schon entscheidend wichtig.
- Das t wird uninitialisiert benutzt
- Aus den beiden obigen Punkten folgt, dass deine Formeln schlichtweg falsch sind
- Eine Fließkommazahl (x) absolut zu vergleichen ist tendenziell gefährlich, auch wenn es hier noch einmal gut gehen magDiese Fehler hättest du aber auch leicht gesehen, wenn du dein Programm mit Warnoptionen compilieren würdest (sollte man immer tun) oder spätestens beim Ausprobieren wäre dir das uninitialisierte t aufgefallen. Heißt das, du hast dein Programm nicht einmal selber ausprobiert?
-
Also ich hab mir das mal angeguckt und bin zu folgedem Code gekommen:
#include <iostream> using namespace std; int main( int argc, char **argv ) { int Tmp; double t, v; const double c = 299792458; //Lichtgeschwindigkeit in m/s const double s = 4.1153e16; //Entfernung cout << "Prozentsatz eingeben: "; cin >> Tmp; cout << endl; if( Tmp == 0 ) { cout << "Fehler! 0 ist keine Geschwindigkeit!" << endl; return 0; } v = Tmp / 100; v = c * v; t = s / v; cout << "Das Raumschiff braucht " << t << " Sekunden!" << endl; return 0; }
Aber man muss sagen, dass das eine völlig unklare (und meiner Meinung nach auch fehlerhafte!) Aufgabenstellung ist!
Aufgrund der Anmerkung, dass man cmath (was ja gar keine Klassenbibliothek ist lol) bzw sqrt() verwenden soll, gehe ich davon aus, dass der Aufgabensteller folgende Formel im Kopf hatte:
s = 0.5 * a *t^2
-> Diese Formel wird aber nur dann gebraucht, wenn es sich um eine inkonstante Geschwindigkeit handelt! (Aber vllt nur zur Verwirrung...)Man soll zwar noch die vergangene Zeit auf der Erde berechnen, aber die ist doch immer gleich? Ich nehme mal stark an, dass man hier nicht mit Einsteins-Theorien arbeiten muss O.o
-
Edit: Unklar z.B. bei der Definition des Prozentsatzes; Wenn man einen Prozentsatz einliest bedeutet doch, dass man z.B "50" eingibt, was 50% bzw dem Prozentsatz 0.5 entspricht. Oder?
-
SeppJ schrieb:
- Eine Fließkommazahl (x) absolut zu vergleichen ist tendenziell gefährlich, auch wenn es hier noch einmal gut gehen mag
Da kann ich nun nicht zustimmen. Da es nur eine (kontextabhängige) Tendenz ist, gibt es keinen Grund damit anzufangen, wenn ein solcher Fall nicht vorliegt. Eher schon würde ich die entsprechende Fehlerbehandlung kritisieren: Natürlich ist 0 (m/s) eine Geschwindigkeit und es ist sicher auch nicht sinnlos, in diesem Fall nach der Reisedauer zu fragen.
-
Yo schrieb:
Ich nehme mal stark an, dass man hier nicht mit Einsteins-Theorien arbeiten muss O.o
Doch, klar.
Beweisstück A:
Yo schrieb:
Man soll zwar noch die vergangene Zeit auf der Erde berechnen, aber die ist doch immer gleich?
Beweisstück B:
Aufgabe schrieb:
mit x Prozent der Lichtgeschwindigkeit
-
Beweisstück C:
markuswenczel schrieb:
Anmerkung: In der Klassenbibliothek cmath befindet sich die Funktion sqrt(), die zur Berechnung der Quadratwurzel dient.
-
.-.
-
Kann man hier überhaupt mit den Zeitdilatationsformeln der SRT rechnen, wenn sich die Erde nicht in einem Inertialsystem bewegt? ART-Berechnungen erscheinen mir für eine C++-Übungsaufgabe etwas unpassend.
-
camper schrieb:
Eher schon würde ich die entsprechende Fehlerbehandlung kritisieren: Natürlich ist 0 (m/s) eine Geschwindigkeit und es ist sicher auch nicht sinnlos, in diesem Fall nach der Reisedauer zu fragen.
Dann mal Butter bei die Fische: Wie lang dauert in diesem Fall die Reise?
-
ups
-
int main() { std::cout << "Prozentsatz eingeben: "; double speed; std::cin >> speed; speed /= 100; if (speed <= 0 || speed >= 1) { std::cout << "Das Raumschiff wird nie ankommen!" << std::endl; return 0; } const double distance = 4.1153; std::cout << "Vergangene Zeit auf der Erde: " << distance / speed << " Jahre." << std::endl; std::cout << "Vergangene Zeit in dem Raumschiff: " << (distance / speed) * sqrt(1 - pow(speed, 2)) << "Jahre." << std::endl; return 0; }
-
@cooky451
Ist das nicht falsch rum? Gefragt war doch die Reisedauer aus Sicht des Piloten und die währenddessen vergangene Zeit auf der Erde, nicht andersrum.
-
ipsec schrieb:
Ist das nicht falsch rum? Gefragt war doch die Reisedauer aus Sicht des Piloten und die währenddessen vergangene Zeit auf der Erde, nicht andersrum.
Wie denn jetzt andersrum? Für den Piloten ist Zeit vergangen und auf der Erde ist auch Zeit vergangen. Was genau soll man da umdrehen?
-
Ich meine deine Berechnung. Das, was du als "Vergangene Zeit auf der Erde" berechnest, ist doch eigentlich die vergangene Zeit für den Piloten.
-
ipsec schrieb:
Ich meine deine Berechnung. Das, was du als "Vergangene Zeit auf der Erde" berechnest, ist doch eigentlich die vergangene Zeit für den Piloten.
Also ich habe Physik nach der 10. leider abgewählt, aber ich hoffe doch, dass ich Wikipedia Artikel lesen kann. "Bewegte Uhren gehen langsamer".
-
cooky451 schrieb:
ipsec schrieb:
Ich meine deine Berechnung. Das, was du als "Vergangene Zeit auf der Erde" berechnest, ist doch eigentlich die vergangene Zeit für den Piloten.
Also ich habe Physik nach der 10. leider abgewählt, aber ich hoffe doch, dass ich Wikipedia Artikel lesen kann. "Bewegte Uhren gehen langsamer".
Hättest nicht abwählen dürfen. Für den Piloten bewegt sich nicht das Raumschiff, sondern die Erde (und die restliche Umgebung)
-
cooky451 schrieb:
ipsec schrieb:
Ich meine deine Berechnung. Das, was du als "Vergangene Zeit auf der Erde" berechnest, ist doch eigentlich die vergangene Zeit für den Piloten.
Also ich habe Physik nach der 10. leider abgewählt, aber ich hoffe doch, dass ich Wikipedia Artikel lesen kann. "Bewegte Uhren gehen langsamer".
Das ist schon richtig, was du da gemacht hast, außer dass ich eine andere Fehlermeldung bei Überlichgeschwindigkeit ausgeben würde.
-
SeppJ schrieb:
cooky451 schrieb:
ipsec schrieb:
Ich meine deine Berechnung. Das, was du als "Vergangene Zeit auf der Erde" berechnest, ist doch eigentlich die vergangene Zeit für den Piloten.
Also ich habe Physik nach der 10. leider abgewählt, aber ich hoffe doch, dass ich Wikipedia Artikel lesen kann. "Bewegte Uhren gehen langsamer".
Das ist schon richtig, was du da gemacht hast
Ok, ich hatte jetzt SRT nur in der Schule und nicht im Studium, kannst du mir sagen, wo mein Denkfehler liegt? Für das Raumschiff, das sich in einem Intertialsystem bewegt, sollte doch die vergangene Zeit genau t=s/v sein.
-
ipsec schrieb:
cooky451 schrieb:
ipsec schrieb:
Ich meine deine Berechnung. Das, was du als "Vergangene Zeit auf der Erde" berechnest, ist doch eigentlich die vergangene Zeit für den Piloten.
Also ich habe Physik nach der 10. leider abgewählt, aber ich hoffe doch, dass ich Wikipedia Artikel lesen kann. "Bewegte Uhren gehen langsamer".
Hättest nicht abwählen dürfen. Für den Piloten bewegt sich nicht das Raumschiff, sondern die Erde (und die restliche Umgebung)
Die Aufgabe ist in der Hinsicht ohnehin ungenau gestellt, weil nicht klar ist, welche Zeit gemeint ist. Die Zeit, die für einen Beobachter auf der Erde vergangen ist, wenn dieser sieht, dass der Pilot das Zeil erreicht hat - oder aber die Zeit, die aus Sicht des Piloten auf der Erde verganegn ist, wenn das Ziel erreicht wird? (beide sind natürlich gleich und jeweils länger als die subjektiv vergangene Zeit).
-
SeppJ schrieb:
Das ist schon richtig, was du da gemacht hast, außer dass ich eine andere Fehlermeldung bei Überlichgeschwindigkeit ausgeben würde.
Beruhigend.
Ehm.. na ja, bei Überlichtgeschwindigkeit soll ja irgendwie der Informationsgehalt verloren gehen.. oder so ähnlich..