Quadrat Mit Muster

fox001

Mitglied
Hallo,
Ich habe ne Frage zu einer Aufgabe die wir unter anderem über die "Corona Ferien" aufbekommen haben und zwar soll man ein Quadrat mit einem Muster erstellen, dass über die Benutzereingabe ausgegeben wird(Datei). Mein erster Gedanke wären 2 for Schleifen und danach ne if else Verzweigung gewesen, doch ganz verstanden habe ich das ganze noch irgendwie nicht, da wir sowas auch noch nie gemacht haben.
Hoffe mir kann jemand helfen.
Danke schon einmal im Voraus.
 

Anhänge

  • Uebung16.pdf
    330,2 KB · Aufrufe: 13

fox001

Mitglied
Java:
import java.util.*;
public class QuadratMitMuster {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Gib einen Wert ein");
        int number = sc.nextInt();
        for (int a = 0; a <= number; a++) {
            for (int b = 1; b < a; b++) {
                if(a < number) {
                    System.out.print("O");
                }
                else {
                    System.out.println("*");
                }
                System.out.println();
            }
        }
    }
}
 
K

kneitzel

Gast
Da wäre evtl. sinnvoll, erst einmal zu überlegen, was Du genau machen möchtest...

Oder wir tasten uns erst einmal langsam ran - vereinfachen wir die Aufgabe erst einmal so, dass wir nur ein Quadrat mit # schreiben wollen.
Du hast die number eingelesen.

Wie kannst Du jetzt number Zeilen mit jeweils number Elementen schreiben?
Kannst Du dazu einmal in Worten schreiben, was Du machen würdest? Wie gehst Du da vor, wenn Du das von Hand mit Papier und Stift machen würdest?
 

fox001

Mitglied
Also ich würde mal 2 verschachtelte for schleifen machen, in der ersten deklariere ich halt mal Zb: number1 = 0 ,dann würde ich sagen das die Variable immer kleiner als die eingegebe Zahl ist und am schluss halt number1++ und bei der zweiten for Schleife genauso, einziger Unterschied dann number2 statt number1. Danach gebe ich die # aus und außerhalb der Scheife dann noch ein leere Ausgabe und das wars.
Also hier als Code:
Java:
import java.util.*;
public class HAA {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Gib einen Wert ein");
        int hoehe = sc.nextInt();
        for (int number1 = 0; number1 < hoehe; number1++) {
            for (int number2 = 0; number2 < hoehe; number2++) {
                System.out.print("#");
            }
            System.out.println();
        }
    }
}
 
K

kneitzel

Gast
Ja, sehr gut. Als Verbesserungsvorschlag hätte ich da jetzt maximal die Variablennamen ... number1 und number2 sagen nichts aus. Wichtig ist halt, dass die äußere Schleife die Zeilen und die innere die Zeile behandelt. Das ist doch schon top.

Jetzt wird es etwas komplexer - nicht von der Programmierung her sondern von der Logik ... denn wir wollen ja jetzt abwechselnd zwei Zeichen schreiben...
Dazu brauchen wir ein Kriterium: Wenn Du in Zeile 1 hast: 0*0*0 und dann in Zeile 2 *0*0*:
Fällt Dir da evtl. irgend ein Kriterium ein, wie Du da unterscheiden kannst ... Schau Dir dazu einfach einmal zu jedem 0 und * an, was da number1 und number2 für Werte hat.
 
K

kneitzel

Gast
Oh, die Möglichkeit hab ich nicht gesehen. Sehr gut! Ist deutlich besser als meine Idee!

(Meine Idee wäre etwas wie (number1 + number2) % 2 == 0 gewesen. Aber Du hast da etwas deutlich besseres gefunden!)

Schaffst Du es, da nun in deinen Code das als Bedingung noch einzubauen?
 
K

kneitzel

Gast
Oh, die Möglichkeit hab ich nicht gesehen. Sehr gut! Ist deutlich besser als meine Idee!

(Meine Idee wäre etwas wie (number1 + number2) % 2 == 0 gewesen. Aber Du hast da etwas deutlich besseres gefunden!)

