# Tannenbaum



## JSJS (6. Dez 2012)

Der Stamm ist bis zu einer Höhe von 9 genau ein Zeichen breit. Zwischen 10 und 19 ist er drei Zeichen breit, zwischen 20 und 29 ist er fünf Zeichen breit, usw.

Könnt Ihr uns weiterhelfen?





class Tannenbaum {
	public static void main(String[] args) {
		int hoehe=Integer.parseInt(args[0]);
		int zeile=0;
		int spalte=0;
		int stamm=(hoehe%10*2+1);	


    for (zeile=1; zeile<hoehe; zeile++) { 

      for (spalte=1; spalte <= hoehe-zeile; spalte++) 
        System.out.print(" "); 

      for (spalte=1; spalte<=(2*zeile-1); spalte++) 
        System.out.print("*"); 
	System.out.println(); 
    } 
 for (zeile=1; zeile<hoehe; zeile++){




      System.out.print(" "); 
    System.out.println("I")


  } 

}


----------



## dayaftereh (6. Dez 2012)

Java Quelltext ist bitte in 
	
	
	
	





```
-Tags zu schreiben[/COLOR]
```


----------



## TKausL (6. Dez 2012)

Ich verstehe nicht:
1. Wer ist wir? Eine Hausaufgabengruppe?
2. Warum überließt jeder den FETTEN ROTEN Hinweis beim Antworten mit den Java-Tags?
3. Wie der Baum aussehen soll habe ich nach deiner erklärung leider nicht verstanden
4. Was tut den dein Code was er nicht tuen soll, bzw was tut er nicht was er tun soll?


----------



## Landei (6. Dez 2012)

5. Warum muss jeder Schüler unbedingt einen Tannenbaum zeichnen?
6. Warum glaubt jeder Schüler, er wäre der erste, der einen Tannenbaum zeichnen muss?
7. Wieso gibt es einen Such-Button im Forum, wenn der sowieso nicht genutzt wird?


----------



## no0b (6. Dez 2012)

Bin zwar kein Designer, aber so geht's:


```
public static void main(String[] args) {
        for (int i = 0; i < 4; i += 2) {
            print(7, 2);
        }
        for (int i = 7; i >= 0; i--) {
            print(7 - i, i * 2 + 2);
        }
    }

    private static void print(int leer, int sternchen) {
        char[] c = new char[leer];
        Arrays.fill(c, ' ');
        System.out.print(new String(c));

        c = new char[sternchen];
        Arrays.fill(c, '*');
        System.out.print(new String(c));

        System.out.println();
    }
```

Steht nur noch auf dem Kopf.


----------



## no0b (6. Dez 2012)

Gerade noch ein bisschen gefummelt, das geht natürlich auch für Tannenbäume beliebiger Höhe und (Stamm)-Breite:


```
public static void main(String[] args) {
        final int breite = 2;
        final int höheee = 20;
        // Stamm 1/5, Baum 4/5 :-)
        for (int i = 0; i < höheee / 5; i++) {
            print(höheee / 5 * 4 - breite / 2, breite);
        }
        for (int i = 0; i < höheee / 5 * 4; i++) {
            print(i, höheee / 5 * 8 - i * 2);
        }
    }
```

Nur verkehrtherum wird noch gezeichnet, aber mit ein bisschen nachdenken kriegt ihr das schon hin.


----------



## fastjack (6. Dez 2012)

oder mal im Blog suche...


----------



## pappawinni (6. Dez 2012)

Hier ein Baum.. 
und dort ein Baum und dazwischen Zwischenraum.


```
int hoehe = 13;
        String strV,strH;
        int hh,vv,breite,oberlaenge;
        oberlaenge = 4 * hoehe / 5; 
        breite = 2 * oberlaenge - 1;
        for (int i = 0; i < oberlaenge; i++) {
        	vv = 2*i + 1;
        	hh = (breite - vv)/2;
            strH = String.format("%"+( hh + 1 )+"s","").replace(' ','·').substring(1);
            strV = String.format("%"+( vv )+"s","").replace(' ','*');
            System.out.println(strH+strV+strH);
        }
        // Stamm
    	vv = 1 + 2 * ( breite / 10 );
    	hh = (breite - vv) / 2;
        strH = String.format("%"+( hh )+"s","").replace(' ','·');
        strV = String.format("%"+( vv )+"s","").replace(' ','¤');
        for (int i = 0; i < hoehe-oberlaenge; i++) {
            System.out.println(strH+strV+strH);
        }
```


----------



## fastjack (7. Dez 2012)

http://www.java-forum.org/blogs/fastjack/166-weihnachtsbaum.html


----------



## ARadauer (7. Dez 2012)

Alle Jahre wieder...


Landei hat gesagt.:


> 5. Warum muss jeder Schüler unbedingt einen Tannenbaum zeichnen?


Weil Weihnachten ist...


----------



## bwbg (7. Dez 2012)

Da die UN-Klimakonferenz in Doha (wie erwartet) wieder ohne Ergebnis zu Ende gehen wird, sollte man darüber nachdenken, auch mal Palmen zeichnen zu lassen.

Grüße ... bwbg


----------



## Trolllllll (7. Dez 2012)

Mhh die Globale Erderwährmung heißt leider nicht, das es eine Lokale Erderwährmung gibt, das heißt, hier kann es kälter werden aber Global wurde es wärmer ;-) Aöso sollte man mit den Aussagen vorsichtig sein, auch wenn ich für das Ostseebad Osnabrück bin


----------

