Problem mit einem Java Porgramm!

Status
Nicht offen für weitere Antworten.

Bodo1981

Mitglied
Schreiben Sie ein Programm, das einen Baum aus Sternen auf den Bildschirm ausgibt:

*
***
*****
*******
*********
***********
*************
*************** <-- Breite
***
***
***

Kann mir bitte jemand den kompletten Quelltext schreiben, indem nach der Breite des Baumes
gefragt wird und das Programm dann mit Hilfe von Schleifen diesen Baum ausgibt.

Danke schonmal im voraus

MIt freundlichen Grüßen
 

Sky

Top Contributor
@mod: bitte nach Aufgaben und Gesuche schieben

@Bodo: ich denke nicht, dass Du mit deiner Anfrage hier viel Glück hast...
 
S

stev.glasow

Gast
*vorschoben*
Komplette Hausaufgaben werden hier nicht gelöst.
 

mic_checker

Top Contributor
Poste doch mal womit du Probleme hast.

Weisst du nicht wie man etwas von der Tastatur einliest ?
Hast du keinen Ansatz wie man das mit den Sternen macht ?
etc. pp.

Ansonsten wird das keiner hier für dich machen.
 

Shrike

Mitglied
Also die Spitze des Baumes geb ich dir den Rest musste selber machen...

Code:
System.out.println("*");

:wink:
 

gizmo

Bekanntes Mitglied
Womit hast du Probleme? Mit dem Algorithmus, mit der Syntax oder mit der Motivation?
 
G

Gast

Gast
public class Dreieck {

public static void main(String args[] ){

for(int i=0;i<=10 ;i++ ) {
for(int j=0;j<=i ;j++ )
System.out.print("*");

System.out.println();




}

}
}// nur eine Idee
 

cs

Mitglied
Shrike hat gesagt.:
Also die Spitze des Baumes geb ich dir den Rest musste selber machen...

Code:
System.out.println("*");

:wink:

die zweite zeile sieht dann so aus : System.out.println("**");
 

cs

Mitglied
die lösung vom gast ist wohl die klassische. ich habe es so gemacht

class Tannebaum
{
static void main(String args[] )
{
int max_breite = 10;
String str = "*";
for( int i = 0; i < max_breite; i++ )
{
System.out.println(str);
str = str + "*" ;
}
System.out.println("***\n***\n***");
}
}
 

Illuvatar

Top Contributor
cs, du scheinst ja, wie ich aus anderen Posts entnehman konnte, neu in Java zu sein. Deshalb hier mal der allerallerwichtigste Performance-Tip: Verwende nicht in einer Schleife den + - Operator auf Strings. Dadurch werden lauter unötige Objekte instanziiert und dein Speicherverbrauch geht hoch (natürlich bei den 10 hier noch nicht so sehr ;) ). Das liegt daran, dass String immutable ist, deshabl wandelt der Compiler das von dir da oben sowas in der Art von dem hier um:

str = new StringBuffer (str).append ("*").toString();

Also lieber gleich einen StringBuffer, bzw. ab Java 5 noch besser StringBuilder verwenden ;)
 

insomnia

Mitglied
Code:
public class Dreieck {

public static void main(String args[] ){

int max_breite = 15; // Anzahl der maximalen Sternchen 

for(int i=0;i<=20 ;i=i+2 ) {
for(int j=0;j<=i ;j++ ) {
	if (i<=max_breite)	
		System.out.print("*");
 	else {
		System.out.print("***");
		break;
		}
	}	
System.out.println();
}
}
}
 

Bastian

Bekanntes Mitglied
insomnia hat gesagt.:
Code:
public class Dreieck {

public static void main(String args[] ){

int max_breite = 15; // Anzahl der maximalen Sternchen 

for(int i=0;i<=20 ;i=i+2 ) {
for(int j=0;j<=i ;j++ ) {
	if (i<=max_breite)	
		System.out.print("*");
 	else {
		System.out.print("***");
		break;
		}
	}	
System.out.println();
}
}
}

Verbesserte Version:

Code:
import java.io.*;
public class Baum {

public static void main(String args[] )throws IOException{

  BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in));

  System.out.println("Bitte Baumbreite eingeben:");
  int max_breite = Integer.parseInt(stdin.readLine()); // Anzahl der maximalen Sternchen

  for(int i=0;i<=max_breite+6 ;i=i+2 ) {
          for(int j=0;j<=i ;j++ ) {
          if (i<=max_breite)
            System.out.print("*");
            else {
             System.out.print("***");
              break;
               }
            }
               System.out.println();
          }
  }
}
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben