Erste Schritte mit C++



  • Hallo zusammen!

    Nach 7 Jahren mache ich nun wieder erste Schritte mit C++ und beginne wieder ganz vorne. Seht mir also bitte nach, wenn meine Frage(n) Kinderkram sind, ich hab´s schlichtweg verlernt und möchte ich da wieder einarbeiten.

    Gestern Abend habe ich mich hingesetzt und mal nicht "Hallo Welt" programmiert. Ich habe folgendes gemacht:

    #include <iostream>
    using namespace std;
    
    int main()
    
    {
    	bool zahl_1, zahl_2, ergeb;
    
    	cout << "Bitte die erste ganze Zahl angeben: ";
    	cin >> zahl_1;
    
    	cout << "Bitte die zweite ganze Zahl eingeben: ";
    	cin >> zahl_2;
    
    	ergeb = zahl_1 * zahl_2;
    
    	cout << zahl_1 << " mal " << zahl_2  << " = " << ergeb;
    
    	return 0;
    }
    

    Dazu gibt es folgende Fragen:

    1. Wofür steht "#include <iostream>"? Kann mir jemand ein Beispiel am Leben erklären? Ich kann mir das nicht herleiten.

    2. Ebenso "using namespace std;", bitte.

    3. Ihr werdet den Fehler gefunden haben: "bool zahl_1, zahl_2, ergeh;". Wenn ich "bool" in "int" abändere, dann funktioniert das selbstverständlich" ABER: Wenn ich mit "bool" in die erste Variable z.B. eine "2" schreibe, erhalte ich folgendes Feedback: "Bitte die zweite ganze Zahl eingeben: 143 mal 224 = 1". Warum werden mir diese Zahlen zurückgegeben und warum erhalte ich also dieses Feedback?

    Kann mir das jemand erläutern?
    Danke!



  • nokumo schrieb:

    1. Wofür steht "#include <iostream>"? Kann mir jemand ein Beispiel am Leben erklären? Ich kann mir das nicht herleiten.

    Such mal nach "C++ Compiler Linker"

    nokumo schrieb:

    2. Ebenso "using namespace std;", bitte.

    Such mal nach "C++ namespaces"

    nokumo schrieb:

    3. Ihr werdet den Fehler gefunden haben: "bool zahl_1, zahl_2, ergeh;". Wenn ich "bool" in "int" abändere, dann funktioniert das selbstverständlich" ABER: Wenn ich mit "bool" in die erste Variable z.B. eine "2" schreibe, erhalte ich folgendes Feedback: "Bitte die zweite ganze Zahl eingeben: 143 mal 224 = 1". Warum werden mir diese Zahlen zurückgegeben und warum erhalte ich also dieses Feedback?

    Weil ein bool einen Wahrheitswert und keine Ganzzahl repräsentiert? 😉



  • cooky451 schrieb:

    nokumo schrieb:

    1. Wofür steht "#include <iostream>"? Kann mir jemand ein Beispiel am Leben erklären? Ich kann mir das nicht herleiten.

    Such mal nach "C++ Compiler Linker"

    nokumo schrieb:

    2. Ebenso "using namespace std;", bitte.

    Such mal nach "C++ namespaces"

    Wird gemacht, danke!

    cooky451 schrieb:

    nokumo schrieb:

    3. Ihr werdet den Fehler gefunden haben: "bool zahl_1, zahl_2, ergeh;". Wenn ich "bool" in "int" abändere, dann funktioniert das selbstverständlich" ABER: Wenn ich mit "bool" in die erste Variable z.B. eine "2" schreibe, erhalte ich folgendes Feedback: "Bitte die zweite ganze Zahl eingeben: 143 mal 224 = 1". Warum werden mir diese Zahlen zurückgegeben und warum erhalte ich also dieses Feedback?

    Weil ein bool einen Wahrheitswert und keine Ganzzahl repräsentiert? 😉

    Ja, das habe ich verstanden und das war auch noch eines der wenigen Dinge die ich so behalten habe. Aber: Wieso erhalte ich als Feedback dieses Zahlenergebnis, wenn ich eine "2" eingebe? Was genau passiert da im Hintergrund?

    EDIT: Vielen Dank für die schnelle Antwort!



  • nokumo schrieb:

    Ja, das habe ich verstanden und das war auch noch eines der wenigen Dinge die ich so behalten habe. Aber: Wieso erhalte ich als Feedback dieses Zahlenergebnis, wenn ich eine "2" eingebe? Was genau passiert da im Hintergrund?

    EDIT: Vielen Dank für die schnelle Antwort!

    Bool belegt 1 Byte.
    Damit wäre theoretisch eine Zahl bis 255 möglich.

    Allerdings wird Bool als 1 oder 0 bzw. true oder false interpretiert
    und was du da addierst ist somit eine logische Addition, die dann true und somit 1 ergibt.
    Alles was 1 oder größer ist, wird übrigens als true bzw. 1 interpretiert.



  • Korrektur:
    logische Multiplikation

    Solange beide Werte true sind, also 1 oder größer sind, ergibt das Ergebnis auch true.


Anmelden zum Antworten