Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Steine verrücken » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 5 Beiträge
H4wk

Danke, ich habs hingekriegt smile
David1979

Hallo H4wk,

eine Schleife in C++ ist nach folgender Syntax aufgebaut:

code:
1:
2:
3:
4:
5:
for (<Initialisierung>;<Bedingung>;<Reinitialisierung>) { 
    Anweisung_1;
    ...
    Anweisung_n; 
}


Dabei kannst du bei der For-Schleife im Initialisierungsteil alle Startbedingungen für deine Variablen festlegen. Zum Beispiel kannst du dort einen Zähler definieren. Dieser Teil wird nur einmal ausgeführt. Anschließend wird die Bedingung geprüft. Die Schleife wird anschließend so oft durchlaufen, wie die Bedingung den Wahrheitswert true (bzw. einen Wert > 0) zurückliefert. Nach jedem Schleifendurchlauf wird der Teil ausgeführtl, der mit Reinitialisierung gekennzeichnet ist. Hier kann man beispielsweise dein Zähler um 1 erhöhen. Dann wird bei der Bedingungsprüfung weiter gemacht.

Als kleines Beispiel, dass alle Zahlen von 0 bis 10 ausgibt:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
#include <iostream.h>

void main(void) {
    int counter;
    for (counter = 0; counter <= 10; counter++) {
        cout << "Zaehler : " << counter << "\n"; 
    }
}


Du müsstest das untere Beispiel nun so umformen, dass über die Länge des Arrays iteriert wird und jedem Feld des Arrays der Wert 2 zugewiesen wird.

Gruß. David
H4wk

Erstmal Danke, der Name dieses Problems und der Wikipedialink haben mir schon sehr geholfen.
Jetzt stellt sich mir allerdings ein C++ Problem:
Wie kann ich, wenn ich ein Integer Array habe
als Voraussetzung benutzen, dass alle Werte den selben Wert haben müssen?
Genauer gesagt, kann ich irgendwie eine Schleife schreiben, die sich so lange wiederholt bis, in meinem Fall alle Stellen des Array den Wert 2 haben?
David1979 RE: Steine verrücken

Hallo H4wk,

dass, was du mit Steine verrücken meinst ist unter dem Begriff Die Türme von Hanoi bekannt. Ohne großartig viel rumzureden hier der Link zur Wikipediaseite, da ist von der Geschichte bis zur algorithmischen Umsetzung alles haarklein erklärt. Fall du nach dem Durchlesen immer noch Verständnisprobleme haben solltest, meld dich! Wink

Gruß, David
H4wk Steine verrücken

Es gebe drei Positionen, Position 1, Position 2, Position 3. Auf Position 1 seien
n kreisscheibenförmige Steine übereinandergestapelt. Dabei sind diese Steine nach ihrem Durchmesser sortiert, wobei der Stein mit dem größtem Durchmesser unten liegt. Die anderen beiden Positionen seien leer. Die Steine dürfen verlegt werden. Allerdings muss darauf geachtet werden, dass in jeder Position die Größenreihenfolge eingehalten wird. Es darf also niemals ein kleinerer Stein unter einem größeren sein.

Nun sollen alle Steine von Position 1 nach Position 3 gebracht werden. Ausgegeben werden sollen die einzelnen Verrückungen der Steine.
Kann mir jemand einen Tipp geben, wie ich das in C++ programmieren kann?