For Schleife - Verschachtelt < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 13:44 So 17.01.2010 | Autor: | marco21 |
Hallo,
wir haben in Informatik gerade mit Java angefangen, und sollen das nun zu Hause und im Unterricht selber mit folgender Seite lernen:
http://www.clab-forschung.phbern.ch/lego/turtleGrafik.php?inhalt_links=turtle/nav_turtleTu.inc.php&inhalt_mitte=turtle/turtle.inc.php
Wir machen gerade die Turtlegrafik. Allerdings stecke ich bin Serie 2, Aufgabe 6 fest. Dort soll eine Art Pyramide gezeichnet werden (siehe Seite)
Ich habe mir dafür folgenden Programmcode überlegt:
----------------------------------------------------------
//Step26.java
import ch.aplu.turtle.*;
class Step26
{
Turtle t = new Turtle();
Step26()
{
for (int c = 0; c < 6; c++)
{
for (int b = 0; b < 1; b++)
{
for (int a = 0; a < 6; a++)
{
t.right(180);
t.forward(20);
t.right(90);
t.forward(20);
t.left(90);
t.right(180);
}
t.home();
}
t.right(180);
t.forward(20);
t.left(90);
t.forward(20);
t.right(90);
t.left(180);
}
}
public static void main (String[] args)
{
new Step26();
}
}
-----------------------------------------------------------
Der ist zwar ein bisschen umständlich, aber tut bei der ersten Treppe seinen Zweck, die zweite sieht jedoch fast genauso aus!
Was mache ich falsch... vielleicht könnt ihr mir helfen!
MfG:
Marco
PS: Der Zipfel oben dran ist nicht so schlimm, auch wenn er nicht in der Aufgabe ist!
Danke sehr!
|
|
|
|
Hallo Marco,
In Python gibt es standardmäßig das Packet 'turtle' mit dem man auch solche Dinge zeichnen kann. Java und Python sind sich syntaktisch sehr ähnlich. Es sollte also nicht schwer fallen das Folgende in Java zu übersetzen:
1: | import turtle
| 2: |
| 3: | turtle.right(180)
| 4: | turtle.forward(20)
| 5: |
| 6: | for s in [1,-1]:
| 7: | for a in range(6):
| 8: | turtle.right(s*90)
| 9: | turtle.forward(20)
| 10: | turtle.left(s*90)
| 11: | turtle.forward(20)
| 12: |
| 13: | turtle.left(180)
| 14: | turtle.home() |
Viele Grüße
Karl
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 14:45 So 17.01.2010 | Autor: | marco21 |
Hi Karl,
Erstmal danke sehr für die Antwort, bloß mein Problem: Ich kann Java noch nicht sehr gut, geschweige denn Python! Trotzdem erstmal danke, für die Mühe! Allerdings, muss ich das ganze ja mit einer for-Schleife in Java machen, kennst du dich damit auch aus? Wenn ja, wäre das echt klasse, du könntest mir so helfen ;)
MfG aus dem hohen Norden und Danke:
Marco
|
|
|
|
|
Hallo Marco,
Okay, dann versuch' mal folgendes:
1: | turtle.right(180);
| 2: | turtle.forward(20);
| 3: |
| 4: | int s = 1;
| 5: | int k = 0;
| 6: |
| 7: | while k < 2 {
| 8: | for (int a = 0; a < 6; a++) {
| 9: | turtle.right(s*90);
| 10: | turtle.forward(20);
| 11: | turtle.left(s*90);
| 12: | turtle.forward(20);
| 13: | }
| 14: |
| 15: | s = -1;
| 16: | k = k + 1;
| 17: | }
| 18: |
| 19: | turtle.left(180);
| 20: | turtle.home(); |
Allerdings habe ich jetzt auf die Schnelle keinen Java-Compiler zur Hand um es auf syntaktische Fehler zu prüfen bzw. auszuprobieren.
Viele Grüße
Karl
|
|
|
|