Sternausgabe

lily

Aktives Mitglied
hallo kann mir jemand bitte verraten, was das genau heißt?
Java:
public static void main(String[] args) {
		int max = 15, sternzahl=1;
 
		// Ausgabe
		signs(' ', max/2+1);
		System.out.println("*");

???:L bitte...
 
Zuletzt bearbeitet von einem Moderator:

Final_Striker

Top Contributor
Das ist eine
Code:
main
-Methode in der eine
Code:
signs
-Methode aufgerufen wird.
 

lily

Aktives Mitglied
gut, verstehe und was bedeutet
Java:
int max =15
...?soll das
die höhe darstellen?
und das ?
Java:
(' ', max/2+1);
 
C

Camino

Gast
max ist eine Variable mit einem int-Wert. Wofür diese nun in dem Programm benutzt wird, kann man anhand dem kleinen Codeausschnitt nicht sagen.
 

lily

Aktives Mitglied
si sieht das komplette programm aus ...ich soll in jede zeile ein kommentar setzten.
den rest würde ich schaffen wenn ich den anfang verstehe...
Java:
public static void main(String[] args) {
		int max = 15, sternzahl=1;
 
		// Ausgabe
		signs(' ', max/2+1);
		System.out.println("*");
		for (int count=max/2; count >= 0;  count--) 
		{
			sternzahl += 2;
			signs(' ', count);
			signs('*', sternzahl);
			System.out.println();
		}
	}
 
	static void signs(char sign, int count) {
		for (int i=0; i<count; i++)
			System.out.print(sign);
 

Ark

Top Contributor
Ich stelle mir gerade einen Japaner vor, der gehört hat, das Geete (=Goethe) irgendwie wichtig gewesen sein soll. Also will dieser Japaner unbedingt Doitsugo (=Deutsch (als Sprache)) lernen, sucht irgendein möglicherweise geeignetes Forum im Internet, haut den Usern dort die ersten Verse vom Zauberlehrling hin und schreibt "Nani kore?" (etwa: "Was (ist) das?").

Ark
 
C

Camino

Gast
OK, ich geb dir jetzt mal 2 Tipps:

signs ist also eine Methode, in der Klammer stehen Parameter, die der Methode übergeben werden.

for ist eine Schleife, in der etwas gemacht wird.
 

lily

Aktives Mitglied
gut verstanden, dennoch ist mir nicht klar was die Methode signs konkret aussagt...also ich glaube
sie sagt mir wieviele leerezeichen geschrieben werden sollen, ist das korrekt?
 
C

Camino

Gast
Wie kommst du auf Leerzeichen? Schau doch mal, was als Parameter in der Klammer steht und was bei den Aufrufen der Methode (ein bisschen weiter oben) als Parameter übergeben wird.
 

lily

Aktives Mitglied
in der klammer steht doch-> in hochkommt ein leerzeichen, dann 15 durch 2 plus 1,das sind 8,5
aber da es ein int ist kommen da nur ganzzahlen raus also 8.....oder bin ich grad völlig bekloppt????
 

Volvagia

Top Contributor
Mach dir doch eine Liste. Das Programm arbeitet ja auch nur Zeilenweiße ab (zumindest sieht es für den Anwender so aus). Wenn du dann eine Liste der Variableveränderungen und Ausgabe hast kannst du diese auf höheren Niveau zu einer Schleife zusammen fassen und mit einen kurzen Satz den Vorgang darin beschreiben. Auf noch höheren Niveau kannst du dann die Befehle zu Methoden zusammenfassen und damit diese mit einen (oder je nach Größe auch mehreren) Sätzen beschreiben. Und so weiter. Sobald du eine Liste von Befehlen hast, hast du einen Vorher- und Nachherstatus, und die Differenz davon ist das, was gemacht wird.

Ich hoffe, ich habe das gut verständlich geschrieben. :oops:

Wie kommst du auf Leerzeichen?
Stimmt doch. ???:L
Die Methode wird 2x mit Leerzeichen und 1x mit Mal/Sternchen aufgerufen.

aber da es ein int ist kommen da nur ganzzahlen raus also 8.....oder bin ich grad völlig bekloppt????
Doch, stimmt.
 
Zuletzt bearbeitet:
C

Camino

Gast
in der klammer steht doch-> in hochkommt ein leerzeichen

Ja, das stimmt für den einen Fall, aber es gibt ja noch weitere Aufrufe der Methode. Die Methode nimmt ein char und ein int als Parameter an. In dem einen Fall ist es eben ein Leerzeichen, in dem anderen Fall ist das Zeichen ein Stern.
 
C

Camino

Gast
Stimmt doch. ???:L
Die Methode wird 2x mit Leerzeichen und 1x mit Mal/Sternchen aufgerufen.

Ja sorry, da war ich vielleicht etwas missverständlich. Ich wollte damit aussagen, dass die Methode nicht sagt, wieviele Leerzeichen geschrieben werden sollen, sondern wieviele Zeichen (char). In zwei Fällen sind es halt Leerzeichen, in einem Fall ein Stern. Eben je nachdem, was als Parameter übergeben wird. Das Leerzeichen ist halt nicht in der Methode festgelegt.
 
Zuletzt bearbeitet von einem Moderator:

Volvagia

Top Contributor
Entschuldige falls ich dich falsch verstanden haben sollte, aber es klang echt so als ob man dich gerade vor deinen allerersten Java-Source gesetzt hätte. Du hattest anfangs auch nicht gesagt, dass du bereits vermutest, was das Programm macht. Es kann am Aufenthalt im Anfänger-Forum liegen, aber wenn bei so geringen Source nur gefragt wird klingt das für mich am ehesten nach betteln. Tut mir leid.

Aber du hast richtig erkannt, dass max auf 15 gesetzt wird. Auch, dass eine reine Ganzzahl-Division eine Ganzzahl und keine Gleitkommazahl ergibt. (Nicht seltener Fehler)
Und das signs das übergebene char n mal in den Output schreibt.

Danach fehlt nur noch das System.out.println("*"); dass durch signs sowieso schon klar sein dürfte und die 2. etwas größere Schleife, die wiederrum signs benutzt.
 
Zuletzt bearbeitet:

Oben