Könnte mir jemand diese Aufgabe erklären?

mrbody23

Mitglied
Hallo.

Ich bräuchte Hilfe bei dieser Aufgabe. Ich weiß bei der Aufgabe, dass das - bei 2 dann bei 2 4 usw gesetzt werden muss. Aber wie setze ich das in die Schleife um? Mit dem Modulo operator? Und wie schreibe ich das hin.
Ich bitte um Hilfe!

LG
 

Anhänge

  • plus minus dreieck.PNG
    plus minus dreieck.PNG
    27,9 KB · Aufrufe: 55
Den Modulo-Operator kannst Du zwar verwenden, notwendig ist er für die Aufgabe aber nicht. Schau Dir die einzelnen Zeilen genau an. Wie viele Leerzeichen stehen am Zeilenanfang/-ende? Welche Zusammenhänge gibt es zur Höhe? Und ähnliches. Dann formulierst Du einen Algorithmus und den kodierst Du dann in Java.
 
Hallo, überlege dir mal, was hier anstelle der Punkte geschrieben werden könnte:
Java:
public class Dreiecke {
    public static void zeichneDreieckPlusMinus(int hoehe) {
        for (int h = 0; h < hoehe; h++) {
            for (int l = 0; l < (hoehe - h - 1); l++) {
                System.out.print(" ");
            }
            char c1 = '+';
            char c2 = '-';
            for (int l = 0; l < h * 2 + 1; l++) {
                System.out.print("+");
                // if (...)
                //     System.out.print(...);
                // else
                //     System.out.print(...);
            }
            for (int l = 0; l < (hoehe - h - 1); l++) {
                System.out.print(" ");
            }
            System.out.println();
        }
    }

    public static void main(String args[]) {
        zeichneDreieckPlusMinus(4);
    }
}
Ich sage nicht, dass es die schönte Variante wäre....
 
Mit dem Modulo operator?
Kurz als Info: Java hat keinen Modulo bzw. Modulus Operator. Du wirst in der Java Language Specification und offiziellen Oracle Dokumentationen keine einzige Stelle finden, an der ein "Modulo" Operator genannt wird. Der % Operator ist der Rest- bzw. Remainder-Operator.
Siehe auch: https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#floorMod-int-int-
The difference in values between floorMod and the % operator is due to the difference between floorDiv that returns the integer less than or equal to the quotient and the / operator that returns the integer closest to zero.
 
Hallo, überlege dir mal, was hier anstelle der Punkte geschrieben werden könnte:
Java:
public class Dreiecke {
    public static void zeichneDreieckPlusMinus(int hoehe) {
        for (int h = 0; h < hoehe; h++) {
            for (int l = 0; l < (hoehe - h - 1); l++) {
                System.out.print(" ");
            }
            char c1 = '+';
            char c2 = '-';
            for (int l = 0; l < h * 2 + 1; l++) {
                System.out.print("+");
                // if (...)
                //     System.out.print(...);
                // else
                //     System.out.print(...);
            }
            for (int l = 0; l < (hoehe - h - 1); l++) {
                System.out.print(" ");
            }
            System.out.println();
        }
    }

    public static void main(String args[]) {
        zeichneDreieckPlusMinus(4);
    }
}
Ich sage nicht, dass es die schönte Variante wäre....
Ich komme jetzt nicht drauf was ich mit den c1 und c2 machen soll. Ich muss ja an jeder 2 stelle ein minus in jeder Zeile herausgeben. Nur ich weiß jetzt nicht wie ich das in das if hineinschreiben soll. Könntest du mir da vielleicht noch einen Tipp geben? Ich danke dir trotzdem jetzt schon für deine Hilfe!
 
Hallo, überlege dir mal, was hier anstelle der Punkte geschrieben werden könnte:
Java:
public class Dreiecke {
    public static void zeichneDreieckPlusMinus(int hoehe) {
        for (int h = 0; h < hoehe; h++) {
            for (int l = 0; l < (hoehe - h - 1); l++) {
                System.out.print(" ");
            }
            char c1 = '+';
            char c2 = '-';
            for (int l = 0; l < h * 2 + 1; l++) {
                System.out.print("+");
                // if (...)
                //     System.out.print(...);
                // else
                //     System.out.print(...);
            }
            for (int l = 0; l < (hoehe - h - 1); l++) {
                System.out.print(" ");
            }
            System.out.println();
        }
    }

    public static void main(String args[]) {
        zeichneDreieckPlusMinus(4);
    }
}
Ich sage nicht, dass es die schönte Variante wäre....
Hab schon. Dankeschön!!!
 
Hier mal ohne Extrawürscht:

Java:
boolean gerade = true;
for (...) {
    if (gerade) {
    } else {
    }
    gerade = !gerade;
}
 

Zurück
Oben