(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 zeile

    for(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


Anmelden zum Antworten