C++ Anfängerfragen



  • bump



  • Tutorial ordentlich lesen.
    Siehe Kommentare.
    Wenn man das probiert sieht man aber doch ob das Programm funktioniert oder nicht?
    Gibt es eigentlich noch die berühmten Leerzeichen? Furchtbar.

    #include<iostream>
        using namespace std;
    
        int main()
        {
            cout<<"Bitte geben Sie 2 Zahlen ein:\n";
            int a,b;
            cin>>a; //* sei 7
            cin>>b; //* sei 4
    
            //dividieren:
            {
                int temp=a; //* Hilfsvariable
                int erg=0; //* Ergebniszähler deklarieren und initialisieren
                while(temp-b >= 0) //* Schleife. Prüfung ob a - b größer/gleich 0
                {
                    temp-=b; //* temp = temp - b => 7 - 4 ist 3 (temp) 
                    ++erg; //* Ergebniszähler erhöhen um eins
                    //* Zurück zur Schleife. a - b ist kleiner 0, also
                    //* Abbruch Schleife
                }
                cout<<b<<" ist in "<<a<<" "<<erg<<" mal enthalten (Rest "<<temp<<")\n"; //* Noch irgendwelche Fragen
            }
    
            //multiplizieren
            {
                int erg=0; //* Ergebniszähler deklarieren und initialisieren (0)
                for(int i=0;i<b;++i) //* Schleifenvariable i deklarieren und initialisieren
                {
                    erg+=a; //* erg = erg + a
                    //* Wenn i = 4 ist, bricht Schleife ab wegen Prüfung i < b (4)
                    //* Und bei i = 3 => 21 + 7 = 28 
                }
                cout<<a<<" mal "<<b<<" ist "<<erg<<"\n"; //* 7 * 4 ist und bleibt 28
            }
        }
    


  • Also vom Sinn her habe ich es jetzt sehr gut verstanden,
    einziges Problem ist, ich verstehe die Schleife nicht ganz.
    Könnte man es vllt so sehen?

    erg 0: temp=7-4
    erg 1: temp=3-4 (dort würde es kleiner werden also wird abgebrochen)
    dieses ++erg sagt an, das immer +1 zum Ergebnis dazukommt wenn man diese Rechnung durchführt oder?

    Dann zum multiplizieren:
    Ist dort vllt ein kleiner Fehler drinnen?
    Verstehe es eigentlich total es wird auch wieder sofort abgebrochen ABER
    es wird ja vorgegeben, dass er es abbricht wenn i größer als b ist was dort nicht der fall ist. Sie sind gleich. Also müsste dort nicht "=>" hin?



  • darkii- schrieb:

    Verstehe es eigentlich total

    Erste Fehlannahme. Du verstehst es (noch) nicht.

    darkii- schrieb:

    es wird ja vorgegeben, dass er es abbricht wenn i größer als b ist

    for(int i=0;i<b;++i)
    

    Ok, eine kleine Erklärung zum Zeichen "<". Dieses Zeichen steht für "kleiner als". Die Abbruchbedingung in der Schleife lautet also:

    Solange i kleiner ist als b.

    Die Schleife wird also solange durchlaufen wie i kleiner ist als b.

    Jetzt die 100-Punkte Frage: Welchen Wert hat i wenn es zum erstenmal _nicht_ mehr kleiner ist als b? richtig, wenn es gleich b. Beispiel:
    kleiner?
    0 < 4 ja
    1 < 4 ja
    2 < 4 ja
    3 < 4 ja
    4 < 4 nein -> Abbruch

    Zusatzfrage: wie oft wurde die Schleife in dem Beispiel ausgeführt:

    a) 4 mal
    b) 5 mal

    Natürlich 4 mal (0-3) Weil beim 5ten Vergleich die Abbruchbedingung ja erfüllt wurde... Und die Abbruchbedingung wird vor Ausführung der Schleife getestet, nicht danach (das wäre sonst eine do-while schleife)

    und 4 * 7 = 28. Der Code stimmt also.



  • -verstanden-



  • Also ich hätte nocheinmal eine Frage:
    Ist jetzt bisschen doof aber davor hatte ich garnicht darauf geachtet.
    Was macht cin.get() genau?
    Ich habe es so verstanden, dass es das gleiche wie cin<< ist nur dass es dieses objekt dann auch gleich ausgibt..richtig?
    und
    hat jemand nochmal eine andere erklärung/ein Tutorial für Arrays?
    Verstehe die irgendwie nicht ganz. Habe das hier gelesen: http://tutorial.schornboeck.net/arrays.htm



  • darkii- schrieb:

    Was macht cin.get() genau?
    Ich habe es so verstanden, dass es das gleiche wie cin<< ist nur dass es dieses objekt dann auch gleich ausgibt..richtig?

    Dafür ist www.cplusplus.com dein Freund.

    darkii- schrieb:

    hat jemand nochmal eine andere erklärung/ein Tutorial für Arrays?
    Verstehe die irgendwie nicht ganz.

    Was verstehst du an Arrays nicht? Und vielleicht wäre es besser, dir ein Buch zu besorgen, da lernt man meistens mehr als mit Internet-Tutorials.



  • bin auch gerade auf der suche nach einem buch



  • darkii- schrieb:

    bin auch gerade auf der suche nach einem buch

    Thinking in C++ 1/2 sind frei verfügbar als E-Book.
    Und dann gäbe es noch den C++-Primer, mit dem viele angefangen haben.



  • Nexus schrieb:

    Was verstehst du an Arrays nicht?



  • _matze schrieb:

    Nexus schrieb:

    Was verstehst du an Arrays nicht?

    😕
    Was willst du uns damit sagen?

    EDIT:
    Was ist jetzt eigentlich mit der Diskette? 🙂 - Hat sie geschmeckt?



  • drakon schrieb:

    😕
    Was willst du uns damit sagen?

    Na dass er die Frage beantworten soll, wenn er ein Verständnisproblem hat. Sonst kann ihm schlecht geholfen werden.

    drakon schrieb:

    EDIT:
    Was ist jetzt eigentlich mit der Diskette? 🙂 - Hat sie geschmeckt?

    Hehe, war nicht nötig. 😃 Er wusste es auch nicht wirklich zu interpretieren...



  • Nexus schrieb:

    Was verstehst du an Arrays nicht?

    Verstehe es allgemein einfach garnicht was es so richtig bedeuten soll mit 10 etc.
    Kurz gesagt: Alles 😃



  • Ein Array ist eigentlich nichts anderes,als eine Sammlung von Objekten. Das heisst, anstatt

    int zahl1;
    int zahl2;
    int zahl3;
    ...
    

    zu schreiben kannst du das hier machen:

    int zahlen[10];
    

    Das bedeutet, dass zahlen ein Array ist, dass 10 Zahlen halten kann, welche man von 0-9 ansprechen kann.

    int zahlen[10]; //10 Elemente soll das Array enhalten
    zahlen[0] = 2; //erste Zahl wird 2
    zahlen[1] = 3; //zweite Zahl wird 2
    ...
    zahlen[9] = 99; // 10te Zahl wird 99
    
    zahlen[10] = 2; // nicht erlaubt, da 10 das 11te Element darstellt und somit nicht vorhanden ist
    

    So einfach ist das. Das schöne daran ist, dass man auch durchiterieren kann, was bei den benannten Objekten nicht möglich ist.

    //gibt alle Zahlen aus
    for (int i = 0; i < 10; i++)
       std::cout << zahlen[i];
    

    Wenn du das immernoch nicht verstehst, hol dir unbedingt ein bereits erwähntes Buch. Da wird das ganze nochmal genau erklärt.



  • 3D-Spiele mit C++ und Directx in 21 Tagen
    Tipps zur Socket-Programmierung unter C++
    Vergleich Delphi und Visual C++
    C++ Grundlagen - Quellcode Beispiele
    C++ in 21 Tagen
    C++ mini E-Book
    C++ mit dem Borland C++ Builder
    C++ Programmieren mit Stil
    C++ Referenz
    C++ Wochenend Crashkurs
    C++-Programmierung - Programmiersprache, Programmiertechnik, Datenorganisation
    EDUCATION Jetzt lerne ich Visual C++ 6
    Intensivkurs C++
    Jesse Liberty - Jetzt lerne ich C++ - Jubiläumsausgabe
    Jetzt lerne ich Visual C++ 6 [Markt&Technik, Dirk Louis]
    Konzept der C++ Standard Template Library
    Markt & Technik - Jetzt lerne ich C++
    Programmieren in C - C++
    Spieleprogrammierung in C++
    Visual C++ 6 in 21 Tagen
    Visual C++ for Dummies Quick Reference
    Visual C++ Kompendium
    Visual C++.NET - Das Buch
    Visual Studio C++ .NET ebook
    Windows-Programmierung mit C++

    Kennt ihr vielleicht welche von denen?
    Wäre da vllt ein richtig gutes dabei?
    Könnte ich leichter bekommen.



  • Im 3. Post auf dieser Seite habe ich 2 genannt. Davon kannst du dir eines (2 Teile) bereits jetzt runterladen. Soll sehr gut für Anfänger sein. (ich vertraue da mal denen, die es hier gelesen habe..)



  • Würde zuerst aber lieber ein deutsches buch holen...



  • Das hier ist auf Deutsch und zu empfehlen.

    http://www.amazon.de/C-Primer-Stanley-B-Lippman/dp/382732274X

    Die anderen kenne ich nicht, aber (leider) gibt es sehr viel Schund auf dem Markt und wenn ich dich wäre, würde ich die 50 Euro in die Hand nehmen. Dann hast du auch was anständiges.



  • Stanley B. Lippman: C++ Primer, 4th Edition (Addison-Wesley 2005)
    Stephen Prata: C++ Primer Plus, 5th Edition (SAMS 2004)

    Habe jetzt diese beiden Ausgaben gesehen..
    Welche davon ist denn die bessere?



  • darkii- schrieb:

    Habe jetzt diese beiden Ausgaben gesehen..
    Welche davon ist denn die bessere?

    Wenn du ein deutsches Buch verwenden willst, würde ich zum C++ Primer, 4. Auflage. (10. August 2007) [für 29,95] greifen.

    Wie die Auflagen zwischen Deutsch und Englisch sich unterscheiden kann ich dir nicht sagen (Es gibt nicht selten eine Differenz in der Auflagennummer zwischen deutsch und englisch) - zudem kann ich auch nicht erkennen ob der "C++ Primer Plus" wirklich auf dem "C++ Primer" basiert, bedingt durch die Autorenangaben wäre ich da skeptisch.

    Aber vielleicht gibt es ja einen der beide Ausgaben kennt...

    cu André


Anmelden zum Antworten