Tannenbaum auf der Konsole ausgeben lassen

ceko1907

Mitglied
Hallo Leute,

unten ist mein Ansatz, aber komme nicht weiter. Danke im Voraus.


Java:
//Schreiben Sie ein Programm, welches einen Tannenbaum in Form von Sonderzeichen auf der Konsole ausgibt (ASCII).
//Die Hoehe des Baumes soll variabel, d.h. mittels eines Parameters einstellbar sein.
//
//Hinweis: Verwenden Sie Schleifen
//
//Beispiel fuer die Ausgabe auf der Konsole:
//
//         *
//        ***
//       *****
//      *******
//     *********
//    ***********
//   *************
//  ***************
// *****************
//*******************
//         I

import java.util.Scanner;

public class E_Tannenbaum {
    public static void main (String[] args) {     
        Scanner s = new Scanner (System.in);
        System.out.println("Bitte geben Sie eine Zahl ein, um die Höhe des Baumes zu bestimmen");
        int eingZahl;
        eingZahl=s.nextInt();
     
     
        for (int i=1; i<=eingZahl; i++){          
            System.out.println("      " + "*");
        }
    }
}
 
Zuletzt bearbeitet von einem Moderator:

Tarrew

Top Contributor
Also ein erster Ansatz wäre ja mal, es mit zwei for-Schleifen zu versuchen.
Eine äußere für die Anzahl der Zeilen, und eine innere für das ausgeben der Zeichen in der jeweiligen Zeile.

Und Code bitte in den Java-Tags posten.
 

ceko1907

Mitglied
Java:
public class E_Tannenbaum {
    public static void main (String[] args) {      
        Scanner s = new Scanner (System.in);
        System.out.println("Bitte geben Sie eine Zahl ein, um die Höhe des Baumes zu bestimmen");
        int eingZahl;
        eingZahl=s.nextInt();     
      
        for (int i=1; i<=eingZahl; i++){
            for (int x=1; x<=10; x++);          
            System.out.println();                  
        }                      
    }
}
 
Zuletzt bearbeitet von einem Moderator:

ceko1907

Mitglied
Also ich weiß nicht wie ich diese * darstellen soll. Ich meine ich könnte System.out.println(" *"); eingeben, aber ich komm nicht drauf, wie die Anzahl der Sterne variiert werden soll.
 

Schesam

Bekanntes Mitglied
Hey du :)

Mich hat das selbst interessiert wie man das löst und habe jetz auch ca 15min dafür gebraucht um das hinzubekommen, ist aber ganz leicht eigentlich. Ich werde dir hier keine Lösung vorgeben, aber ien paar Tipps:

1. Lege dir 2 Strings an. Der eine macht die rechte Seite des Baumes, der andere die linke. DIe Ausgabe machst du dann mit [java]System.out.println(ausgabeL + ausgabeR);[/java] wobei du natürlich deine beiden Variablen-Namen einsetzt.
2. du brauchst 3 for-Schleifen:
Die 1. brauchst du für die Höhe des Baumes, sie zählt also die Höhe ab.
Die 2. fügt der linken-Baumseite die Leerzeichen hinzu, für jeden Höhenschritt und Benutzer-eingegebene Höhe anders. Musst also die Parameter geschickt einsetzen.
Die 3. fügt dann der Linken Seite die "*" hinzu, sodass am Ende der Baum entsteht.
Als Screen bei meinem Ergebnis:
4fc64c86a7.png


Bei weiteren Fragen, schreib ruhig, dann helfe ich dir gerne weiter :)
 
Zuletzt bearbeitet:

Tarrew

Top Contributor
Wobei hier viele Wege nach Rom führen.
Man könnte das ganze auch mit einer for-Schleife machen, dann wäre das grade mal 4 Zeilen ;)

Aber gute Idee!
 

Schesam

Bekanntes Mitglied
Ich hab das wie gesagt gerade selbst nur mal versucht und nach 5min überlegen bin ich drauf gekommen, beide Seiten einzeln zu erstellen. SO wie ich es momentan hier stehen habe, ist es selbst für Anfänger auch sehr einfach zu verstehen :)
Hab sogar links mal in "/" und rechts in "\\" geändert, damit man auf der Konsole die beiden String besser auseinanderhalten kann und es auch besser ausschaut :D
Dazu nach dem ganzen noch nen Stamm in der Mitte ausgeben, was aber außerhalb der Aufgabenstellung wäre^^ Die ganze Klasse hat 32 Zeilen.
 

