Noob Fragen (1)



  • Hi derNoob hat wieder seine Schwierigkeiten sich zurechtzufinden in eurer Welt.
    Die Fragen stehen in den Kommentaren. Wäre nett wenn mir jemand helfen könnte. Den Code habe ich übrigens ausm Primer 🤡

    #include <iostream>
    using namespace std;
    int main()
    {
    	int sum = 0, val = 1; // warum initialisieren (?) wir sum mit 0? was hat das zu bedeuten?
    	while (val <= 10)
    	{
    		sum += val; // Wie kann ich das "+=" verstehen? Ich weiß es befiehlt (?) "sum" sich mit "val" zu addieren
    		++val; // ++val heißt val +1, aber warum muss das dahin, also was 
    bezweckt es denn? Auf jeden Fall steht beim Programm nix, wenn ich es entferne und dnan kompiliere.
    	}
    	cout << "The sum of 1 to 10 inclusive is " << sum << endl;
    	return 0;
    }
    


  • DerNewb schrieb:

    #include <iostream>
    using namespace std;
    int main()
    {
    	int sum = 0, val = 1; // warum initialisieren (?) wir sum mit 0? was hat das zu bedeuten?
    

    Wenn Du sum nicht mit 0 initialisierst, wird sum mit einem zufälligen Wert initialisiert. OFT ist es zufällig 0. Aber nicht garantiert.
    Übrigens ist es schlechter Stil, beide Variablen in einer Zeile zu definieren. Die haben zwei Zwecke, zwei Zwecke sollten zwei Zeilen sein.

    DerNewb schrieb:

    while (val <= 10)
    	{
    		sum += val; // Wie kann ich das "+=" verstehen? Ich weiß es befiehlt (?) "sum" sich mit "val" zu addieren
    

    sum+=val;
    ist nur eine abkürzende Schreibweise für
    sum=sum+val;
    Ja, sum tut sich mit val addieren. dabei wird sum raufaddiert, val wird nur gelesen.

    DerNewb schrieb:

    ++val; // ++val heißt val +1, aber warum muss das dahin, also was 
    bezweckt es denn? Auf jeden Fall steht beim Programm nix, wenn ich es entferne und dnan kompiliere.
    

    Der Autor will ja 1+2+3+4+5… aufaddieren.
    Nicht nur 1+1+1+1+1…
    Darum muss val in jedem Schleifendurchlauf eins mehr werden.



  • Es ist schöner, wenn du deinen Code zwischen die Code-Tags setzt.
    Code markieren und auf den C++Button unter den 😞 :p klicken.
    Und du als registrierter Benutzer kanns tdas sogar nachträglich machen.
    Auch die Vorschau benutzen, um zu sehen ob es geklappt hat.

    Das Programm soll die Zahlen von 1 bis 10 addieren. (Zumindest macht es das und es steht auch in der Ausgabe)
    Dazu braucht man die Zahlen von 1 bis 10.* Das wird in der Schleife durch das ++val gemacht.
    Und das heißt nicht nur val+1, sondern val = val+1
    Es gibt da noch ein paar Nebeneffekte, die hier aber nicht wichtig sind.

    Das sum += val; ist kurz für sum = sum + val;

    Und sum musst du einen sinnvollen Wert zuweisen, da sonst irgendein Schrott drin steht. Es kann schon 0 sein, muss es aber nicht.

    Sollte aber alles in dem Buch stehen. Durcharbeiten und nicht nur lesen. Und lesen und nicht blättern.

    *Ne, braucht man nicht, denn es gibt ja den kleinen Gauss.



  • Danke volkard und Dirk ❤ und Dirk ich hab doch den C++ Button benutzt 😉 und obwohl ich gerade Abi mache und in Englisch 3 stehe bin ich trotzdem eine Niete in Fremdsprachen



  • DerNewb schrieb:

    ...
    		++val; // ++val heißt val +1, aber warum muss das dahin, also was
                   // bezweckt es denn? Auf jeden Fall steht beim Programm nix,
                   // wenn ich es entferne und dnan kompiliere.
    ...
    

    Und nun die Bonusfrage:
    kannst Du erklären, warum "beim Programm nix steht", wenn Du ++val; entfernst? 🙂



  • Furble Wurble schrieb:

    Und nun die Bonusfrage:
    kannst Du erklären, warum "beim Programm nix steht", wenn Du ++val; entfernst? 🙂

    Falsche Antwort ! Alert!
    Hmmm also wir haben ja hier eine Schleife und die wird ja dann "beendet" wenn val 10 ist und wenn ich ++val nicht schreibe, dann würde diese Schleife ja nicht beendet werden oder? deswegen kommt auch nicht der output später ... vielleicht?



  • DerNewb schrieb:

    Furble Wurble schrieb:

    Und nun die Bonusfrage:
    kannst Du erklären, warum "beim Programm nix steht", wenn Du ++val; entfernst? 🙂

    Falsche Antwort ! Alert!
    Hmmm also wir haben ja hier eine Schleife und die wird ja dann "beendet" wenn val 10 ist und wenn ich ++val nicht schreibe, dann würde diese Schleife ja nicht beendet werden oder? deswegen kommt auch nicht der output später ... vielleicht?

    Ja: eine Endlosschleife. Genau.


Anmelden zum Antworten