Methoden Gleichseitiges Dreieck erstellen

Nachteule

Mitglied
Hi Leute :)
Ich bin ebenfalls Java-Neuling und probiere gerade folgende Aufgabe:
Ich soll ein Programm schreiben, das eine Zahl n >= 0 einliest und dann ein gleichseitiges Dreieck aus
Sternchen erstellt.
z.B. für n = 3

___*
_*__*
*__*__*
zwischen zwei sternen soll immer ein leerzeichen sein.
Ich soll nun zwei Methoden verwenden:
In der main-Methode soll die Eingabe und eine Fehlermeldung stehen,
in der private-methode, wie man auf das Ergebnis kommt.
Das ist bisher mein Ansatz:

Java:
import java.util.Scanner;

public class Test {
	private static void dreieck(int anzahlLeerzeichen, int anzahlSternchen) {
		
		for(int i = 0; i < anzahlSternchen; i++) {
			System.out.println("* ");
		}
		for(int i = 0; i < anzahlLeerzeichen; i++) {
			System.out.println(" ");
		}
		System.out.println();
	}
	
	public static void main(String[] args) {
		
		Scanner scan;
		scan = new Scanner(System.in);
		
		try {
			System.out.println("Please insert a number: ");
			int anzahlSternchen = scan.nextInt();
			
		} catch (Exception e) {
			System.out.println("Only insert numbers!");
		}
	}
}


Mein Programm zeigt mir nur kein Dreieck an. Ich komm auch mit Hilfe des Debuggers nicht auf die Lösung ;(
Könnt ihr mir evtl. einen Lösungsansatz geben und mir helfen? :idea:

Vielen Dank im Voraus
 

BK117

Aktives Mitglied
Ich verstehe zwarnicht, warum du die anzahl der Leerzeichen brauchst, aber egal.
Ich glaube das Problem ist, dass du die beiden forSchleifen nacheinander durchgehst.
Er geht die nicht abwechselnd durch, sondern malt erst alle Sterne und dann alle Leerzeichen, und ich glaube, das wolltest du nicht.
Wofür brauchst du denn die Leerzeichen, wenn du hinter dem Stern schon welche hast "* "?

Ich werde gleich mal meine Version versuchen Und dann mitteilen ;)
Gruß Bk

//Edit:
Also habe eine Schleife hinzugefügt, die nach jeder Zeile, jeweils ein Leerzeichen mehr hinzufügt.
Außerdem habe ich eine Schleife in eine andere gepackt und -1 gerechnet, damit er pro Durchgang, immer einen Stern weniger malt.
Guck es dir einfach mal an. Bei fragen, bitte fragen ;)
Java:
import java.util.Scanner;
 
public class Test {
    private static void dreieck(int anzahlSternchen) {

        int weniger = 0;
    	for(int i = 0; i < anzahlSternchen; i++) {
            for (int z = 0; z < (anzahlSternchen - weniger); z++) {
            	System.out.print("* ");
            }
    		weniger ++;
            System.out.println("");
            for (int y = 0; y < weniger; y++){
            	System.out.print(" ");
            }
        }
    }
    
    public static void main(String[] args) {
        
        Scanner scan;
        scan = new Scanner(System.in);
        int anzahlSternchen;
        
        try {
            System.out.println("Please insert a number: ");
            anzahlSternchen = scan.nextInt();
            scan.close();
            
        } catch (Exception e) {
            System.out.println("Only insert numbers!");
            return;
        }
        dreieck(anzahlSternchen);
    }
}
Wenn du mit BlueJ programmierst und jede Methode einzeln aufrufen möchtest, dann kannst du die 34. Zeile auch rausnehmen (wie bei dir, wenn du willst). Wenn du es so lässt, dann geht das in einem durch ;)
Und ich habe da drüber ein "return;" hinzugefügt, damit er nach der Exception nicht weitermacht, sonder aufhört :D
Und ich habe "scan.close(); gemacht, damit der scanner nicht ganze Zeit aktiv bleibt ^^

Aber der Ansatz war ja schonmal ok, mit der Eingabe und dem try / catch.
Ich hoffe du verstehst das Programm jetzt, sonst wie gesagt. Frag. Du sollst ja auch was lernen ;)
Du kannst ja auch mal versuchen die Pyramide umzudrehen (zum verstehen, was der Code macht :))
Gruß Nico
 
Zuletzt bearbeitet:

Nachteule

Mitglied
Suuper vielen Dank, habs jetzt verstanden! :)

ich probier dann mal das Dreieck umzudrehen,
falls es nicht klappt meld ich mich nochmal :)

[EDIT]Danke :)[/EDIT]
 
Zuletzt bearbeitet:

Nachteule

Mitglied
Huhu :)
Hab mich heute nochmal mit dem Dreieck befasst, umdrehen müsste dann so aussehen oder? :)

Java:
import java.util.Scanner;