Schesam

Bekanntes Mitglied
bei mir "||", aber halt in der Mitte des baumes, egal wie groß der geworden ist^^ Wenns dort sogar drin steht, könnte es sogar echt zur AUfgabenstellung gehören, das müsste der To aber noch sagen
 

ceko1907

Mitglied
Also habe jetzt mal versucht was zu erreichen aber kriege es nicht hin. Möchte nebenbei bemerken dass ich gerade seit knapp über einer Woche mit Java angefangen und aufgrund meines Studiengangs eigentlich nichts mit Informatik am Hut habe (studiere Wirtschaftsingenieurwesen mit Maschinenbau :D). Deswegen fällt mir das etwas schwer. Aber hier mal mein "Ansatz". Bitte nicht fertig machen :D
Code:
public class E_Tannenbaum{
    public static void main (String [] args){

        String L;
        L=" ";


        String R;
        R="*";

        int a,b,c;

        Scanner Höhe = new Scanner (System.in);
        System.out.println("Wie hoch soll der Baum sein?");
        int eingHöhe = Höhe.nextInt();


        for(a=eingHöhe; a<=100; a++){                          //soll die Höhe sein (anzahl der zeilen)
            for (b=a; b<=100; b++){                           //fügt der linken seite die * hinzu
                for(c=a; c<=100; c=a+2){                       //fügt der linken Baumseite die Leerzeichen hinzu (pro Zeile 2 Sterne mehr
        
                    System.out.println(c + a*L + b*R);           //weiß dass man string nicht multiplizieren kann, wollte nur zeigen was ich machen wollte. die ausgabe ist auch völlig falsch :D
    
        


        }}}}}

Ich komme ehrlich gesagt nicht damit klar, dass ich "Zeichen" in Abhängigkeit von Zahlen ausgeben soll. Integer und String Datentypen gemeinsam verwirren mich etwas. Oder ich habe einfach deine Tipps nicht gecheckt. Ich würde mich freuen wenn ihr auf meinen Ansatz eingehen würdet und sagt was ich verbessern muss.
Danke im Voraus für eure Hilfe.
 
Zuletzt bearbeitet:

Schesam

Bekanntes Mitglied
Wieso willst du immer auf <= 100 prüfen? Wenn man als Höhe 8 eingeben würde würde der 92 Reihen ausgeben. Und ich versteh auch nicht so ganz was du mit den inneren 2 Schleifen erreichen willst, zumal die 3. eine Endlosschleife ist ( a verändert sich erst, sobald die inneren beiden Schleifen fertig sind. Aber die letzte wird erst fertig wenn c + a + 2 >= 100 ist, also wird das nie fertig).

Ich geb dir mal nen Grundaufbau vom ganzen in Worten vor, vllt hilft dir das ja schon zum Ergebnis:
1. Starte den Scanner und frage die gewünschte Höhe des Baumes ab und speicher dir diese. Dann leg dir 2 leere Strings für rechts und links an.
2. Nun erstellst du die erste Schleife, die die Höhe des Baumes darstellt. Sie läuft solange bis die Höhe erreicht ist.
3. In dieser Schleife fügst du der rechten einen Stern hinzu und löscht die linke Seite wieder. Dann erstellst du 2 weitere einzelne Schleifen. Du hast dann also 3 Schleifen, aber 2, die nacheinander ausgeführt werden.
4. In der ersten inneren Schleife fügst du links die Leerzeichen hinzu, abhängig von der Höhe und der eingegebenen gewünschten Höhe.
5. In der 2. inneren Schleife fügst du der Linken Seite die Zeichen hinzu, abhängig von der länge der rechten Seite. Bei deinem Stern Beispiel willst du natürlich eine spitze Spitze, also fängst du bei der 2. Höheneinheit an.
6. Dann gibst du die beiden Seiten aus.

Wenn du das hingekriegt hast, können wir mit dem Stamm weitermachen :)

