#include #include double lichtg = 0; double wfaktor = 0; char x; void funktion_berechnung (double wfaktor); double funktion_wkl9 (double wfaktor); double funktion_wgr9 (double wfaktor); void funktion_dauer (double lichtg, float entfernung); int main(void) { do { printf ("\nWarp - Rechner"); printf ("\n\nBitte gib eine Warpgeschwindigkeit ein."); printf ("\nZulaessig sind Werte zwischen 0.001 und 9.99999999: "); scanf ("\n%lg", &wfaktor); if (wfaktor < 0.001 || wfaktor >= 10.0) printf ("\n\nFalscher Warpfaktor!"); else funktion_berechnung (wfaktor); printf("\nSoll eine weitere Warpgeschwindigkeit berechnet werden? (j=ja, n=nein): \n"); scanf ("\n%c", &x); } while (x == 'j'); return 0; } void funktion_berechnung (double wfaktor) { float entfernung = 0; printf ("\n\nBitte gib eine Entfernung in Lichtjahren ein, "); printf ("\nzur Berechnung der Reisedauer: "); scanf ("\n%f", &entfernung); if (wfaktor < 9) lichtg = funktion_wkl9 (wfaktor); else lichtg = funktion_wgr9 (wfaktor); if (entfernung != 0) funktion_dauer (lichtg, entfernung); } double funktion_wkl9 (double wfaktor) { lichtg = pow(wfaktor, (10.0/3.0)); printf ("\n\nWarp %.8lg entspricht der %.8lg -fachen Lichtgeschwindigkeit", wfaktor, lichtg); return lichtg; } double funktion_wgr9 (double wfaktor) { lichtg = pow(wfaktor, (10.0/3.0)) / (1 - pow(wfaktor / 10.0, 91.28 / pow(10.0 - wfaktor, 0.27))); printf ("\n\nWarp %lg entspricht der %.8lg -fachen Lichtgeschwindigkeit", wfaktor, lichtg); return lichtg; } void funktion_dauer (double lichtg, float entfernung) { double jahr = 0, tag = 0, stunde = 0, minute = 0, sekunde= 0; jahr = entfernung / lichtg; tag = entfernung * 365.26 / lichtg; stunde = entfernung * 8766.24 / lichtg; minute = entfernung * 525974.4 / lichtg; sekunde = entfernung * 31558464.0 / lichtg; printf ("\n\nFür %.2f Lichtjahre braucht ein Raumschiff bei Warp %.8lg ", entfernung, wfaktor); printf ("\nIn Jahren\t= %.4f ", jahr); printf ("\nIn Tagen\t= %.4f ", tag); printf ("\nIn Stunden\t= %.4f ", stunde); printf ("\nIn Minuten\t= %.4f ", minute); printf ("\nIn Sekunden\t= %.4f ", sekunde); }