[C/C++] For-Schleife

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Ni©o, 4. Mai 2007 .

Schlagworte:
  1. 4. Mai 2007
    For-Schleife

    Hallo jungs,

    hab ne tutorial im internet gefunden
    Code:
    #include<iostream>
     using namespace std;
    
     int main()
     {
     int a;
     int b;
     int erg=1;
     cout<<"Geben sie eine Zahl ein: ";
     cin>>a;
     cout<<"Und jetzt eine andere: ";
     cin>>b;
    
     [color=red] for(int i=0;i<b;i=i+1)[/color]
     {
     erg=erg*a;
     }
    
     cout<<a<<" hoch "<<b<<" ist "<<erg<<"\n";
     cin.get();
     }
    und ich verstehe nicht was eigentlich diese zeile macht for(int i=0;i<b;i=i+1)
    hoffe ihr habt mich verstanden
    danke im voraus
     
  2. 4. Mai 2007
    AW: Frage???

    Das ne schleife:

    for( .... <-- beginnt die schleife

    int i = 0 <-- erstellt nen integer mit namen i der den wert 0 hat

    dann geht die schleife los....

    Die bedingungen der schleife:

    i<b

    also läuft die schleife solange i kleiner als b ist

    und das i = i + 1 bewirkt das bei jedem neuen durchlauf das i um einen größer wird (sonst wär es ne endloschleife)

    Knusperkeks
     
  3. 4. Mai 2007
    AW: Frage???

    Du willst nen quadrat ausrechnen oder?!

    A² = A x A

    A³ = A x A x A

    Code:
     erg=a;
     for(int i=0;i<b;i=i+1)
     {
    
     erg=erg * a;
     }
    ^^ so müsste das doch sein oder?!

    Knusperkeks
     
  4. 4. Mai 2007
    AW: Frage???

    ja ich will ein quadrat ausrechnen
    Bei diesem beispiel steht
    int a;
    int b;
    int erg=1;




    nicht erg=a
     
  5. 4. Mai 2007
    AW: Frage???

    das mit dem arg = 1 hab ich schon verstanden ....

    aber es ist ja sinnlos nen quadrat von 1 auszurechnen ....

    erg=erg*a;
    erg=1
    1=1*a
    oder?

    ^^

    das wäre dann

    erg=erg*a;
    erg=1
    erg=1*a


    Knusperkeks
     
  6. 4. Mai 2007
    AW: Frage???

    @Knusperkeks: hmm, Deinen letzten Post verstehe ich nicht wirklich *g

    bei...
    PHP:
        int a = 3 ;
        
    int b = 2 ;
        
    int erg = 1 ;


        for(
    int i = 0 ; i < b ; i = i + 1 )
        {
          
    erg = erg * a ;
        }
    ...rechntet das Programm doch 3² aus, oder?
    insgesamt 3 Schleifendurchläufe von erg *= a;
    1 = 1 * 3; //3
    3 = 3 * 3; //9
    9 = 9 * 3; //ERgebnis:


    Ergo:
    Die Schleife wird genau b-mal aufgerufen. Darin wird immer das ergebnis von vorher mit a multipliziert.
    So kommt man auf alle möglichen Potenzen (zB: 2^7)...

    Oder liege ich da vollkommen falsch?


    Sn0wm4n



    PS:
    Schon, aber beim ersten Schleifenlauf wird dem erg ja die zahl der Variable a zugeordnet, oder?
    Also wird ja nich von 1 sondern hier von 3 ausgerechnet
     
  7. 4. Mai 2007
    AW: Frage???

    Jo passt schon hab selber ned so ganz geblickt was ich da geschrieben habe


    Knusperkeks
     
  8. 4. Mai 2007
    AW: Frage???

    also was mich an eurer schleife noch stört ist dieses
    Code:
    i = i + 1;
    @Nico: du kannst dafür auch einfach
    Code:
    i++;
    schreiben... ist jetzt nicht ganz so wichtig, aber wir wollen dir doch gleich nen vernünftigen Programmierstil zeigen...
    Ansonsten ist die Lösung von Sn0wm4n genau richtig... so würd ichs auch machen...

    MFG
    Pacman

    //Edit: genauso kann man für
    Code:
     erg = erg * a; 
    auch
    Code:
     erg *= a; 
    schreiben... sind zwar nur kleinigkeiten, aber du solltest dir das trotzdem angewöhnen, weil der Quellcode so halt viel einfacher zu lesen ist (also für nen Mensch jetzt )...
     
  9. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.