# Sternchen Pyramide



## Stap (31. Mrz 2010)

Hallo alle Zusammen,
bin neu hier und ich hoffe ihr koennt mir weiter helfen. Bin seit Tagen dabei einen Fehler in meinem Java Quelltext zu finden. Aber ich finde ihn nicht. Das ist zum verzweifeln. Ich hoffe jemand kann mir einen Tip geben wo der Fehler liegen koennte.
Die Aufgabe lautete. Gebe eine Sternchen Pyramide in der commandline mit der Hoehe h=8 aus. 
Hier mein Queltext.


```
class Sternchen

{
	public static void main (String [] arg)


    {
	int h = 8;
	int zw=0;
	int k=0;
	int i = 1;
	zw=h-1;

	while (k<=h)
	{
	   int j = 0;
	    while (j<=zw)
	    {
	      System.out.print (" ");
	
	       j=j+1;

	     }
		
	     while (i>0)
	     {
		System.out.print ("*");
              
	        i=i-1;
 	      }

	System.out.println ();
	     i=i+2; 
	     k=k+1;
	     zw=zw-1;
             
	       

	}

          
    }

}
```


----------



## AlexSpritze (31. Mrz 2010)

Lässt es sich kompilieren?
Wenn ja, was passiert, wenn du es ausführst?


----------



## javanatiker (31. Mrz 2010)

soweit ich das sehen kann dürfte da ein querbalken rauskommen, hmm könnte man nicht für int j=3 mal versuchen?


----------



## Stap (31. Mrz 2010)

jep, ohne Probleme. Nur die Ausgabe ist nicht ganz Richtig. Es sieht zwar schon nach Pyramide aus, aber es werden immer nur 2 Sternchen  je  Zeile ausgegebenausgegeben und ich weiss nicht was ich da falsch angegeben habe. Habs mit dem Tischtest ausprobiert und da funktionierts. Vielleicht habe ich irgendwo eine kleinigkeit uebersehen.

............*
..........**
........**
......**
....**
..**
**


----------



## Stap (31. Mrz 2010)

javanatiker hat gesagt.:


> soweit ich das sehen kann dürfte da ein querbalken rauskommen, hmm könnte man nicht für int j=3 mal versuchen?



oehm noe....eigentlich nicht... bei j=3 wuerde es ja bedeuten das er nur 5 blanks "druckt" und das hilft glaub ich nicht ganz so weiter


----------



## javanatiker (31. Mrz 2010)

aber danke für das prg ich hab es länger gesucht:-D


----------



## javanatiker (31. Mrz 2010)

Stap hat gesagt.:


> oehm noe....eigentlich nicht... bei j=3 wuerde es ja bedeuten das er nur 3 blanks "druckt" und das hilft glaub ich nicht ganz so weiter



ja stimmt mist da hab ich mich versehen, naja mein ich kann aber meinen vater fragen der kennt sich bestens mit java ausvillt weiß der ja ne antwort


----------



## srea (31. Mrz 2010)

Wie ich das sehe liegt Fehler in der i>0 Schleife. Du lässt i jedesmal nach 0 runter laufen und machst dann immer wieder nur +2. Dann ist es klar, das du immer nur 2 Sterne bekommst, da i ja nie größer werden kann als 2.
Müsst ihr das denn mit while Schleifen machen? Finde hier for-Schleifen geeigneter.
Schau dir nochmal an, welche Werte i jeweils nach durchlaufen der while(i>0) Schleife annimmt und überleg, wie du da i erhöhen musst, das du mehr Sterne bekommst.


----------



## Stap (31. Mrz 2010)

srea hat gesagt.:


> Wie ich das sehe liegt Fehler in der i>0 Schleife. Du lässt i jedesmal nach 0 runter laufen und machst dann immer wieder nur +2. Dann ist es klar, das du immer nur 2 Sterne bekommst, da i ja nie größer werden kann als 2.
> Müsst ihr das denn mit while Schleifen machen? Finde hier for-Schleifen geeigneter.
> Schau dir nochmal an, welche Werte i jeweils nach durchlaufen der while(i>0) Schleife annimmt und überleg, wie du da i erhöhen musst, das du mehr Sterne bekommst.



oh danke fuer den Hinweis, dass war mir so nicht klar. Ich werd das gleich mal ausprobieren wie ich dort das Problem loesen kann. Ja genau, es soll mit while schleifen gemacht werden. Die for Schleifen haben wir noch nicht behandelt. Hab grad erst mein Studium angefangen, bin noch echt unerfahren im Programmieren.


----------



## Stap (31. Mrz 2010)

Stap hat gesagt.:


> oh danke fuer den Hinweis, dass war mir so nicht klar. Ich werd das gleich mal ausprobieren wie ich dort das Problem loesen kann. Ja genau, es soll mit while schleifen gemacht werden. Die for Schleifen haben wir noch nicht behandelt. Hab grad erst mein Studium angefangen, bin noch echt unerfahren im Programmieren.



Wie geil!!!!!!! endlich ich habs hinbekommen :applaus: .....ohman war das eine schwierige geburt. vielen dank fuer den hinweis. das war echt nur ein kleiner fehler und den hab ich immer wieder uebersehen.


----------



## torpedokroete (9. Nov 2011)

Kannst du deinen ganzen richtigen quelltext mal posten? Ich bin auch studienanfänger und soll einen Diamanten aus sternchen machen, also eine gespiegelte pyramide quasi.


----------



## Landei (9. Nov 2011)

Code klauen wird dich nicht weiterbringen, und dein Leerkörper wird mitbekommen, dass das nicht deins ist, wenn er nicht völlig evakuiert ist, aber bitteschön...


```
int size = 5;
for(int i = 1; i < 2*size ; i++) {
    for(int j = 1; j < 2*size; j++) {
        System.out.print(Math.abs(i - size) + Math.abs(j - size) >= size ? ' ' : '*');
    }
    System.out.println();
}
```


----------