Und PS: Wenn du x mal an einen String was anketten willst, benutzt du dafür ne einfache for-Schleife, sowie ich es oben angedeutet habe. DU lässt die for-Schleife solange laufen, wie du willst und in jedem Durchgang hängst du was hinten/vorne/sonstwo dran
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Tannenbaum Java Basics - Anfänger-Themen 2
M Generierter Tannenbaum - String Länge Java Basics - Anfänger-Themen 1
D Tannenbaum implementieren gescheitert Java Basics - Anfänger-Themen 1
E Tannenbaum aus Zahlen ausgeben Java Basics - Anfänger-Themen 8
N Java Tannenbaum *Argh* Java Basics - Anfänger-Themen 6
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
M Mein quellcode wird nicht in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
M Nicht genug Eingabemöglichkeiten in der Konsole Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
W char über die Konsole? Java Basics - Anfänger-Themen 7
J if-Schleife innerhalb einer if-Schleife wird in der Konsole nicht gelesen Java Basics - Anfänger-Themen 4
W Werte durch Konsole einlesen Java Basics - Anfänger-Themen 10
I 12 Spalten von jeweils 30 Zahlen in Konsole ausgeben Java Basics - Anfänger-Themen 6
I Java auf der Konsole Java Basics - Anfänger-Themen 5
C Erste Schritte Muster ausgeben in der Konsole - großes V Java Basics - Anfänger-Themen 5
K Ausgaben auf der Konsole (static Varible) Java Basics - Anfänger-Themen 9
S Tastatureingabe auslesen und in Konsole ausgeben Java Basics - Anfänger-Themen 6
C Ausgabe in der Konsole Java Basics - Anfänger-Themen 11
Zrebna Programm kann aus der Konsole nicht gestartet werden (in der IDE läuft es) Java Basics - Anfänger-Themen 2
J Konsole Java Basics - Anfänger-Themen 10
V Umgebungsvariable Genutzte Javaversion in der Konsole ändern Java Basics - Anfänger-Themen 5
N Tabelle schön in der Konsole ausgeben Java Basics - Anfänger-Themen 5
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
D Tabelle in der Konsole Java Basics - Anfänger-Themen 3
J Gefilterten Stream über die Konsole ausgeben Java Basics - Anfänger-Themen 1
F Java auf Windows Konsole ausführen Java Basics - Anfänger-Themen 1
P Array einlesen von Konsole Java Basics - Anfänger-Themen 8
A Programm in Konsole Java Basics - Anfänger-Themen 4
I OOP Objektnamen über die Konsole richtig einlesen Java Basics - Anfänger-Themen 9
Bun17 Keine Ausgabe in der Konsole Java Basics - Anfänger-Themen 2
L Input/Output Wurzelzeichen in der Konsole ausgeben | Brauche Hilfe Java Basics - Anfänger-Themen 6
E Compiler-Fehler Javac Windows vs Ubuntu /Script vs Konsole Java Basics - Anfänger-Themen 4
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
A Input/Output System.out Ausgabe aktualisieren, ohne Konsole vollzuspamen Java Basics - Anfänger-Themen 2
M Arrays auf Konsole formatiert ausgeben Java Basics - Anfänger-Themen 7
L Input/Output Konsole in Farben schreiben Java Basics - Anfänger-Themen 4
BlueFox Tabelle in der Konsole ausgeben - Probleme Java Basics - Anfänger-Themen 1
O Erste Schritte Scanner mehrere male benutzen (Konsole) Java Basics - Anfänger-Themen 7
O Etwas auf der Konsole ausgeben, usw. Java Basics - Anfänger-Themen 22
A Input/Output Prozess Output genauso in der Konsole ausgeben Java Basics - Anfänger-Themen 0
J Input/Output javac HelloWorld.java - Keine Textausgabe in der Konsole Java Basics - Anfänger-Themen 4
T Methoden Methode wird nicht auf Konsole ausgeführt Java Basics - Anfänger-Themen 3
T In Konsole darf nichts falsches eingetippt werden?! Java Basics - Anfänger-Themen 7
E Wie Passwort-Eingabe (ohne Echo!) über Konsole ? Java Basics - Anfänger-Themen 4
G Probleme mit Konsole Java Basics - Anfänger-Themen 4
J Zahlen aus Konsole einlesen Java Basics - Anfänger-Themen 1
C Input/Output Ein Spielbrett auf Konsole ausgeben Java Basics - Anfänger-Themen 2
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
F Wert in Linux auf die Konsole schreiben Java Basics - Anfänger-Themen 3
C Input/Output Einlesen von der Konsole mit InputStreamReader Java Basics - Anfänger-Themen 13
Z AWT package -> keine Konsole? Java Basics - Anfänger-Themen 2
P Einlesen von der Konsole Java Basics - Anfänger-Themen 3
J Programm wird nicht auf der Konsole ausgeführt Java Basics - Anfänger-Themen 2
E Muster auf der Konsole ausgeben lassen (Schleifen) Java Basics - Anfänger-Themen 7
L Dialogbox statt Konsole verwenden Java Basics - Anfänger-Themen 5
B Konsole schließt sich sofort Java Basics - Anfänger-Themen 8
M Fortlaufende Konsole Java Basics - Anfänger-Themen 3
G Konsole gibt "alte" sachen aus Java Basics - Anfänger-Themen 3
L Konsole öffnen und Java Programm darin ausführen Java Basics - Anfänger-Themen 4
S Konsole Lanterna in NetBeans einbinden Java Basics - Anfänger-Themen 5
J ausgaben von der konsole in das fenster Java Basics - Anfänger-Themen 5
E Input/Output Konsole erkennt meinen Buchstaben nicht Java Basics - Anfänger-Themen 12
F String wird in Konsole nicht eingelesen Java Basics - Anfänger-Themen 19
A Objekte einer ArrayList auslesen und auf der Konsole ausgeben Java Basics - Anfänger-Themen 2
J Ausgabe auf der Konsole formatieren. Java Basics - Anfänger-Themen 6
T Konsole gibt nicht das Gewünschte aus Java Basics - Anfänger-Themen 5
N Mit Java Befehle auf Konsole ausführen Java Basics - Anfänger-Themen 4
M Input/Output Zeichen on Konsole einlesen Java Basics - Anfänger-Themen 3
S Erste Schritte Konsole leeren Java Basics - Anfänger-Themen 3
N String in Konsole schreiben?! Java Basics - Anfänger-Themen 2
S Beliebigen Tastendruck "einlesen" (ohne Konsole) Java Basics - Anfänger-Themen 3
F String wird richtig in konsole geschrieben aber falsch an Methode übergeben Java Basics - Anfänger-Themen 8
T Text auf der Konsole farbig machen Java Basics - Anfänger-Themen 6
OnDemand Applikation öffnen mit Konsole Java Basics - Anfänger-Themen 17
R Nach Ubuntu-Update: Konsole spuckt bei neu Kompilierten Programmen Fehler aus (BlueJ)(Ubuntu12.04) Java Basics - Anfänger-Themen 11
O Konsole - Kleine Frage Java Basics - Anfänger-Themen 22
O Bereits "gepostete" Strings in der Konsole verändern? Java Basics - Anfänger-Themen 2
T Parameter in Eigner Konsole Java Basics - Anfänger-Themen 2
B Erste Schritte Text in Konsole farbig ausgeben Java Basics - Anfänger-Themen 3
T Konsole leeren? Java Basics - Anfänger-Themen 7
K Methoden Einlesen einer unbegrenzten Matrix über Konsole Java Basics - Anfänger-Themen 6
S Programm läuft in Eclipse, aber nicht über Konsole Java Basics - Anfänger-Themen 10
E Keine Ausgabe der Konsole Java Basics - Anfänger-Themen 4
OnDemand Anführungszeichen im String werden als incompatible in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
J Java Daten von Konsole einlesen (Spezielles Problem) Java Basics - Anfänger-Themen 6
D Erste Schritte Java Konsole öffnet sich nicht Java Basics - Anfänger-Themen 4
S Konsole schließen, nachdem Jar läuft Java Basics - Anfänger-Themen 5
H Exit Befehl in eigener Konsole Java Basics - Anfänger-Themen 9
Luk10 Exception beim Ausführen per Konsole Java Basics - Anfänger-Themen 6
S Konsole work time Java Basics - Anfänger-Themen 9
S runable jar in der Konsole Java Basics - Anfänger-Themen 2
D Konsole leeren? Java Basics - Anfänger-Themen 5
B Konsole beendet - Programm kontrolliert runter fahren Java Basics - Anfänger-Themen 2
K javac in der konsole Java Basics - Anfänger-Themen 4
N Logger-Ausgabe und die Konsole Java Basics - Anfänger-Themen 4
S Erste Schritte Java Konsole öffnen ohne Sysout. Java Basics - Anfänger-Themen 3
masii Spielfeld auf Konsole ausgeben Java Basics - Anfänger-Themen 3
D jar datei nur über konsole ausführbar Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben