Mit einer Schleife eine Treppe zeichnen

KogoroMori21

KogoroMori21

Mitglied
Guten Tag,
ich komme irgendwie bei der Aufgabe 2 a) mit der Treppe nicht weiter. Im Anhang befindet sich meine Zeile Code.

Ich weiß das ich das mit zwei Schleifen machen muss die ineinander verschachtelt sind, aber ich weiß nicht wie ich das anstellen soll. Theoretisch könnte ich für jede Zeile die Rechtecke zeichnen, aber das wäre gemogelt, also muss ich es mit einer Schleife darstellen :).

Ich bedanke mich jetzt schon mal für eure Mühen!
Code:
public class Dekoration {
    Interaktionsbrett ib = new Interaktionsbrett();
        
        public void treppe() {
            int i = 1;
            
            while ( i<=7) {
                                
                this.ib.neuesRechteck(30 * i,30 ,30,30);
                this.ib.neuesRechteck(30 * i*2,60 ,30,30);
                this.ib.neuesRechteck(30 * i*3,90 ,30,30);
                this.ib.neuesRechteck(30 * i*4,120 ,30,30);
                this.ib.neuesRechteck(30 * i*5,150 ,30,30);
                this.ib.neuesRechteck(30 * i*6,180 ,30,30);
                this.ib.neuesRechteck(30 * i*7,210 ,30,30);
                i = i + 7;
                
                
      }
    }       
}
 

Anhänge

  • Aufgabenstellung.JPG
    Aufgabenstellung.JPG
    47,9 KB · Aufrufe: 31
  • Code.JPG
    Code.JPG
    99,8 KB · Aufrufe: 26
Zuletzt bearbeitet:
MoxxiManagarm

MoxxiManagarm

Top Contributor
In der Aufgabenstellung steht "mit Hilfe zweier ineinandergeschachtelter Schleifen". Jetzt schaue deinen Code an :)

Als Beispiel hier mal eine Kleine Treppe auf der Konsole:
Java:
public class XTreppe {
    public static void main(String... args) {
        for (int i = 1; i <= 7; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print('X');
            }
            System.out.println();
        }
    }
}
 
temi

temi

Top Contributor
Schau dir das gewünschte Bild an und überlege, welche Schleife für welchen Teil zuständig ist. Dazu musst du schauen, welche Elemente x-mal in einer bestimmten Weise vorkommen, z.B.

***
***

Du siehst je 3 gleiche Elemente (*) und das zweimal (in zwei Zeilen).
 
MoxxiManagarm

MoxxiManagarm

Top Contributor
Mein Beispiel hilft ja erstmal gezielt für a)

Eventuell helfen dir gedanklich noch diese Tipps:
b) Die Pyramide ähnelt der Treppe, nur dass die einzelnen Zeilen ein gewisses Offset haben. Dieses Offset verringert sich mit jeder Zeile
c) Jede 2. Zeile hat eine andere "Definition". Ich schmeiße hier mal den Modulo-Operator in den Raum.
 
KogoroMori21

KogoroMori21

Mitglied
In der Aufgabenstellung steht "mit Hilfe zweier ineinandergeschachtelter Schleifen". Jetzt schaue deinen Code an :)

Als Beispiel hier mal eine Kleine Treppe auf der Konsole:
Java:
public class XTreppe {
    public static void main(String... args) {
        for (int i = 1; i <= 7; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print('X');
            }
            System.out.println();
        }
    }
}
Hey, wenn ich deine Schleife nehme und das mit dem this.ib.neuesRechteck probiere dann entsteht die Treppe immer noch nicht. Ich versteh nicht wieso, auf der Console zeigt er die Treppe an mit dem ('X') aber wenn ich das System.out.println ersetze durch
this.ib.neuesRechteck(30 * i,30 ,30,30);
dann entsteht die Treppe komischerweise nicht :/
 
KogoroMori21

KogoroMori21

