Erste Schritte Sternchen-Diagramm

Aikuz

Mitglied
Hallo :)

ich möchte das dieses Programm (bei beispiel Eingabe von 5) so aussieht:
*
**
***
****
*****

es gibt aber folgendes aus:

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


Java:
package Z_Probieren;

import util.StdInput;

public class Test {

	public static void main(String[] args) {

	int g = StdInput.readInt("Größe"); //5


	for(int i=g-1; i>=0; i--){
		for (int j=g-1; j>=0; j--){
			System.out.print("*");
			
		}
		System.out.println();
		g--;
	}
	
		
		
	}

}
 

Aikuz

Mitglied
So ich habs jetzt wie oben gewollt schonmal umgedreht.

Allerdings hat es die Sternchen in meiner Beschreibung verschoben.

Es sollte so aussehen: (Wahrscheinlich wieder mit if, oder? -.- :D )

stern.PNG

Java:
package Z_Probieren;

import util.StdInput;

public class Test {

	public static void main(String[] args) {

	int g = StdInput.readInt("Größe"); //5

	
	for(int i=g-1; i>=0; i--){
		for (int j=g; j>i; j--){
			System.out.print("*");
			
		}
		System.out.println();
		
	}
	
		
		
	}

}
 
Zuletzt bearbeitet:

Saheeda

Top Contributor
Du brauchst einen String "placeholder" o.ä., der nur Leerzeichen enthält. Diesen setzt du vor die Sternchen und verringerst seine Länge mit substring in jedem Schleifendurchlauf.

Das letzte System.out.println ist übrigens sinnlos und kann gelöscht werden.
 

Aikuz

Mitglied
Dann müsste ich aber sehr viele leerzeichen in den String schreiben... Man könnte ja auch, übertrieben gesagt, die Zahl 100 eingeben? Ich glaube das ist keine elegante Lösung :(
 

Khal Drogo

Bekanntes Mitglied
Einfach ein entsprechendes if-Statement reinhauen und dann sollte das funktionieren, welche Fälle du abfangen musst, solltest du dir aber selbst überlegen.

Mit freundlichen Grüßen
Xelsarion
 

Aikuz

Mitglied
Jetzt verschiebt es die ersten 2 Zeilen zwar etwas, aber mehr passiert nicht :-/

Bekomme ich noch einen Tipp?

Java:
import util.StdInput;

public class k {
	public static void main(String[] args) {
		 
	int g = StdInput.readInt("Größe"); //5
	 
	 	int z = 0;
		for(int i=g-1; i>=0; i--){
			for (int j=g; j>i; j--){
				
				if(i>z){
					System.out.print(" ");
					z++;
				}
				System.out.print("*");
	 
			}
			
			System.out.println();
	 
		}
	 
	 
	 
	}
	 
}
 

VfL_Freak

Top Contributor
Hmm, leider kann man den Anhang nicht öffnen, aber hier mal Dein er erster Beitrag:
ich möchte das dieses Programm (bei beispiel Eingabe von 5) so aussieht:
*
**
***
****
*****

es gibt aber folgendes aus:

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

Und das liegt nun eindeutig daran, dass Du '5' gibst und die innere Schleife von '5' bis '1' läuft !!!

Also: was genau wird gesucht, was passiert statt dessen und wie schaut Dein aktueller Code dazu aus ??

Gruß Klaus
 

Aikuz

Mitglied
So jetzt geht es :) sorry...

umgedreht hab ich es bereits das geht soweit. Aber nun müssen die Sternchen quasi rechtsbüntig sein.

öööö.PNG
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor
ok, würde es trotzzdem nicht zwingend rückwärts machen ...

Überleg' Dir doch mal trocken, wie Du es auf einem Blatt Papier machen würdest!
1. Zeile: 4 Blanks + 1 Stern
2. Zeile: 3 Blanks + 2 Sterne
etc.

Daraus lässt sich doch prima der gesuchte Algorythmus herleiten !

Gruß Klaus
 

Aikuz

Mitglied
So, ich habs endlich :) Danke!

Java:
import util.StdInput;

public class k {
	public static void main(String[] args) {
		 
	int g = StdInput.readInt("Größe"); 
	 int anz = 1;
	 
		for(int i=0; i<g; i++){
			for (int j=0; j<=g; j++){
				if(j>g-anz){
					System.out.print("*");
				} else {
					System.out.print(" ");
				}
			}
			
			System.out.println();
			anz++;
		}
	 
	 
	 
	}
	 
}
 

Neue Themen


Oben