Schaffst Du es, da nun in deinen Code das als Bedingung noch einzubauen?
Ups, ich war zu schnell. ganz so einfach ist es doch nicht. Ansonsten hast Du nur ein
0*****
*0****
**0***
...

Aber du könntest ein (number1 % 2) != (number2 % 2) machen. (Was ähnlich ist wie meine Idee). Das wäre dann die Prüfung, ob beides ungerade ist oder beides gerade ...
 

fox001

Mitglied
Java:
import java.util.*;
public class HAA {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Gib einen Wert ein");
        int hoehe = sc.nextInt();
        for (int number1 = 0; number1 < hoehe; number1++) {
            for (int number2 = 0;number2 < hoehe; number2++) {
                if((number1 % 2) != (number2 % 2)){
                    System.out.print("O");
                }
                else {
                    System.out.print("*");
                }
            }
            System.out.println();
        }
    }
}
Ich weiß irgendwie noch nicht ganz wie ich es richtig einbaue...
 
K

kneitzel

Gast
Ok, das war jetzt definitiv mein Fehler. Ich habe nicht in das PDF geschaut und bin bei Muster irgendwie von diesem Schachbrett-Muster ausgegangen, das Dein Code ja korrekt hat:
Code:
C:\Projects>java HAA
Gib einen Wert ein
5
*O*O*
O*O*O
*O*O*
O*O*O
*O*O*

C:\Projects>

Also sorry wenn ich dich verwirrt habe. Damit war Dein Ansatz natürlich schon relativ gut.

Probier einmal die Bedingung aus, die Du zuerst geschrieben hast. Das ist noch nicht die Lösung, aber mach es einmal und vergleiche es mit der Vorgabe. Also in #7 wolltest Du wohl number1 != number2 prüfen.

Oder Du überlegst, was die Werte sind, wenn das andere Zeichen kommen soll:
number1 = 0, number2 = hoehe-1
number1 = 1, number2 = hoehe-2
number1 = 2, number2 = hoehe-3
Kannst Du daraus evtl. auch so schon eine Regel finden?

Und noch einmal sorry, dass ich ab #6 so total das falsche Ziel vor Augen hatte...
 

fox001

Mitglied
Java:
import java.util.*;
public class QuadratMitMuster {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Gib einen Wert ein");
        int hoehe = sc.nextInt();
        for (int number1 = 0; number1 < hoehe; number1++) {
            for (int number2 = 0;number2 < hoehe; number2++) {
                if(number1 != number2){
                    System.out.print("O");
                }
                else {
                    System.out.print("*");
                }
            }
            System.out.println();
        }
    }
}
Irgendwie komme Ich nicht drauf, habe es eben mit number1 != number2 gemacht, da ist es eben
 
K

kneitzel

