Zeichenmustr malen mit Eingabe

graai

Mitglied
Hallo, ich weiß leider gar nicht mehr weiter wir haben diese Aufgabenformulierung bekommen, aber ich weiß einfach nicht wie zu beginnen. Die Aufgaben lauten:

Zeichenmuster malen

Erstellen Sie ein Java-Programm, das das folgende Muster auf der Konsole ausgibt:

*
***
*****
***
*

Hinweise:

Verwenden Sie Schleifen (for, while) um das Muster zu erzeugen.
Beachten Sie, dass die Größe des Musters variabel sein soll. Schreiben Sie das Programm so, dass die Höhe des Musters durch eine Variable n bestimmt wird. Die Höhe n muss eine ungerade Zahl sein.
Stellen Sie sicher, dass Ihr Programm Eingaben des Benutzers überprüft und sicherstellt, dass nurgerade Zahlen akzeptiert werden.

Beispiel:

Wenn n = 5 ist, sollte das Programm folgendes Muster ausgeben:

*
***
*****
***
*
Könntet ihr mir vielleicht weiterhelfen?

Das Musster soll so aussehen:
Code:
  * 
 ***
*****
 ***
  *
 

KonradN

Super-Moderator
Mitarbeiter
Und noch als Ergänzung zu dem, was ich in dem anderen Thread geschrieben habe:

Mach Dir bewusst, was Du genau schreiben sollst. Also nicht nur das Muster sondern zähle die Zeichen. Was ist in der ersten Zeile? 2 Leerzeichen 1 Sternchen
2. Zeile? 1 Leerzeichen 3 Sternchen
3. Zeile? 0 Leerzeichen 5 Sternchen
...
Wenn man die Zahlen sieht, dann hat man es evtl. einfacher, die Regeln zu finden. Hier hat man zwei Reihen;
2, 1, 0
1, 3, 5
jetzt ist die Frage, was als Grenze gegeben wurde. Eventuell die Breite an Sternchen an der breiteste Stelle? Also die 5?

Dann wäre die Frage, wie sieht das Ergebnis aus bei den einzelnen anderen Werten. Da einfach auch die Zahlenwerte aufschreiben und dann siehst Du evtl. eine Regel. Die zweite Reihe scheint bei 1 zu starten, immer +2 zu haben und das, so lange es kleiner oder gleich dem maximalen Wert ist. Siehst Du sowas in der Art auch bei der ersten Reihe?

Und dann evtl. noch der Hinweis: Überlege, die Aufgaben aufzuteilen. Setzt sich das Muster evtl. aus teilen zusammen? Hintergrund ist, dass Du ja z.B. Zählschleifen hast und die laufen nur in eine Richtung. Wenn etwas erst zunimmt und dann abnimmt oder umgekehrt, dann kann man das ggf. aufteilen in zwei Schleifen: Erst macht man den aufsteigen Teil. Wenn der Teil fertig ist, dann macht man den absteigenden Teil.
 

LimDul

Top Contributor
Ich kann Konrads Antwort nur unterstreichen. Nicht direkt anfangen zu programmieren, sondern sich Gedanken machen.

Ein paar Fragen stellen und versuchen, das Muster zu erkennen und wirklich mit ganz simpen Sätzen zu beschreiben:

Es ist ein Muster, was in der Mitte gespiegelt ist. Was ist die mittlere Zeile, wie kannst du die Zeilennummer ermitteln, was die mittlere Zeile ist, wenn die Gesamtzahl der Zeilen n ist und n ungerade ist? Im Zweifelsfall einfach aufschreiben:
3 Zeilen: Mittlere ist Zeile 2
5 Zeilen: Mittlere ist Zeile 3
7 Zeilen: Mittlere ist Zeile 4
765 Zeilen: Mittlere Zeile 383

