000
08.10.2003, 16:56 Uhr
~Thommi64
Gast
|
Hallo C++ Fans,
habe für mein Fernstudium folgende Aufgabe zu lösen und komme einfach nicht zum Ziel!
Rekursive Berechnung einer Schachtiefe über die gemessene Zeit zwischen dem loslassen eines Steines bis Eintreffen des Schalls nach Aufschlag des Steins! Die Lösung mittels Iteration habe ich hier:
Eingabe der Zeit in sec.
C++: |
printf("\n\n\n\t\t Zeit vom Loslassen des Steines bis zum "); printf("\n\t\t Eintreffen des Schalls in Sekunden : "); scanf("%lf%ret",&zeit,&ret);
tiefe1 = zeit * zeit * ERDBESCHL / 2; /* Berechnung der */ zeit2 = tiefe1/SCHALL; /* beiden Grenzwerte */ tiefe2 = (zeit - zeit2) * (zeit - zeit2) /* 'tiefe1' u.'tiefe2'*/ * ERDBESCHL / 2;
printf("\n\n\t\t Oberer Grenzwert: = %lf Meter" ,tiefe1); printf("\n\t\t Unterer Grenzwert: = %lf Meter\n\n" ,tiefe2); i = 0; do { i++; tiefe = .5 * (tiefe1+tiefe2); /* Mitte zw. tiefe1 u. tiefe2*/ diff = sqrt(2*tiefe/ERDBESCHL) /* Abweichung der berechneten*/ +tiefe/SCHALL - zeit; /* von der gemessenen Zeit. */
if (diff >= 0.0) /* Das Intervall wird neu */ tiefe1 = tiefe; /* festgelegt. */ else tiefe2 = tiefe;
printf("\n\t\t %1d .Berechnungslauf: %5.2f Meter",i,tiefe); } while (fabs(diff) > ABWEICHUNG);/* solange bis die Zeit nur */ /* noch um die festgelegte */ /* Abweichung von der gemessenen entfernt ist */
|
Wenn jemand eine Idee hat wie man den Algorihtmus umformen kann wäre ich für eine rettende MAil sehr dankbar. Bitte an thommi@nikocity.de
Vielen Dank im Voraus!
--edit: Pablo. [ cpp ] tags gesetzt -- Dieser Post wurde am 08.10.2003 um 17:00 Uhr von Pablo Yanez Trujillo editiert. |