Erledigt Danke Berechnung Entfernung Erde Alpha Centauri


  • Mod

    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 mag

    Diese 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?


  • Mod

    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)


  • Mod

    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.


  • Mod

    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..


Anmelden zum Antworten