Wie kann ich die Aufgabe lösen in JavaKara?
Ich habe einen Auftrag von meinem Datentechniklehrer (Ich gehe auf das BG, weswegen es anders heißt) bekommen, wo ich ein Quadrat legen soll mit der Länge 7 Kleeblätter pro Seite. Ich soll diese Aufgabe mit zwei geschachtelten for Schleifen lösen, aber ich weiß nicht, wie ich das lösen soll. Ich habe nicht so viel Erfahrung mit Programmieren. Ich füge noch ein Bild von der Aufgabe ein, damit ihr mir besser helfen könnt. Freunde kann ich nicht fragen, denn die schlafen alle schon und möchte diese Aufgabe mal heute hinbekommen mit ein bisschen Hilfe. Ich hoffe, ihr könnt mir weiterhelfen.
Ich bedanke mich schon mal im Voraus.
Die Aufgabe:
1. Kara soll ein Quadrat aus Kleeblättern mit der Seitenlänge 7 legen. Verwende 2 geschachtelte Zählschleifen.
Schreibe das Programm.
2 Antworten
Mein Name ist Geronimo Röder,
Du musst das Problem aufteilen und bei dem Basis anfangen. Benutzen sollst du 2 "for-schleifen" benutzen, jetzt kannste dir überlegen was das Abbruchkriterium für die beiden sein soll, und da es zählende For-schleifen werden bleiben dir nur Zahlen über. So welchen haben wir denn da, einmal eine 7, also die Anzahl der Kleeblätter. Nun das 2 Kriterium ist etwas weniger offensichtlich aber dennoch logisch nämlich 4, für die anzahl der ecken eines Quadrates.Jetzt Soll Kara an jeder Seite Blätter legen Heißt du brauchst eine schleife zum ablegen die bis 7 läuft und eine zum drehen dei bis 4 läuft (bzw. 3 weil du ja die erste Seite nicht doppelt machen willst) .Nun schachtelst du wie folgt:
for(int i=0,i<3,i++){
for(int o=0,o<6,o++){
legeblatt();
geheVor();
}
dreheRechts();
}
Gruß der Röder
Mhhh, ich habe es so verstanden, dass er ein ausgrfülltes Quadrat legen soll. Aber das macht mehr Sinn. Andernfalls hätte man mit % arbeiten müssen, und glaub das ist zu weit. Dennoch habe ich eine Korrektur vorzunehmen:
for(int i=0,i<3,i++){
for(int o=0,o<6,o++){
geheVor();
legeblatt();
}
dreheRechts();
}
Andernfalls hat das Quadrat nur eine Seitenlänge von 6 und das letzte Blatt wird auf den start gelegt;)
Vielen Dank für deine Antwort. Ich schätze sie sehr. Jetzt habe ich es verstanden! Danke nochmal Geronimo Röder!!
Ich füge noch ein Bild von der Aufgabe ein
Hast du nicht gemacht, ist aber auch ohne verständlich.
Letztendlich hast du zwei for-Schleifen. Die äußere ist für die "Zeilen" zuständig, die innere für die "Spalten". D.h. die innere legt eine jedes einzelne Kleeblatt, bis die Zeile voll ist, dann wendet Kara und es wird eine weitere Zeile gelegt. Die äußere for-Schleife steuert somit, wie oft dies wiederholt werden soll.
Solltest du jetzt noch nicht auf die Lösung kommen können, hier eine mögliche Lösung (allerdings mit ausgedachten Methodennamen, weil ich JavaKara vor vielen Jahren das letzte Mal benutzt habe und die nicht mehr kenne):
int wendeArt = 0; for(int i = 0; i < 7; i++) { for(int j = 0; j < 7; j++) { kara.legeKleeblatt(); kara.gehe(); } for(int k = 0; k < 2; k++) { if(wendeArt == 0) { kara.dreheLinks(); } else { kara.dreheRechts(); } kara.gehe(); } if(wendeArt == 0) { wendeArt = 1; } else { wendeArt = 0; } }
Dabei muss Kara nach rechts ausgerichtet starten.