Mitglied
Ich in guter Dinge, dass du den Dreh raus hast. Wenn du a verstanden hast sollten b und c auch nicht so schwer sein
Code:
        public void pyramide() {
            int rows = 5, k = 0;

            for(int i = 1; i <= rows; ++i, k = 0) {
                for(int space = 1; space <= rows - i; ++space) {
                    this.ib.neuesRechteck(30 * k, 30 * i, 30, 30 );
                    this.ib.neuesRechteck(30 * rows, 30 * k, 30, 30 );
                }

                while(k != 2 * i - 1) {
                    this.ib.neuesRechteck(30 * k, 30 * i, 30, 30 );
                    ++k;
                }

            }
        }
    }
Hey sorry ich bins nochmal, ich komme einfach seid freitag nicht weiter bei b), ich probier die ganze zeit rum aber kriege die pyramide irgendwie nicht ausgegeben. Hab es mit System.out.println versucht und die Pyramide lässt sich auf der Konsole darstellen aber nicht auf dem Interakationsbrett.
Und ich kriege es auch nicht hin das in zwei schleifen zu verpacken...
 

Anhänge

  • code.JPG
    code.JPG
    67,6 KB · Aufrufe: 7
MoxxiManagarm

MoxxiManagarm

Top Contributor
Bei b sollten die Schleifen gleich bleiben wie bei a. Nur die x Position eines rechtecks verändert sich um ein offset. Dieses offset ändert sich je Zeile, also in jedem Durchlauf der äußeren Schleife
 
KogoroMori21

KogoroMori21

Mitglied
Okay danke ich hab es gelöst 👍
jetzt kommt das schwierigste und das ist c) aber ich hab ja schon den Tipp @MoxxiManagarm das ich es mit Modulo machen muss
 
KogoroMori21

KogoroMori21