Es ist ein gespiegeltes Muster, betrachten wir erst mal nur die obere Hälfte (Alle Zeilennummern sind jetzt in der oberen Hälfte)
Wie viele Sterne werden in Zeile 1 ausgeben? Einer
Wie viele Sterne werden in Zeile 2 ausgeben? Drei
Wie viele Sterne werden in Zeile 3 ausgeben? Fünf
....

Jetzt die Leerzeichen. Wie lang ist die längste Zeile mit Sternen, wenn es insgesamt n Zeilen gibt? Offensichtlich ist die mittlerste Zeile die längste Zeile. Aus den beiden obigen Themen kann man dann ermitteln, wie viele Zeichen die Zeile enthält.

Wenn man nun drüber nachdenkt, dass im Prinzip jede Zeile gleich lang, mit Leerzeichen identisch vor und hinter den Sternen aufgefüllt wird. Wenn nun weiß: In Zeile i sind m Sterne und die Gesamtlänge der Zeile ist x - dann kann man ausrechnen, wie viele Leerzeichen man schreiben muss.
Beispiel, Zeile ist 11 Zeichen lang, es sollen 3 Sterne ausgegeben werden. Bleiben 8 Leerzeichen über - vier vor den drei Sternen, vier nach den drei Sternen.

Und damit hat man das Problem in ganz viele sehr kleine Probleme zerlegt. Danach ist es meistens deutlich einfach das zu programmieren.
 

KonradN

Super-Moderator
Mitarbeiter
Viiiielen Dank, nun weiß ich bescheid. 😊 Und wie sehe dann die Eingabemöglichkeit sein?
Ihr werden doch schon irgend eine Art der Eingabe verwendet haben. Eine Möglichkeit ist z.B. die Klasse Scanner um dann für die Eingabe der Zahl nextInt() zu nutzen.

Aber natürlich geht es auch anders, so gibt es teilweise eigene Libraries (die dann dem Lehrer / Dozent die Tests erleichtern) oder man nutzt direkt System.in um Daten zu lesen und dann selbst auszuwerten. Aber ich denke, der Scanner ist mit am weitesten verbreitet.
 

graai

