PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauche Hilfe bei C++ Aufgaben



maxx92
31.05.2012, 20:03
Hallo, ich schreibe in ca einem Monat eine Informatik Klausur. Beschäftige mich schon den ganzen Nachmittag mit alten Klausuren vom Prof. Thema wird sein C++.
Da ich mich noch nie mit der Sprache beschäftigt habe, fällt es mir sehr schwer die Aufgaben zu lösen, trotz Hilfe des Skriptes.
Die Grundlegenden Dinge verstehe ich, aber wenn es dann heißt eine verschachtelte Schleife zu lösen, verstehe ich nicht wo der Anfang und wo das Ende ist.
Die Aufgaben sind sicherlich nicht schwer, wenn man es einmal gemacht hat.

Hier mal eine Aufgabe


int i = 1, j = 1;
while (i < 20)
{
do
{
i = j = i + j;
}
while (j < 3) ;
if (i == 4)
continue;
i += j;
}
cout << i;
Also hier handelt es sich um eine do-while Schleife, also Kopfgesteuert.
Bedingung i < 20 ist erfüllt, wie es dann genau weiter geht, weiß ich nicht.
Hoffe jemand kann es schritt für schritt erklären.
Danke

h4XX0r-7
31.05.2012, 21:03
Hallo maxx92.

Die Schleifen beginnen jeweils mit einer geschweiften, geöffneten Klammer ( { ) und enden dann auch immer mit einer geschweiften, geschlossenen Klammer ( } ). (Manchmal auch französische Klammer genannt.)

Bei deinem Beispiel ist es aber der Fall, dass du eine weitere Schleife innerhalb einer Schleife startest, obwohl du die andere noch gar nicht geschlossen hast ( } ). Dies ist auch nicht sonderlich schlimm, da sich immer "gemerkt" wird, welche Schleife zuerst begonnen wurde!
Damit eine Schleife beendet werden kann, müssen erst alle in ihr gestarteten Schleifen beendet werden.

Hier ein Beispiel dazu:


while( a != j)
{ //Beginne eine neue Schleife!

while( x != k)
{ //Beginne noch eine Schleife.

} //Beende die zuletzt gestartete Schleife! In diesem Fall: while( x != k)

} //Beende nun auch die zuerst gestartete Schleife. Hier: while( a != j )Ich hoffe, ich konnte dir helfen.
MfG, h-7.

//EDIT: Die doppelten Schrägstriche sind Kommentarzeichen, die die gesamte restliche Zeile hinter ihnen auskommentieren.

Bonkers
31.05.2012, 23:10
int i = 1, j = 1;
while (i < 20)
{
do
{
i = j = i + j;
}
while (j < 3);
if (i == 4)
continue;
i += j;
}
cout << i;


So ist es etwas ersichtlicher denke ich.

C0SiNUS
05.06.2012, 22:14
In Zukunft www.cplusplus.com/files/tutorial.pdf und www.cplusplus.com

Speziell für deine Schleifen: http://www.cplusplus.com/doc/tutorial/control/