Mitglied
Guten Tag Leute, ich bins nochmal und hoffe es ist das letzte mal..
Ich habe einen Ansatz bei Aufgabe c) kriege aber die restliche Mauer nicht hin..
Code:
    public void mauer() {
        
        for (int i = 0; i <= 18; i++) {
            i++;
            for (int j = 1; j <= i; j++) {               
                this.ib.neuesRechteck(30 , 30 , 30 * i , 30 );
 

Anhänge

  • aufgabe c).JPG
    aufgabe c).JPG
    95,9 KB · Aufrufe: 5
MoxxiManagarm

MoxxiManagarm

Top Contributor
Versuche es doch in mehreren Schritten.
Schritt 1
1589806413716.png

Schritt 2 (wie 1, nur jede 2. Zeile verschoben)
1589806475529.png

Schritt 3 (Die Lücken füllen)
1589806554312.png
 
MoxxiManagarm

MoxxiManagarm

Top Contributor
for (int i = 0; i <= 18; i++) { i++; for (int j = 1; j <= i; j++) { this.ib.neuesRechteck(30 , 30 , 30 * i , 30 );
Im übrigen hast du hier immer die die gleiche Position x und y. Dafür machst du jedes Rechteck breiter. Optisch kommt man so bestimmt auch ans Ziel, ist aber vermutlich nicht Sinn der Übung :D Die Letzten beiden Werte müssten immer Konstant bleiben, außer für die Füllstücke
 
MoxxiManagarm

MoxxiManagarm

Top Contributor
Für das Verschieben (Schritt 2) gibt es aus meiner Sicht 3 Möglichkeiten
1. Du iterierst wie gehabt mit einer Schleife über die Zeilen. Anhand des Modulo-Operators wählst du dir eine Zeilendefinition aus (if-else)
2. Du iteriert wie gehabt mit einer Schleife über die Zeilen. Du hast 1 Zeilendefinition, aber bestimmst mit Modulo die Parameter (Tenary)
3. Du hast 2 for-Schleifen für die Zeilen. Eine Schleife iteriert die geraden und die andere Schleife iteriert die ungerade Zeilen. Jede Schleife hat ihre eigene Definition. Für die Variante brauchst du keinen Modulo, sondern einen Schleifen-Fortschritt von i += 2 anstatt i++.
 
KogoroMori21

KogoroMori21

Mitglied
Für das Verschieben (Schritt 2) gibt es aus meiner Sicht 3 Möglichkeiten
1. Du iterierst wie gehabt mit einer Schleife über die Zeilen. Anhand des Modulo-Operators wählst du dir eine Zeilendefinition aus (if-else)
2. Du iteriert wie gehabt mit einer Schleife über die Zeilen. Du hast 1 Zeilendefinition, aber bestimmst mit Modulo die Parameter (Tenary)
3. Du hast 2 for-Schleifen für die Zeilen. Eine Schleife iteriert die geraden und die andere Schleife iteriert die ungerade Zeilen. Jede Schleife hat ihre eigene Definition. Für die Variante brauchst du keinen Modulo, sondern einen Schleifen-Fortschritt von i += 2 anstatt i++.
Du hast mir echt geholfen, vielen Dank aber irgendwie komm ich trotzdem nicht drauf..
 
MoxxiManagarm

MoxxiManagarm

Top Contributor
MoxxiManagarm

MoxxiManagarm

Top Contributor
Selbstgebaut, sind nur wenige Zeilen Code und soll relativ nah an dem sein, was Kogoro da verwenden soll
Falls du daran teilhaben willst @mihe7... ^^Einfach mal quick & dirty hingebaut

Java:
public class Interaktionsbrett extends JFrame {
    private static double OFFSET = 10;

    private List<Rectangle2D> rechtecke = new ArrayList<>();

    public Interaktionsbrett() {
        setTitle("Interaktionsbrett");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JComponent zeichnung = new JComponent() {
            @Override
            protected void paintComponent(Graphics g) {
                super.paintComponent(g);
                Graphics2D g2d = (Graphics2D)g;
                rechtecke.forEach(g2d::draw);
            }
        };
        zeichnung.setPreferredSize(new Dimension(400, 400));
        add(zeichnung);

        pack();
        setVisible(true);
    }

    public void neuesRechteck(double x, double y, double breite, double hoehe) {
        rechtecke.add(new Rectangle2D.Double(OFFSET + x, OFFSET + y, breite, hoehe));
    }
}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
S Warum kann ich nicht mehr als eine Variable in einer for Schleife deklarieren ? Java Basics - Anfänger-Themen 1
C Compiler-Fehler Wird eine if Bedingung nach einer for-Schleife nach jeder Iteration überprüft? Java Basics - Anfänger-Themen 1
T Bestimmte Zahlen ausgeben mit einer whilfe Schleife Java Basics - Anfänger-Themen 21
DorFey Schrittweises abändern des GUI während for-Schleife / pausieren einer for-Schleife Java Basics - Anfänger-Themen 3
S Variablen Variablen in einer Schleife erstellen lassen Java Basics - Anfänger-Themen 11
T Ausgabe einer for Schleife Java Basics - Anfänger-Themen 2
M Ist es möglich, das größte und zweitgrößte element in einem Array mit nur einer Schleife ausfindig zu machen ? Java Basics - Anfänger-Themen 19
B Berechnung zu einer Schleife formen Java Basics - Anfänger-Themen 6
F Abbruchbedingung einer For-Schleife Java Basics - Anfänger-Themen 5
O Wert in einer Schleife unterschiedlich erhöhen Java Basics - Anfänger-Themen 2
X Wie Rechnet man in einer For-Schleife *? Java Basics - Anfänger-Themen 3
Z Boolean Abfrage in einer for each Schleife Java Basics - Anfänger-Themen 2
M Objekte mit einer Schleife mehrmals erzeugen Java Basics - Anfänger-Themen 17
J 2 "while"-Anweisungen in einer do-Schleife? Java Basics - Anfänger-Themen 4
S Try-Catch in Verwendung einer while Schleife Java Basics - Anfänger-Themen 2
P a cannot be resolved bei einer do while Schleife Java Basics - Anfänger-Themen 1
S Wie verwende ich ne aus einer Schleife nach der Schleife? Java Basics - Anfänger-Themen 9
V Erste Schritte Array.length[x] in einer Schleife - ich verstehe das nicht Java Basics - Anfänger-Themen 1
T Objekt-Arrays mit einer Schleife durchlaufen/ausgeben Java Basics - Anfänger-Themen 2
V for-Schleife in einer void Methode Java Basics - Anfänger-Themen 3
M abbruch innerhalb einer Rekursiven Schleife Java Basics - Anfänger-Themen 5
H Variablen einer Schleife zwischenspeichern Java Basics - Anfänger-Themen 2
E Alphabet mit einer while Schleife ausgeben Java Basics - Anfänger-Themen 3
B Wiederholen einer if/switch-case Schleife Java Basics - Anfänger-Themen 9
L Anonyme Methode in einer ForEach-Schleife Java Basics - Anfänger-Themen 2
S int-Array mittels Arrays.sort() in einer Schleife sortieren. Java Basics - Anfänger-Themen 2
P ergebnis einer schleife wiedergeben Java Basics - Anfänger-Themen 8
L Frage zum Doppelpunkt in einer for Schleife Java Basics - Anfänger-Themen 4
G Frage zu einer For- Schleife Java Basics - Anfänger-Themen 3
J Vereinfachen einer Schleife Java Basics - Anfänger-Themen 2
A Variablen aus einer Schleife gezielt auslesen Java Basics - Anfänger-Themen 11
M SQL in einer Schleife Java Basics - Anfänger-Themen 7
B OOP Objekte erzeugen mit Hilfe einer for Schleife Java Basics - Anfänger-Themen 29
P Schleife zur Berechnung von einer Summe Java Basics - Anfänger-Themen 16
J Prüfung einer Schleife mit Eingabefeldern Java Basics - Anfänger-Themen 3
J Methoden Wert im Block einer for-Schleife wird nicht aktualisiert Java Basics - Anfänger-Themen 9
S Unbeschaeftigten Thread in einer Schleife schlafen legen? Schlechter Stil? Java Basics - Anfänger-Themen 7
L Next()-Aufruf zweimal innerhalb einer While-Schleife bei ListIterator Java Basics - Anfänger-Themen 10
I Mehrere ArrayLists mit einer for( : ) Schleife auf Inhalt prüfen Java Basics - Anfänger-Themen 6
B if-else in einer schleife Java Basics - Anfänger-Themen 14
C Methoden Objekte mit Hilfe einer Schleife in einer ArrayList erzeugen Java Basics - Anfänger-Themen 26
M BufferdReader in einer Schleife ... Java Basics - Anfänger-Themen 14
D Summe von Eingaben in einer for Schleife Java Basics - Anfänger-Themen 4
N Nächste Frage aufrufen in einer Schleife Java Basics - Anfänger-Themen 8
K Unterschied zwischen break und continue in einer Schleife Java Basics - Anfänger-Themen 14
O Transponieren einer Matrix per While-Schleife Java Basics - Anfänger-Themen 3
J Einem String-Array in einer for-Schleife Strings zuweisen - Klappt nicht in einer for-Schleife Java Basics - Anfänger-Themen 5
V ActionListener in einer for-Schleife Java Basics - Anfänger-Themen 2
X Variablen Variablen erzeugen in einer Schleife? Java Basics - Anfänger-Themen 6
B Wert einer while-Schleife nach Abarbeitung Java Basics - Anfänger-Themen 2
Killerjo96 Erste Schritte Problem mit dem Sichern einer If Schleife Java Basics - Anfänger-Themen 5
C Befehl zum Verlassen einer Schleife Java Basics - Anfänger-Themen 27
O Ungleiche Objekte in einer Schleife erstellen Java Basics - Anfänger-Themen 3
T OOP Objekte einer Klasse mit schleife auslesen Java Basics - Anfänger-Themen 7
V Problem mit einer While Schleife Java Basics - Anfänger-Themen 8
L Datei verschieben mit einer Schleife Java Basics - Anfänger-Themen 17
J In einer for Schleife zu einer Zahl 4 addieren? Java Basics - Anfänger-Themen 3
F Problem mit einer Schleife Java Basics - Anfänger-Themen 10
G Keylistener in einer Schleife Java Basics - Anfänger-Themen 9
O Methode - Problem mit Subtraktion in einer while-Schleife Java Basics - Anfänger-Themen 2
Dit_ Daten vom Server in einer Schleife Java Basics - Anfänger-Themen 4
M Oder in einer While-Schleife Java Basics - Anfänger-Themen 7
S while schleife in einer Methode Java Basics - Anfänger-Themen 11
M Effizienter Variablen außerhalb einer Schleife zu deklarieren? Java Basics - Anfänger-Themen 1
C Variable Zeichenkette innerhalb einer Schleife ersetzen Java Basics - Anfänger-Themen 4
A [gelöst]Objekte in einer Schleife erzeugen Java Basics - Anfänger-Themen 9
B Formatieren des Resultates einer for-Schleife Java Basics - Anfänger-Themen 2
A next in einer Schleife Java Basics - Anfänger-Themen 2
C Verwendung von Matrizen in einer Schleife Java Basics - Anfänger-Themen 5
M warten in einer while-schleife Java Basics - Anfänger-Themen 12
G Zahlen addieren in einer Schleife Java Basics - Anfänger-Themen 4
X Zuweisungsproblem bei einer Schleife Java Basics - Anfänger-Themen 4
M if Abfrage innerhalb einer for-Schleife Java Basics - Anfänger-Themen 2
M if Abfrage innerhalb einer for-Schleife Java Basics - Anfänger-Themen 3
Antoras Zahlen mischen und mit einer for-Schleife Summe berechnen Java Basics - Anfänger-Themen 12
G Alle Buttons in einer For Schleife ändern Java Basics - Anfänger-Themen 5
M Abbruch einer for Schleife Java Basics - Anfänger-Themen 3
D Probleme bei einer for Schleife Java Basics - Anfänger-Themen 20
M Variablenname mithilfe einer schleife erstellen? Java Basics - Anfänger-Themen 2
G wurzel durch probieren in einer schleife bekommen Java Basics - Anfänger-Themen 5
S Ergebnisse einer while Schleife zusammenfassen Java Basics - Anfänger-Themen 4
H Banner anklicken in einer schleife Java Basics - Anfänger-Themen 7
T Durchlauf einer for-Schleife unterbrechen - wie ? Java Basics - Anfänger-Themen 11
NightmareVirus 2 Abbruch Bedingungen in einer for-schleife Java Basics - Anfänger-Themen 2
S Probleme mit einer for-Schleife Java Basics - Anfänger-Themen 3
J Objekte in einer for schleife referenzieren Java Basics - Anfänger-Themen 7
R An den Anfang einer While-Schleife springen Java Basics - Anfänger-Themen 2
J Programmierprobleme bei einer for-Schleife Java Basics - Anfänger-Themen 7
C addMouseListener in einer Schleife zuweisen Java Basics - Anfänger-Themen 3
D Aus einer Schleife springen Java Basics - Anfänger-Themen 13
B Wie kann ich in einer Schleife Objekte erzeugen? Java Basics - Anfänger-Themen 5
B Probleme bei ResultSet in einer While-Schleife Java Basics - Anfänger-Themen 2
G Objekte in einer Schleife erzeugen Java Basics - Anfänger-Themen 2
A Methode in einer anderen Klasse verwenden Java Basics - Anfänger-Themen 1
U Compiler-Fehler Programmierung einer Drehkugel Java Basics - Anfänger-Themen 8
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
jonny_2k12 Wie kann ich eine ArrayList aus einer Klasse in eine andere übergeben? Java Basics - Anfänger-Themen 21
L Datentypen Deklarierte Felder einer Generic Klasse bestimmen Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Anzeige

Neue Themen


Oben