Mitglied
Ich verseh gar nicht wie ich das machen muss, habe mit Scanner bisher nicht umgegangen, hätten Sie möglicherweise einen Beispielcode für mich?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Auf einem JLabel Linien Malen Java Basics - Anfänger-Themen 1
ben0376 Gesicht malen Java Basics - Anfänger-Themen 6
T Einen Stern malen Java Basics - Anfänger-Themen 32
T Einen Stern malen Java Basics - Anfänger-Themen 2
I In der Mitte eines Frames mit BorderLayout etwas malen Java Basics - Anfänger-Themen 7
L Tetris-Segment "malen" Java Basics - Anfänger-Themen 7
J Zweimal im gleichen Paint-Fenster malen Java Basics - Anfänger-Themen 8
Y im applet malen ohne repaint paint ? Java Basics - Anfänger-Themen 6
B polyline auf buffered image malen Java Basics - Anfänger-Themen 2
H Animation malen! Java Basics - Anfänger-Themen 2
U PPM Datei in jPanel malen Java Basics - Anfänger-Themen 4
G Auf ein Panel malen Java Basics - Anfänger-Themen 16
G mit paint() ins JPanel malen. Java Basics - Anfänger-Themen 6
M Auf Panels oder Labels malen? (paint) Java Basics - Anfänger-Themen 9
X Malen außerhalb der paint() Methode Java Basics - Anfänger-Themen 4
Torschti Eingabe von Dezimalzahlen (bis zu zwei Kommastellen) Java Basics - Anfänger-Themen 11
T User input in Verbindung mit ChronoUnit anpassen und falls falsche Eingabe getätigtwird Java Basics - Anfänger-Themen 7
T Eingabe durch eine Zahl dividieren nachgucken? Java Basics - Anfänger-Themen 4
T sortierung der eingabe nach größe Java Basics - Anfänger-Themen 5
Ostkreuz Int Scanner auf Enter Eingabe prüfen Java Basics - Anfänger-Themen 4
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
Jul1n4tor Scanner error bei Eingabe die kein Integer ist Java Basics - Anfänger-Themen 4
S Größte Zahl nach Eingabe der Zahl 0 ausgeben Java Basics - Anfänger-Themen 6
M Dialogbox sofort neustarten, falls aktuelle Eingabe falsch Java Basics - Anfänger-Themen 11
M Dialogbox solange abfragen, bis gültige Wert-Eingabe Java Basics - Anfänger-Themen 12
S OOP Java Eingabe in verschiedene Datenbank Tabellen eintragen Java Basics - Anfänger-Themen 7
A Bei VierGewinnt Eingabe per Buchstabe (a,b,c...) Java Basics - Anfänger-Themen 2
java-starter Erste Schritte Eingabe in Char wert umwandeln Java Basics - Anfänger-Themen 7
Lion.King Subtraktion nach Eingabe im Terminal Java Basics - Anfänger-Themen 7
X Erste Schritte Scanner eingabe wird übersprungen Java Basics - Anfänger-Themen 4
L Dauerhaftes Speichern einer Eingabe bei einer ArrayList Java Basics - Anfänger-Themen 26
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
M Eingabe limit Java Basics - Anfänger-Themen 8
brypa Programm mit Eingabe Java Basics - Anfänger-Themen 129
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
D falsche eingabe erkennen Java Basics - Anfänger-Themen 2
H Eingabe tätigen bevor Graphics g Fenster öffnet Java Basics - Anfänger-Themen 5
H For-Schleife bis Index von Eingabe laufen lassen Java Basics - Anfänger-Themen 24
Hamudi Bachir 2D Array eingabe vom Benutzer Java Basics - Anfänger-Themen 31
S Warum erscheint bei mir "Hallo Welt" und nicht die aktuelle Eingabe? Java Basics - Anfänger-Themen 16
J Jtable Eingabe nach Klick ausserhalb der Tabelle übernehmen Java Basics - Anfänger-Themen 6
B Array bei jeder Eingabe um eins erweitern Java Basics - Anfänger-Themen 3
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
M Nach einer erstmaligen Eingabe, eine zweite Eingabe nur noch gegen bestätigung möglich Java Basics - Anfänger-Themen 2
chocobear26 Interface JOptionPane - Dialog_Fenster zeigt immer vorherige Eingabe an. Java Basics - Anfänger-Themen 4
E JavaFX Taschenrechner Eingabe im Textfield beschränken Java Basics - Anfänger-Themen 2
M Regex nur Zahlen und Punkt zulassen, Keine Eingabe(Leeres TextFeld) nicht zulassen Java Basics - Anfänger-Themen 6
M JTextField nur Zahleneingaben zulassen, eingabe sperren Java Basics - Anfänger-Themen 24
E Timer trotz erwartender Eingabe durchlaufen lassen Java Basics - Anfänger-Themen 11
K falsche Eingabe abfangen Java Basics - Anfänger-Themen 8
N Eingabe erkennen, ob groß oder kleingeschrieben worden ist Java Basics - Anfänger-Themen 22
N Fehlerausgabe bei falscher Eingabe der Users Java Basics - Anfänger-Themen 3
N Eingabe des Users direkt hinter die Ausgabe Java Basics - Anfänger-Themen 3
N Eingabe Kommazahlen über Scanner Java Basics - Anfänger-Themen 2
O Mehrfache Scanner-Eingabe durch Komma getrennt Java Basics - Anfänger-Themen 6
M String array durch Eingabe begrenzen Java Basics - Anfänger-Themen 7
iman Eingabe von Benutzer Filter machen. Java Basics - Anfänger-Themen 7
M Input/Output JTextField Eingabe in String Variable speichern Java Basics - Anfänger-Themen 15
D Eingabe einscannen, ohne vorher einen Datentypen anzugeben? Java Basics - Anfänger-Themen 1
M Verschiedene Eingabe = Verschiedene Ausgaben Java Basics - Anfänger-Themen 5
H Eingabe Java Basics - Anfänger-Themen 7
F Bedingung für Eingabe Java Basics - Anfänger-Themen 2
K Durch eine Text eingabe etwas Ausführen Java Basics - Anfänger-Themen 5
Dimax Erste Schritte String Eingabe Prüfen Java Basics - Anfänger-Themen 11
R Eingabe String umwandeln zu Integer Werten Java Basics - Anfänger-Themen 8
B Türme von Hanoi mit einer beliebigen aber gültigen Eingabe lösen Java Basics - Anfänger-Themen 5
D While Schleife bei Bedarf durch Eingabe stoppen Java Basics - Anfänger-Themen 15
J Eingabe Einschränken Java Basics - Anfänger-Themen 1
Zrebna Compiler-Fehler Java-Compiler wird nach 'javac' keyword-Eingabe nicht gestartet (Erste Übung) Java Basics - Anfänger-Themen 18
A Datentypen Unterschiedliche Datentypen in einer Eingabe einlesen Java Basics - Anfänger-Themen 2
D Array via Eingabe befüllen Java Basics - Anfänger-Themen 6
M Wie kann ich eine Eingabe im Java-Swing übergeben? Java Basics - Anfänger-Themen 1
N Abbrechen einer Eingabe endet im Fehler Java Basics - Anfänger-Themen 3
S Konsolen eingabe Java Basics - Anfänger-Themen 17
M Scanner-Eingabe nach gewissem Zeitraum überprüfen Java Basics - Anfänger-Themen 2
x-tshainge Bei if (eingabe = = ... ) enter als eingabe nehemen Java Basics - Anfänger-Themen 4
S in ActionListener auf Eingabe aus anderem Frame warten Java Basics - Anfänger-Themen 2
S Eingabe in anderer Klasse verwenden Java Basics - Anfänger-Themen 3
T Input/Output Falsche Eingabe ausgeben Java Basics - Anfänger-Themen 3
R Ratespiel mit Return und einer Eingabe Java Basics - Anfänger-Themen 1
K Eingabe in Array speichern und Ausgeben Java Basics - Anfänger-Themen 9
J Eingabe des Scanners an einer bestimmten Position Java Basics - Anfänger-Themen 6
J Input/Output Den zweiten Output erst nach Eingabe ausgeben Java Basics - Anfänger-Themen 4
S Eingabe auf Richtigkeit und Reihenfolg überprüfen Java Basics - Anfänger-Themen 3
R Java CMD Eingabe verbergen Java Basics - Anfänger-Themen 4
L Eingabe überprüfen Java Basics - Anfänger-Themen 7
M Eingabe des Benutzers Verwenden Java Basics - Anfänger-Themen 9
T Input/Output Int Eingabe auf Zahl überprüfen Java Basics - Anfänger-Themen 30
S Method mit Eingabe abrufen Java Basics - Anfänger-Themen 1
N Operatoren Suchen nach einer bestimmten Eingabe (durch Scanner) Java Basics - Anfänger-Themen 7
M Erste Schritte primzahlen ermitteln, nur zahlen als eingabe erlauben Java Basics - Anfänger-Themen 34
K Überprüfen ob Eingabe ein Float ist Java Basics - Anfänger-Themen 4
G Warum funktioniert das Programm für negative Eingabe nicht? Java Basics - Anfänger-Themen 3
O Erste Schritte Eingabe anweisungen eliminieren Java Basics - Anfänger-Themen 3
G Objekt Instanziierung von Eingabe abhängig machen Java Basics - Anfänger-Themen 5
E Wie Passwort-Eingabe (ohne Echo!) über Konsole ? Java Basics - Anfänger-Themen 4
B Interface JTextField Eingabe als String verwenden Java Basics - Anfänger-Themen 3
F Abfrage ob Eingabe eine Zahl ist Java Basics - Anfänger-Themen 3

Ähnliche Java Themen


Oben