Heron-Verfahren mit "C" < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 22:50 Mi 08.05.2013 | Autor: | Marschal |
Aufgabe | Hi Leute.
Ich soll ein Programm schreiben, das mittels des Heronverfahrens $ [mm] x_{n+1}=\frac{1}{2}\left(x_n+\frac{a}{x_n}\right) [/mm] $ die Wurzel einer nicht-negativen double Zahl $ a $ berechnet. |
Im Quellcode habe ich beschlossen, dass der Startwert [mm] $x_0=a$ [/mm] gesetzt sein soll.
Hier mein Quellcode-Prototyp:
Quellcode mit Zeilennummerierung
Quellcode ohne Zeilennummerierung
Allerdings kommt keine Ausgabe, wenn ich eine nicht-negative double-Zahl eingebe... Ich vermute eine Endlosschleife...
Sieht jemand den oder die Fehler?
Dateianhänge: Anhang Nr. 1 (Typ: txt) [nicht öffentlich] Anhang Nr. 2 (Typ: txt) [nicht öffentlich]
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 03:44 Do 09.05.2013 | Autor: | leduart |
Hallo
kannst du genauer sagen was du mit der Zeile for...
willst?
vielleicht fuehrst du die mal selbst 2 schritte durch.
Besser ist sicher du machst das in 3 Schritten!
Gruss leduart
|
|
|
|
|
Hallo!
Der Fehler liegt in der letzten Anweisung in der FOR-Zeile: Hier steht xalt==xneu, dabei wird ein Vergleich ausgeführt, du willst aber eher xalt=xneu, also eine Zuweisung.
Übrigens, in C kannst du schreiben
x=x+3;
d.h. x wird sein alter Wert plus 3 zugewiesen.
Ansonsten: FOR-Schleifen nimmt man normalerweise eher, um irgendwas hochzuzählen oder so, für sowas hier nimmt man lieber while-Schleifen. Und: Ich rate dir, tunlichst immer geschweifte Klammern um das, was in der Schleife steht, zu ziehen. Denn morgen fügst du eine Zeile hinzu, und merkst nicht, daß du nun die Klammern brauchst...
|
|
|
|