public class AsciiGraphiken {
	private static void dreieck(int anzahlSternchen) {

		for(int i = 0; i < anzahlSternchen; i++) {
			for(int z = 0; z <= anzahlSternchen - i; z++) 
				System.out.print(" ");
			
			for(int z = 0; z <= i; z++) 
				System.out.print("* ");
			
			System.out.println("");
			}
		}
	

	public static void main(String[] args) {

		Scanner scan;
		scan = new Scanner(System.in);
		int anzahlSternchen;

		try {
			System.out.println("Please insert a number: ");
			anzahlSternchen = scan.nextInt();
			scan.close();

		} catch (Exception e) {
			System.out.println("Only insert numbers!");
			return;
		}
		dreieck(anzahlSternchen);
	}
}


Gruß Alex
 

BK117

Aktives Mitglied
Ich habs zwar jetzt noch nicht ausprobiert, aber sieht an sich gut aus. Könnte klappen ;)
Ich weiß zwar nicht ob es umbedingt <= sein muss, oder ob nur < in der 1.for Anweisung reicht, müsste man mal durchrechnen, weiß ich gerade nicht.
In der 2.for Schleife mit <= muss das auf jeden Fall hin. Das ist richtig überlegt.
Werd ich morgen einfach mal versuchen. Sieht aber schon vom Ansatz sehr richtig aus.
Zeigt, dass du das Programm an sich verstanden hast, gut ;)

Gruß BK

Edit:
Du hast die geschwungenen Klammern hinter den for Blöcken vergessen ;)
 
Zuletzt bearbeitet:

BK117

Aktives Mitglied
Lol, ich kann iwie meine Beiträge nicht mehr editieren.
Habe mich verguckt. Die Klammern mussten an dieser Stelle natürlich nicht sein. Sorry. War halt gestern schon zu spät für mich.

Hab nochmal überlegt. Ja. So funktioniert das Programm und die Pyramide wird auch richtig herum sein ;)

Ich habs jetzt mal ausprobiert. Wie ich gedacht habe - bei der 2.for-Schleife in der for-Schleife muss das <= hin. Bei der 1.for-Schleife in der übergeordneten for-Schleife ist das egal. Dann hast du halt ein Leerzeichen mehr ;)
Also anstatt dem:
Java:
for(int z = 0; z <= anzahlSternchen - i; z++) 
    System.out.print(" ");
geht auch
Java:
for(int z = 0; z < anzahlSternchen - i; z++) 
    System.out.print(" ");

Aber der Unterschied ist wirklich nur ein Leerzeichen mehr vor dem ersten Stern der jeweiligen Reihe.

Gruß BK
 

Nachteule

Mitglied
Hi :)

Alles klar, das Programm hab ich dann mal verstanden,
dann kanns jetzt mit dem nächsten weiter gehen :)

Ich sag nochmal Danke,
weil das mit dem "abgegebenen Danke" find ich irgendwie nicht, ... wie das gehen soll :D

Gruß
 

BK117

Aktives Mitglied
Ich sag nochmal Danke,
weil das mit dem "abgegebenen Danke" find ich irgendwie nicht, ... wie das gehen soll
Ich auch nicht :D
Ich glaube das soll eigentlich neben dem Zitieren Button sein, aber den finde ich bei mir nicht. Den gibt es nicht bei mir ^^

Danke fürs Bitte :p

Gruß Nico
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Problem Gleichseitiges Dreieck aus Sternchen Java Basics - Anfänger-Themen 7
_so_far_away_ pascalsches Dreieck Zentrierung. Java Basics - Anfänger-Themen 12
laxla123 Dreieck erstellen Java Basics - Anfänger-Themen 1
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
kxrdelis Konstruktor für ein Rechtwinkliges Dreieck Java Basics - Anfänger-Themen 10
G Magisches Dreieck Java Basics - Anfänger-Themen 2
F Pascalsches Dreieck mit Rückgabewert Java Basics - Anfänger-Themen 2
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
S Überprüfung rechtwinkliges Dreieck Java Basics - Anfänger-Themen 4
Z Warum kein Dreieck aus Sternen? Java Basics - Anfänger-Themen 9
L Dreieck Java Basics - Anfänger-Themen 22
O Erste Schritte Pascalsche Dreieck Java Basics - Anfänger-Themen 3
H Stern Dreieck (Buch: Grundkurs Programmieren) Java Basics - Anfänger-Themen 2
L Pascalsches Dreieck Java Basics - Anfänger-Themen 4
D Pascal'sches Dreieck Java Basics - Anfänger-Themen 6
U Dreieck Java Basics - Anfänger-Themen 22
E Dreieck zeichnen Java Basics - Anfänger-Themen 3
1 2D-Array, dass das pascalsche Dreieck berechnet Java Basics - Anfänger-Themen 2
L Dreieck Kreis Java Basics - Anfänger-Themen 12
B Dreieck Flächenberechnung Java Basics - Anfänger-Themen 2
B Java Grafikprogrammierung Dreieck Java Basics - Anfänger-Themen 6
I Umgedrehtes Dreieck Java Basics - Anfänger-Themen 3
M Dreieck erstellen Java Basics - Anfänger-Themen 17
J Dreieck Ausgeben Java Basics - Anfänger-Themen 3
R Pascalsche Dreieck Java Basics - Anfänger-Themen 4
R Pascalsche Dreieck Java Basics - Anfänger-Themen 8
C Pascalsches Dreieck: Ausgabeproblem Java Basics - Anfänger-Themen 10
K pascalsches Dreieck Java Basics - Anfänger-Themen 8
H Compiler-Fehler Pascalsche Dreieck Java Basics - Anfänger-Themen 2
M Pascalsches Dreieck Java Basics - Anfänger-Themen 12
M Dreieck prüfen Java Basics - Anfänger-Themen 8
W Pascalsches Dreieck Java Basics - Anfänger-Themen 19
E Pascalsche Dreieck aus Java openbook Java Basics - Anfänger-Themen 3
B Bitte um Hilfe es geht um Array + Punkte wie Dreieck,Fläche etc. Java Basics - Anfänger-Themen 12
D Pascalsches Dreieck Java Basics - Anfänger-Themen 9
H Dreieck aus Zeichen Java Basics - Anfänger-Themen 4
L Paskalsche Dreieck im Array Java Basics - Anfänger-Themen 2
T Pascalsche Dreieck ERKLÄRUNG Java Basics - Anfänger-Themen 6
U Rekursive lösung von pascal dreieck Java Basics - Anfänger-Themen 11
H2SO3- dreieck, bild --> maus klick event. Wie gehts? Java Basics - Anfänger-Themen 10
Antoras Dreieck zeichnen Java Basics - Anfänger-Themen 2
G Pascalsche Dreieck in Dreieckform Java Basics - Anfänger-Themen 2
X Pascalsche Dreieck Java Basics - Anfänger-Themen 6
G Dreieck mit Java Apllet Java Basics - Anfänger-Themen 10
V Dreieck spiegeln Java Basics - Anfänger-Themen 3
L Dreieck soll Farbe ändern Java Basics - Anfänger-Themen 4
L Dreieck füllen Java Basics - Anfänger-Themen 4
X Dreieck ausgeben Java Basics - Anfänger-Themen 3
B Hindergrundfarbe in JPanel und Dreieck zeichnen Java Basics - Anfänger-Themen 4
D Das Problem mit dem Dreieck. Java Basics - Anfänger-Themen 5
B auf der Spitze stehendes Dreieck mit for-Schleifen Java Basics - Anfänger-Themen 6
lan2711 Anfänger: Konstruktion Dreieck Java Basics - Anfänger-Themen 2
G Pascalsches Dreieck Java Basics - Anfänger-Themen 8
XWing Int erstellen lassen? Java Basics - Anfänger-Themen 11
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
A exe Datei erstellen Java Basics - Anfänger-Themen 8
J Packages erstellen Java Basics - Anfänger-Themen 7
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
C Gewinnspiel erstellen mit Algorithmus Java Basics - Anfänger-Themen 3
Ostkreuz Spielfeld Schatz erstellen Java Basics - Anfänger-Themen 5
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
A Passwort erstellen Java Basics - Anfänger-Themen 3
S CVS erstellen Java Basics - Anfänger-Themen 1
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
dennis_lnz Klassen Wie kann ich mein Java Textadventure verbessern, um ein Klassendiagramm zu erstellen? Java Basics - Anfänger-Themen 9
dcHost Java Kara Sensor erstellen Java Basics - Anfänger-Themen 1
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U JList erstellen Java Basics - Anfänger-Themen 2
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
berserkerdq2 IO Streams logfile erstellen und Sachen schreiben wie? Java Basics - Anfänger-Themen 2
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
N 2D Array Summe erstellen Java Basics - Anfänger-Themen 6
T Log Funktion erstellen Java Basics - Anfänger-Themen 1
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
S Programm erstellen Java Basics - Anfänger-Themen 3
S MinMax Programm erstellen Java Basics - Anfänger-Themen 4
S Mit for-Schleife ein 2D JLabel-Array mit veränderbaren Icons erstellen Java Basics - Anfänger-Themen 3
T Countdown erstellen Java Basics - Anfänger-Themen 7
I ZIP File erstellen Java Basics - Anfänger-Themen 10
L Ordner in neuen erstellten Ordner erstellen Java Basics - Anfänger-Themen 12
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
B Zurück Button erstellen Java Basics - Anfänger-Themen 1
melaniemueller Lagerverwaltung erstellen - mehrdimensionale Arrays Java Basics - Anfänger-Themen 62

Ähnliche Java Themen

Neue Themen


Oben