funktionen...



  • ich, als anfänger hab mir mal n tutorial angeschaut...
    funktionen usw. war das thema.
    hab ich gleich ausprobiert, und hat - nach verbesserung eines kleinen schlampigkeitsfehlers - auch sofort funktionert.
    Natürlich ein dummes Beispiel, das viel einfacher zu lösen wäre.
    Hab hier mal den Sourcecode:

    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    float Umrechnen(float);
    int main()
    {
        float Eurogeld;
        float Schillinggeld;    
        cout<<"Geben Sie ihren Geldbetrag in [Euro] an! \n";
        cin>>Eurogeld;
        Schillinggeld=Umrechnen(Eurogeld);
        cout<<"\n"<<Eurogeld<<" Euro sind "<<Schillinggeld<<" Schilling!\n";   
    
        system("PAUSE");
        return EXIT_SUCCESS;
    
    }
    float Umrechnen(float Eurogeld_eingabe)
    {
          float Schillinggeld;
          Schillinggeld = Eurogeld_eingabe*13.7603;
          return Schillinggeld;
    }
    

    Nun wollte ich fragen: stimmt das soweit mit dem Einrücken?
    Wird das bei größeren Programmen auf diese Weise unübersichtlich oder
    habe ich das gelbe vom Ei erwischt?!



  • Das einrücken kannst du im Grunde so machen wie du möchtest, bzw. wie es dir am besten gefällt und du es am besten lesen kannst (aber jetzt net anfangen alles in eine Zeile zu machen ^^), später wenn du mal in nem Team arbeitest solltet ihr euch über nen Format einig werden. 😉
    Ansonsten is der Code von meiner Sicht her in Ordnung.
    Nur das system("pause") gefällt mir nicht (hat ich früher aber auch benutzt, jetzt hab ich eigene Funktion für), aber das is Geschackssache und solange es den Zweck erfüllt auch ok. 🙂
    Ah ja und eventuell kürzere Variablennamen. ^^
    float Euro hät gereicht, da weiß jeder was gemeint is.



  • XaTrIxX schrieb:

    Nun wollte ich fragen: stimmt das soweit mit dem Einrücken?

    Nunja, das kannst du letztendlich machen, wie du willst. Ich frage mich nur, warum du einmal 4 Zeichen und einmal 6 Zeichen Einrückung hast? Am besten ist es, du verwendest echte Tabs, da kann dann jeder individuell einstellen, wie breit einer sein soll und die Einrückung bleibt trotzdem konsistent.

    XaTrIxX schrieb:

    Wird das bei größeren Programmen auf diese Weise unübersichtlich oder
    habe ich das gelbe vom Ei erwischt?!

    Übersichtlichkeit hängt von vielen Faktoren ab, nicht nur von der Grösse des Codes. Vernünftig einzurücken ist trotzdem ein guter Anfang.

    Noch 3 Tipps:

    Da du offensichtlich noch am Anfang stehst, will ich dich nicht gleich mit RAII überfordern. Aber in C++ initialisiert man Variablen üblicherweise bei deren Definition. Aus

    float Schillinggeld;
        //...
        Schillinggeld=Umrechnen(Eurogeld);
    

    wird dann

    //...
        float Schillinggeld=Umrechnen(Eurogeld);
    

    Und du musst auch nicht für alles Variablen definieren. Die 'Umrechnen' Funktion kann man auch kurz wie folgt schreiben:

    float Umrechnen(float Eurogeld_eingabe)
    {
          return Eurogeld_eingabe*13.7603;
    }
    

    Der letzte Tipp ist zwar eher eine Geschmacksfrage, aber Leerzeichen können durchaus zur Übersichtlichkeit beitragen.

    cout << "\n" << Eurogeld << " Euro sind " << Schillinggeld << " Schilling!\n";
    

    ist für mich zB lesbarer, als alles aneinanderzuhängen.



  • groovemaster schrieb:

    Am besten ist es, du verwendest echte Tabs, da kann dann jeder individuell einstellen, wie breit einer sein soll und die Einrückung bleibt trotzdem konsistent.

    Echte Tabs sind auch nicht das Wahre (siehe http://boost.org/more/lib_guide.htm#Tabs). Falls du jemals mit anderen Leuten zusammenarbeiten solltest wird es da schnell Probleme geben. Benutz halt einfach einen Editor der für dich automatisch einrückt und/oder Tabs durch Spaces (oft 4) ersetzt.

    groovemaster schrieb:

    Der letzte Tipp ist zwar eher eine Geschmacksfrage, aber Leerzeichen können durchaus zur Übersichtlichkeit beitragen.

    Das gilt aber nicht nur für den <<-Operator bei Streams, sondern generell für Operatoren:

    Schillinggeld = Umrechnen (Eurogeld);
    return Eurogeld_eingabe * 13.7603;
    


  • auf jeden fall vermeide sowas:

    void f() {
       ...
       ...
       while(...) {
       ...
       ...
       {
       ...
    }
    

    also die geschweifte offene klammer in die gleich zeile schreiben. sowas ist weit verbreitet, aber meiner meinung nach macht das den code sehr unansehnlich.



  • .filmor schrieb:

    Echte Tabs sind auch nicht das Wahre (siehe http://boost.org/more/lib_guide.htm#Tabs).

    Wenn sie jeder benutzen würde, dann schon. Und genau darauf spielt der Absatz ja an. Boost lehnt Tabs nicht ab, weil sie schlecht wären, sondern weil es zu Problemen führt, wenn die einen Tabs und die anderen Spaces verwenden. Man hat sich halt für eines entschieden, und das sind Spaces. Hätte aber genauso gut anders ausgehen können. Jedenfalls ist dein Link kein Argument gegen Tabs.

    .filmor schrieb:

    Falls du jemals mit anderen Leuten zusammenarbeiten solltest

    Das mach ich.

    .filmor schrieb:

    wird es da schnell Probleme geben.

    Eben nicht, denn es gibt Richtlinien für Code Stil. Wir programmieren unter C zB nur mit Tabs und es gab noch keine Probleme. Vorher hab ich nur Spaces verwendet und würde dies ehrlich gesagt aufgrund der besherigen Erfahrungen nicht mehr machen wollen. Leider kann man sich das nicht immer aussuchen.



  • net schrieb:

    auf jeden fall vermeide sowas:

    void f() {
       ...
       ...
       while(...) {
       ...
       ...
       {
       ...
    }
    

    also die geschweifte offene klammer in die gleich zeile schreiben. sowas ist weit verbreitet, aber meiner meinung nach macht das den code sehr unansehnlich.

    Geschmacksfrage, das hatten wir doch erst. Wo wir aber grad beim Thema sind.

    void f() {
       ...
       ...
       while(...) {
          ...
          ...
       }
       ...
    }
    

Anmelden zum Antworten