# Tannenbaum



## CIva (7. Januar 2009)

hallo,

ich hin im ersten semester und bin ein ziemlicher programmier-krüppel 

ich muss bis freitag morgen ein blatt abgeben, dass benotet wird. 
leider kann ich mit java noch nicht so viel anfangen und bin gerade am verzweifeln. könnt ihr mir vllt helfen?

Aufgabenstellung:

Aufgabe 8 (Weihnachtsbaum) [5 Punkte]
In dieser Aufgabe sollen Sie eine Klasse schreiben, die einen Weihnachtsbaum auf dem Bildschirm ausgibt. Ihrer Kreativität sollen dabei keine Grenzen gesetzt sein, wichtig ist nur, dass am Ende Tannenbaume gleicher Gestaltungsart verschiedener Höhe ausgegeben werden können.
Der Tannenbaum kann auch wie ein Weihnachtsbaum geschmückt werden. Implementieren Sie diese verschiedenen Bäume nicht einzeln, sondern verwenden Sie Schleifen zur Generierung. Die Höhe eines Tannenbaumes ist die Zahl der
Dreiecke des Baumes.
Ein paar Beispiele für mögliche Tannenbäume der Höhe 2:


    *
   **
  ***
    *
   ***
  *****
 *******
*********
      I

der tannenbaum soll symetrisch sein...und wie ein echter aussehen...also nicht einseitig sondern immer etwas eingerückt)

Ihr Programm soll nach dem Programmstart die Höhe des Tannenbaumes einlesen und anschließend den gewünschten Tannenbaum ausgeben. Geben Sie auch die Ausgaben des Programms für Bäume mit Höhe 2 und 5 als Textdatei mit ab.

kann mir vllt jemand sagen wie so etwas funktioniert? wahrscheinlich werdet ihr asse euch kaputt lachen, aber ich wäre euch echt dankbar.

danke im voraus, civa


----------



## Kai008 (7. Januar 2009)

Tannenbäume musst du aber schon selbst generieren.
Viel Spaß beim Anpassen und schmücken.


```
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main extends Object
{
	private String myname = "CIva";
	private String today = "7. January. 2008";
	
	public Main()
	{
		super();
		
		BufferedReader in = new BufferedReader(
				new InputStreamReader(
						System.in));
		
		System.out.println("Bitte geben Sie die Höhe des\nWeihnachtsbaumes ein:");
		
		boolean conversionOK = false;
		int inputint = 0;
		String input = this.readNextLine(in);
		
		
		while(!conversionOK)
		{
			try
			{
				inputint = Integer.parseInt(input);
				conversionOK = true;
			}
			catch(NumberFormatException e)
			{
				System.out.println("Trottel, gib ne Zahl ein: ");
				input = this.readNextLine(in);
			}
		}

		this.loop(inputint);
		this.writeMaster();
		this.writeEnd();
	}
	private void writeEnd()
	{
		for(int i = 0; i < 3; i++)
			System.out.println("");
		System.out.println("Tannbaum, a Tannenbaumgenerator.");
		System.out.println("Copywrith by " + this.myname );
		System.out.println(this.today);
		System.out.println("Thanks for using");
	}
	private void loop(int input)
	{
		int atmlenght;
		int threecornerheight = 3;
		
		for(int i = 0; i < input; i++)
		{
			atmlenght = 2;

			for(int j = 0; j < threecornerheight; j++)
			{
				this.writeSpaces(atmlenght);

				for(int k = 0; k < atmlenght; k++)
				{
					System.out.print("*");
				}
				atmlenght+= 2;
				System.out.println();
			}
			threecornerheight++;
		}
	}
	private void writeMaster()
	{
		for(int i = 0; i < 19; i++)
			System.out.print(" ");
		System.out.print("||");
	}
	private void writeSpaces(int atmlenght)
	{
		int halfOfAtmLenght = atmlenght / 2;
		int pos = 20 - halfOfAtmLenght;
		
		for(int i = 0; i < pos; i++)
			System.out.print(" ");
	}
	private String readNextLine(BufferedReader in)
	{
		String returnvalue = null;
		
		try
		{
			returnvalue = in.readLine();
		}
		catch(Exception e)
		{
			e.printStackTrace();
			System.exit(0);
		}
		return(returnvalue);
	}
	public static void main(String[] args)
	{
		new Main();
	}
}
```


----------