Gast
Also wenn man sich die Reihe anschaut, dann könnte man mal prüfen:
number2 == hoehe - 1 - number1
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ü Methode soll Quadrat aus der Summer zurückgeben Java Basics - Anfänger-Themen 10
MaZ Quadrat Schleife(Pyramide) Java Basics - Anfänger-Themen 9
xXDasFischXx quadrat Java Basics - Anfänger-Themen 1
J Quadrat mit Diagonalen Java Basics - Anfänger-Themen 3
J Einfaches Quadrat auf der Console ausgeben lassen Java Basics - Anfänger-Themen 7
K Erste Schritte Nenner zum Quadrat Java Basics - Anfänger-Themen 10
M Quadrat zeichnen einfach bitte! Java Basics - Anfänger-Themen 2
C Input/Output Magisches Quadrat Rechts Formatieren Java Basics - Anfänger-Themen 4
S math Methoden in Java (quadrat) Java Basics - Anfänger-Themen 7
F Das magische Quadrat Java Basics - Anfänger-Themen 8
J Negatives Quadrat bei hohen Basen Java Basics - Anfänger-Themen 11
L Magisches Quadrat und Backtracking Java Basics - Anfänger-Themen 19
S Magisches Quadrat Java Basics - Anfänger-Themen 9
F Rechteck/Quadrat getroffen? Java Basics - Anfänger-Themen 2
K Rechteck/Quadrat Java Basics - Anfänger-Themen 5
P Quadrat und Wurzel HILFE!!!!! Java Basics - Anfänger-Themen 13
T Quadrat mit Array?? Java Basics - Anfänger-Themen 9
G Quadrat in Java Java Basics - Anfänger-Themen 9
J Quadrat mit variabler Kantenlänge Java Basics - Anfänger-Themen 3
G Quadrat mit Diagonalen ausgeben Java Basics - Anfänger-Themen 4
K Farbenspiel : Quadrat verschwindet,wenn Fenster inaktiv ist Java Basics - Anfänger-Themen 13
E Magisches Quadrat - wie bring ich des fertig? Java Basics - Anfänger-Themen 2
E Durch Muster in Array iterieren Java Basics - Anfänger-Themen 3
B Dekorator Muster - Irgendwas stimmt hier doch nicht? Java Basics - Anfänger-Themen 4
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
frager2345 Java Singleton Muster -> Methode für Konstruktor mit Parametern Java Basics - Anfänger-Themen 3
1 Wie dieses Muster am einfachsten erkennen? Java Basics - Anfänger-Themen 32
H Muster mit verschachtelten Schleifen kreieren. Java Basics - Anfänger-Themen 2
Yasemin bahar Muster erkennen Java Basics - Anfänger-Themen 13
C Erste Schritte Muster ausgeben in der Konsole - großes V Java Basics - Anfänger-Themen 5
U Muster in einem Array erkennen Java Basics - Anfänger-Themen 8
J Muster und Schleifen Java Basics - Anfänger-Themen 33
R 2D Arrays mit vorgegebenem Muster Java Basics - Anfänger-Themen 2
E Arrays nach best Muster füllen Java Basics - Anfänger-Themen 4
K String nach bestimmtem Muster parsen Java Basics - Anfänger-Themen 3
P Sägezahn Muster Programm Java Basics - Anfänger-Themen 2
C Array Muster erzeugen Java Basics - Anfänger-Themen 2
J Erste Schritte zweidimensionales Array Muster befüllen. Java Basics - Anfänger-Themen 4
J Strukturierung mit MVC Muster Java Basics - Anfänger-Themen 20
J Array Muster mit true und false Java Basics - Anfänger-Themen 6
C Muster programmieren Java Basics - Anfänger-Themen 4
C Muster programmieren Java Basics - Anfänger-Themen 4
E Muster auf der Konsole ausgeben lassen (Schleifen) Java Basics - Anfänger-Themen 7
arti28 Erste Schritte For-Schleifen und While-Schleifen, String als Muster ausgeben. Java Basics - Anfänger-Themen 3
L Java Muster Java Basics - Anfänger-Themen 1
Todesbote String auf Muster überprüfen Java Basics - Anfänger-Themen 19
C Array Zickzack Muster Java Basics - Anfänger-Themen 3
P RegEx Muster mehrfach treffen Java Basics - Anfänger-Themen 2
M Muster erkennen. Idee: Fassade. Java Basics - Anfänger-Themen 3
Dit_ Regex | Muster {a}{b}{c} Java Basics - Anfänger-Themen 7
pindakaas Compiler geht nicht (Dekorator Muster) Java Basics - Anfänger-Themen 18
M Datentypen Strings nach Muster auslesen und verarbeiten Java Basics - Anfänger-Themen 5
S X Zeichnen als Muster ausgeben Java Basics - Anfänger-Themen 5
R Muster ausgeben Java Basics - Anfänger-Themen 4
H Muster ausgeben Java Basics - Anfänger-Themen 25
G String auf Muster prüfen Java Basics - Anfänger-Themen 5
O useDelimiter / Muster im Parameter (Pattern) Java Basics - Anfänger-Themen 6
S OOP Warum gleiche Instanz der Klasse? (Factory-Muster) Java Basics - Anfänger-Themen 13
L Sägezahn Muster Java Basics - Anfänger-Themen 4
C Muster mit Zweidimensionalen Arrays Java Basics - Anfänger-Themen 18
0 Applet mit folgendem Muster erstellen Java Basics - Anfänger-Themen 12
P Fragen zum Observer Muster und Datenbanken Java Basics - Anfänger-Themen 2
Z Muster Java Basics - Anfänger-Themen 9
J nach Muster in String suchen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben