Wo steckt der Fehler?



  • Hi Leute,

    vorweg, ich bin ein totaler Newbie im Bereich der Programmierung. Ich wollte einen Befehl basteln, der mir zwei Zahlen addiert. Leider weiß ich nicht wo mein Fehler steckt, könnte mal jemand drüber schauen? 🙄

    #include <cstdlib>
    #include <iostream>
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    
        double Zahl1;
        double Zahl2;
        double Zahl3=Zahl1+Zahl2;
    
        cout<<"Zahl eingeben: ";
        cin>>Zahl1;
        cout<<"Weitere Zahl eingeben: ";
        cin>>Zahl2;
        cout<<"Das Ergebnis ist: ";
        cout<<Zahl3;
    
        getchar();
    
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

    Mir ist die Angelegenheit schon reicht peinlich, also habt etwas Nachsicht mit dem neuen. 😉

    Viele Grüße! 🙂



  • hangman schrieb:

    Hi Leute,

    vorweg, ich bin ein totaler Newbie im Bereich der Programmierung. Ich wollte einen Befehl basteln, der mir zwei Zahlen addiert. Leider weiß ich nicht wo mein Fehler steckt, könnte mal jemand drüber schauen? 🙄

    Mir ist die Angelegenheit schon reicht peinlich, also habt etwas Nachsicht mit dem neuen. 😉

    Hihi, der Fehler darf Dir auch peinlich sein, aber wir haben alle mal angefangen.

    Du deklarierst Zahl1 und Zahl2. Welchen Wert die beiden haben, weiß niemand. Diese unbekannten Werte addierst Du dann und speicherst den Wert in Zahl3.

    DANN erst fragst Du Zahl1 und Zahl2 vom User ab und gibst den addierten Wert der beiden unbekannten Zahlen aus.

    Addiere die Zahlen erst nachdem Du sie eingegeben hast.



  • Oh man 😃

    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    
        double Zahl1;
        double Zahl2;
    
        cout<<"Zahl eingeben: ";
        cin>>Zahl1;
        cout<<"Weitere Zahl eingeben: ";
        cin>>Zahl2;
        cout<<"Das Ergebnis ist: ";
    
        double Zahl3=Zahl1+Zahl2;
    
        cout<<Zahl3;
    
        getchar();
    
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

    Jetzt klappt es auch, vielen Dank! 🙂
    Ich finde es allerdings recht unschön. Schöner und übersichtlicher wäre es doch wenn man die Variablen alle über den kompletten Quellcode schreiben könnte oder funktioniert das garnicht? 🙄



  • klar kannst du alle Variablen oben drüber schreiben.
    nur die Berechnung muss eben unten im Code an die richtige Stelle.

    Allerdings ist es empfehlenswerter Objekte erst da zu instanzieren, wo man sie auch verwendet.
    Da deine doubles aber einfache Datentypen sind, ist es da Wurst, ob du die am Anfang der Funktion deklarierst oder erst da, wo du sie auch verwendest.



  • hangman schrieb:

    Oh man 😃

    Ich finde es allerdings recht unschön. Schöner und übersichtlicher wäre es doch wenn man die Variablen alle über den kompletten Quellcode schreiben könnte oder funktioniert das garnicht? 🙄

    In C++ ist es durchaus üblich Variablen erst dort zu definieren, wo sie benötigt werden. Bei überschaubaren Funktionen deklariere ich die Variablen allerdings auch ganz oben.

    Eine grundsätzliche Regel würde ich hier nicht aufstellen, es sollte eben übersichtlich sein.

    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        double Zahl1, Zahl2, Zahl3;
    
        cout<<"Zahl eingeben: ";
        cin>>Zahl1;
    
        cout<<"Weitere Zahl eingeben: ";
        cin>>Zahl2;
    
        Zahl3=Zahl1+Zahl2;
        cout<<"Das Ergebnis ist: ";
        cout<<Zahl3;
    
        getchar();
    
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    


  • Okay, vielen Dank für die Hilfe. Ich werde mich sicher noch des öfteren melden! 😉

    Viele Grüße! 🙂



  • Sollen Deine Programme auch z.B. auf Linux laufen, oder programmierst Du nur
    unter Windows?



  • redrew99 schrieb:

    Sollen Deine Programme auch z.B. auf Linux laufen, oder programmierst Du nur
    unter Windows?

    Er ist Anfänger. Momentan sollen seine Programme überhaupt laufen. Alles andere später.


  • Mod

    hangman schrieb:

    Schöner und übersichtlicher wäre es doch wenn man die Variablen alle über den kompletten Quellcode schreiben könnte

    Kann man, dass das übersichtlicher ist, sehe ich allerdings anders.

    Ganz praktisch unbequem ist es dann, wenn man fremden Spaghetti-Code in Godfunktionen lesen darf, dann darf man kräftig scrollen, um die Deklarationen zu finden. Und es ist ja nicht immer ganz offensichtlich, was i,j,k,u,v sind (und selbst auf decltype(pFoo)=Foo* kann man sich ja nicht unbedingt verlassen).

    Theoretisch unschön ist es allein schon deshalb, weil das bloße Vorhandensein einer Variablen i.d.R. keinen nützlichen Informationsgehalt hat. Zudem führt es zu unnötiger Überspezifizierung (ich nenne es mal "magic types"), wenn man ansonsten die Möglichkeit hätte, auto zu verwenden. Oft genug, spielt der konkrete Typ keine so große Rolle.


Anmelden zum Antworten