Java :: Aufgabe #16 :: Lösung #2
2 Lösungen

#16
Ausgabe Weihnachtsbaum
Anfänger - Java
von Gustl
- 07.12.2012 um 18:44 Uhr
Schreiben Sie ein Konsolenprogramm welches einen Weihnachtsbaum ausgibt.
Vor der Ausgabe soll noch die Höhe des Weihnachtsbaum abgefragt werden. (MIN 3)
Der Weihnachtsbaum soll bei einer Höheneingabe von 10 folgendermaßen aussehen:
Die Schwierigkeit besteht in den Stufenabschnitten der Tanne. Die Zeile die die meisten Sterne enthält sollte natürlich dann auch die letzte sein, also muss das Programm vielleicht bei einer zu großen Höheneingabe das Zeichnen der Sterne abbrechen und dann den Stamm ausgeben. (So wie bei diesem Beispiel, angegeben ist 10 aber der Baum hat nur 10 Reihen, ohne Baumstamm)
Vor der Ausgabe soll noch die Höhe des Weihnachtsbaum abgefragt werden. (MIN 3)
Der Weihnachtsbaum soll bei einer Höheneingabe von 10 folgendermaßen aussehen:
Konsolenausgabe:
*
***
*****
***
*****
*******
*****
*******
*********
###
Die Schwierigkeit besteht in den Stufenabschnitten der Tanne. Die Zeile die die meisten Sterne enthält sollte natürlich dann auch die letzte sein, also muss das Programm vielleicht bei einer zu großen Höheneingabe das Zeichnen der Sterne abbrechen und dann den Stamm ausgeben. (So wie bei diesem Beispiel, angegeben ist 10 aber der Baum hat nur 10 Reihen, ohne Baumstamm)
#2

von The_Dive (90 Punkte)
- 25.08.2014 um 00:17 Uhr

package bla.wrigley.de; import java.util.Scanner; public class Klasse1 { public static void main(String[] args) { Scanner scan = new Scanner (System.in); System.out.println("Bitte geben sie die höhe des tannenbaumes ein."); int hoehe = scan.nextInt(); int abschnitte = hoehe/3;//ermitteln wieviele Abschnitte gemacht werden sollen. int abstandZurMitte = 2+abschnitte; //Es ist schwer zu erklären aber im grunde funktioniert es so, dass immer ein Abschnitt nach dem anderen des Tannenbaums generiert werden. for(int i = 0; i< abschnitte; i++){//die erste for-Schlaufe ist für die Abschnitte... for(int j = 0; j < 3;j++){//...und die zweite dann für die 3 Reihen jedes Abschnittes. switch (j){ case 0://case 0 ist immer die erste reihe in einem Abschnitt, case 1 die Zweite und dann natürlich case 2 die Dritte. for(int k = 0;k < 1+abschnitte-i; k++){//zuerst wird der abstand bis zum ersten stern berechnet... System.out.print(" "); } for(int k = 0; k < 1+i*2;k++){//und dann wieviel Sternchen folgen müssen. System.out.print("*"); } System.out.println("");//wenn die reihe fertig ist wird ein Zeilenumsprung gemacht. break; case 1://case 1 und 2 sind im grunde wie case 0 aufgebaut. for(int k = 0;k < abschnitte-i; k++){ System.out.print(" "); } for(int k = 0; k < 1+(i+1)*2;k++){ System.out.print("*"); } System.out.println(""); break; case 2: for(int k = 0;k < abschnitte-i-1; k++){ System.out.print(" "); } for(int k = 0; k < 1+(i+2)*2;k++){ System.out.print("*"); } System.out.println(""); break; } } } //nochmal der Baumstumpf. for(int k = 0;k < 2; k++){ System.out.print(" "); } for(int k = 0; k < 1+(abschnitte-1)*2;k++){ System.out.print("#"); } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1