/* Lösung zum Übungsblatt "Tannenbaum" von Dominik Panzer
Aufgabe b
algorithmus:
höhe des baumes einlesen
für jede zeile:
spaces generieren (immer zeilenanzahl minus die nummer der zeile in der man sich befindet)
sterne generieren (anzahl = zeilennummer*2-1) (eigentliches problem der aufgabe)
ausgabe der generierten zeile
stamm zeile 1 ausgeben
stamm zeile 2 ausgeben
wiederholen bis eingabe nicht zwischen 3 und 20
*/
class tannenbaum //beginn der klasse
{
public static void main (String [] args) //main methode
{
StdEingabe instream_ref; //usereingabe referenzvariable
int zeilen; // anzahl der zeilen
int i; //counter nummer 1
int j; //counter nummer 2
instream_ref = new StdEingabe(); //objekt für usereingabe erzeugen
zeilen = instream_ref.liesIntegerN("Höhe der Baumkrone: "); //höhe des baumes einlesen
while (zeilen >= 3 && zeilen <= 20) //wiederholen bis eingabe außerhalb des bereiches 3 bis 20
{
for (i=1;i<=zeilen;i++) //die einzelnen zeilen durchgehen
{
for (j = 1; j <= zeilen-i; j++) //spaces vor den * generieren
System.out.print(" ");
for (j = 1; j <= i*2-1; j++) //anzahl der * generieren
System.out.print("*");
System.out.println(); //das ganze ausgeben
}
for (j = 1; j <= zeilen-1; j++) //die spaces vor dem stamm
System.out.print(" ");
System.out.println("*"); //der stamm
for (j = 1; j <= zeilen-1; j++) //das ganze nochmal, da stammhöge gleich 2
System.out.print(" ");
System.out.println("*");
zeilen = instream_ref.liesIntegerN("Höhe der Baumkrone: ");
}
}
}