(C++) Wie ist mein Stil?
-
Hallo.
Ich hab ein Programm geschrieben, das Wurzeln ausrechnet(System von Heron).Etwas umstendlich, aber ich wollte nicht den vorgegebenen Kram nehemen.
#include <iostream> using namespace std; int main() { float wurzel=100; cout <<"Aus welcher Zahl soll die Wurzel gezogen werden?"<< endl; float zahl; cin >> zahl; for(int i=0;i!=1000;++i) { wurzel = 0.5*(wurzel + (zahl / wurzel)); } cout << wurzel<<endl; cout << wurzel << "*" <<wurzel<<" = "<< wurzel*wurzel<<endl; int auswahl; cout <<"Nocheinmal 1 beenden 0"<<endl; cin >> auswahl; if(auswahl==1) { main(); } return 0; }
Ich wöllte jetzt mal wissen,
WIE IST MEIN STIEL???Gut ist er sicherlich nich.
Was könnte ich besser machen?
Danke.EditBySideWinder: Code-Tags benützen!
[ Dieser Beitrag wurde am 28.08.2002 um 10:37 Uhr von SideWinder editiert. ]
-
welcher stiel. wenn du deinen stil meinst: ohne code-tags kann das niemand beurteilen. sqrt ist kein kram sondern guter, effizienter, vorgebener code. schmeiß dein heron mal in ne funktion.
die zeilefor(int i=0;i!=1000;++i)
ist schlecht. bessser wäre
for (int i = 0; i < 1000; i++)
setz besser double als float ein.
und zum thema heron: mach lieber keine feste zahl an iterationen sondern lieber eine do ... while() schleife mit der präzision als bedingung
-
ach ja: das ist verdammt noch mal das falsche forum
-
Original erstellt von <Daniel>:
**
if(auswahl==1)
{
main();
}
**Ist undefiniertes verhalten mieser Stil? eigentlich schon, oder?
-
lieber goto *g*
-
Original erstellt von Mr. n:
ist schlecht. bessser wäre for (int i = 0; i < 1000; i++)Einspruch.
for(int i=0;i!=1000;++i) sieht dem
for(bla::iterator i=blubb.begin();i!=blubb.end();++i)
ähnlicher und genießt deshalb bei mir den Vorzug.
-
Wenn Du vor der Schleife wurzel=zal schreibst und zahl>0 ist, nähert sich das Verfahren strikt von oben. Dann kannste als Bedingung nehmen, daß du aufhörtst, sobald einmal wurzel größer geworden ist.
-
++i
ist ausserdem schneller als
i++
if(auswahl==1) { main(); }
so was ist aber pfui! Mach lieber eine Schleife!
-
warum ist ++i schneller als i++? Ob der jetzt vor der Anweisung oder nach der Anweisung hochzählt sollte für die Geschwindigkeit ja eigentlich egal sein, oder?
MfG SideWinder
-
Ich wäre für ein paar mehr Leerzeilen in deinem Code.
float wurzel = 100 -> float wurzel ( 100 ) ... ist aber geschmackssache.
Einheitliche Abstände zwischen Operatoren und Variablen.
while-Schleife statt if-Abfrage!
---
Tja, ich weis nicht recht wohin mit dem Thread. Hier ist er falsch, im C++-Forum wahrscheinlich ebenso. Rund um die Programmierung könnte es sein, aber ist doof. Der Thread bleibt deswegen mal vorerst hier.
MfG SideWinder
-
Original erstellt von SideWinder:
**warum ist ++i schneller als i++? Ob der jetzt vor der Anweisung oder nach der Anweisung hochzählt sollte für die Geschwindigkeit ja eigentlich egal sein, oder?MfG SideWinder**
continue, break oder resume?
so am ende nehmen wir auch das themer auch durch
-
Danke, aber da wird ja nur gesagt, dass sich der Compiler darauf vorbereiten kann...
MfG SideWinder