Pascalsches Dreieck: Ausgabeproblem

Conny Lingo

Mitglied
Hallo,

ich habe den Programmcode geschrieben, um das Pascalsche Dreieck auszugeben. Hat auch alles gut geklappt, jezt gehts aber um die Formatierung. Letztendlich will ich erreichen, dass das Teil auch in Dreieckform (jede Zeile beginnt mittig) ausgegeben werden kann.

Hier mal mein Programmcode:

Java:
package pascalEnd;

package pascalEnd;

public class PascalEnd 
{
	
	public static long fakultät (long n)  
	{
		
		long fak=1;
		for (long i = 1; i<=n; i++) { 
			 fak=fak*i;}
			 return fak; 
	}
	
	public static long binkoeff (long p, long q) 
	{
		long binko = 0;
		binko =  fakultät (p) / (fakultät (q)*(fakultät (p-q)));
		return binko;
	}
				
	public static long Zeile (int m) 
	{
		
		int  k=0;
		long y=0;
		
		do{
			y= binkoeff(m, k);
			System.out.printf(" %d", y);
			k++;
			}while (k<=m);
		
		return y;
	}
		
	public static void main(String[] args) 
	{
		
		int m=0;
		long z =0;
		do{ 
			z = Zeile (m);
			System.out.println("\n");
			m++;;
			}while (m<=5);
							
	}

}

Erläuterung zum Code:
In Zeile 8-15 wird eine statische Methode zur Fakultätsberechnung definiert.
In Zeile 17-22 wird eine statische Methode zur Binomialkoeffizientenberechnung definiert.
In Zeile 24-37 wird eine statische Methode zur Ausgabe einer bestimmten Zeile des Dreiecks definiert.
Die Idee mit der Definition einer Methode zur Zeilenausgabe kam mir, weil ich unten in der main-Methode dann schreiben wollte, dass jede Zeile in einen String umgewandelt werden soll, der dann mit einer bestimmten Formatierungsvorgabe ausgegeben werden soll.
In Zeile 48 soll man durch Änderung von m die maximale Anzahl an ausgegebenen Zeilen ändern können.


Im Moment sieht das Ganze aber noch so aus wie in Zeile 42-48 und erzeugt dann folgende Bildschirmausgabe (siehe Anhang "pascal 1").

Jetzt wollte ich ab Zeile 45 folgende Änderungen vornehmen:
Java:
z = Zeile (m);
			String s = String.valueOf( z );
			System.out.println("\n");
			System.out.printf("%10s", s);
			m++;;

einfach um zu bewirken, dass jede Zeile soweit eingerückt ist, wie ich es mit dem Formatierungs-Parameter "%s" angebe (ich will letztendlich in jeder Zeile die Differenz an Zeichen, die sich mit der Anzahl der Zeichen für die längste Zeile --> m=max ergibt, mit Leerzeichen (vornedran und hintendran jeweils die Hälfte) auffüllen, um damit eine mittige Ausgabe jeder einzelnen Zeile zu erreichen. Den Code dazu schreibe ich später).
Nach der Änderung gibt er mir etwas aus, was ich mir nicht erklären kann (siehe Anhang "pascal2").
Kann mir jemand sagen,

a) Wieso die erste Zeile noch links anfängt und
b) was diese verdammte zusätzliche 1 am Anfang jeder Zeile noch soll?

Und vielleicht könnt ihr mir noch einen Hinweis geben, wie ich das korrigieren kann.

Danke schonmal im Voraus.

Grüße
 

Anhänge

  • pascal 1.png
    pascal 1.png
    3,5 KB · Aufrufe: 53
  • pascal2.png
    pascal2.png
    3,2 KB · Aufrufe: 53
Y

yyannekk

Gast
a) deine Methode Zeile wird (im ersten Durchgang) vor deiner Einrückung ausgeführt. Da diese Methode auch etwas ausgibt ist es nicht eingerückt.

b) String.valueOf( z ); liefert in jedem Durchgang 1 als Rückgabewert (kA warum... musst du selber herausfinden :) ). Bei System.out.printf("%10s", s); wird dann 10 mal Leertaste und eine 1 ausgegeben.
 

Conny Lingo

Mitglied
@ yyannekk:

zu a) Ok, das ist verständlich, da weiß ich auch, wie ich das korrigiere, danke.
zu b) Tut mir leid, aber damit kann ich nichts anfangen. Ich habe schon einige Zeit darin investiert, herauszufinden, wo diese 1 herkommt, habe aber bis jetzt noch kein Ergebnis, deswegen habe ich das hier gepostet.
Trotzdem danke für deine Mühe.
Vielleicht fällt jemand anderem noch was dazu ein?

Grüße
 
G

Gast2

Gast
zu b) Tut mir leid, aber damit kann ich nichts anfangen. Ich habe schon einige Zeit darin investiert, herauszufinden, wo diese 1 herkommt, habe aber bis jetzt noch kein Ergebnis, deswegen habe ich das hier gepostet.
Die 1 gehört zum Pascalschen Dreieck, so schaut das halt aus ;)
 
G

Gast2

Gast
Hm, meinst du nen anderes Pascalsches Dreieck als ich? Meins hat links und rechts auf jedenfall überall 1er :bae:
 
S

SlaterB

Gast
@ EikeB
es geht um Fehler in der Anzeige, noch mehr Einsen

@Conny Lingo
die Antwort von yyannekk enthält eigentlich alles, was gibt es da nicht zu verstehen bzw. frage doch genauer nach,
eine andere Idee muss niemand finden

der Rückgabewert ist y, das ist als letzer Wert einer Zeile immer 1,
der String s in der main ist immer "1", der wird in der main-Methode geschrieben,

außerdem gibt es noch die Ausgabe in der Methode Zeile, dort wird z.B. nacheinander 1, 2, 1 geschrieben,
zusammen mit der "1" aus der main ergibt sich 1 1 2 1 mit einer 1 zuviel

lasse lieber die Methode Zeile einen String zusammenbauen, eben eine Zeile, keine Ausgabe,
in der main-Methode dann diesen String ausgeben
 

Conny Lingo

Mitglied
@EikeB:
Schau dir mal in meinem Anhang "pascal2" an. Jetzt halte deinen Finger auf die erste linke Reihe 1en. Du wirst hoffentlich feststellen, dass DANN das Dreieck mathematisch korrekt ist und mit mir dann übereinstimmen, dass diese Reihe, die du mit deinem Finger verdeckst, dort absolut nichts zu suchen hat?
Oder bin ich jetzt total durch^^?
 

Conny Lingo

Mitglied
@SlaterB:
Ich hatte gedacht, ich muss das in der Methode "Zeile" so machen, weil Eclipse mit sonst irgendwie ankreidet, dass meine Variable y, die ich dort definiere, nicht verwendet wird.
BTW fällt mir gerade ein, dass die Vorgabe ist, keine Arrays zu verwenden, von daher muss ich mir mal überlegen, wie ich das dann mache, dass ich in der Methode "Zeile" diese Zeile nur berechnen lasse und sie später in main ausgeben lasse.
Aber danke!
 

Conny Lingo

Mitglied
Wollte mich nochmal bei euch für eure Tipps und Beiträge bedanken, habs schlussendlich so hinbekommen, wie ich es wollte!
Fängt schon mal gut an in diesem Forum =)

Grüße
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
_so_far_away_ pascalsches Dreieck Zentrierung. Java Basics - Anfänger-Themen 12
F Pascalsches Dreieck mit Rückgabewert Java Basics - Anfänger-Themen 2
L Pascalsches Dreieck Java Basics - Anfänger-Themen 4
K pascalsches Dreieck Java Basics - Anfänger-Themen 8
M Pascalsches Dreieck Java Basics - Anfänger-Themen 12
W Pascalsches Dreieck Java Basics - Anfänger-Themen 19
D Pascalsches Dreieck Java Basics - Anfänger-Themen 9
G Pascalsches Dreieck Java Basics - Anfänger-Themen 8
laxla123 Dreieck erstellen Java Basics - Anfänger-Themen 1
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
kxrdelis Konstruktor für ein Rechtwinkliges Dreieck Java Basics - Anfänger-Themen 10
G Magisches Dreieck Java Basics - Anfänger-Themen 2
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
S Überprüfung rechtwinkliges Dreieck Java Basics - Anfänger-Themen 4
Z Warum kein Dreieck aus Sternen? Java Basics - Anfänger-Themen 9
L Dreieck Java Basics - Anfänger-Themen 22
O Erste Schritte Pascalsche Dreieck Java Basics - Anfänger-Themen 3
H Stern Dreieck (Buch: Grundkurs Programmieren) Java Basics - Anfänger-Themen 2
D Pascal'sches Dreieck Java Basics - Anfänger-Themen 6
N Methoden Gleichseitiges Dreieck erstellen Java Basics - Anfänger-Themen 8
U Dreieck Java Basics - Anfänger-Themen 22
E Dreieck zeichnen Java Basics - Anfänger-Themen 3
1 2D-Array, dass das pascalsche Dreieck berechnet Java Basics - Anfänger-Themen 2
L Dreieck Kreis Java Basics - Anfänger-Themen 12
B Dreieck Flächenberechnung Java Basics - Anfänger-Themen 2
B Java Grafikprogrammierung Dreieck Java Basics - Anfänger-Themen 6
I Umgedrehtes Dreieck Java Basics - Anfänger-Themen 3
M Dreieck erstellen Java Basics - Anfänger-Themen 17
J Dreieck Ausgeben Java Basics - Anfänger-Themen 3
R Pascalsche Dreieck Java Basics - Anfänger-Themen 4
R Pascalsche Dreieck Java Basics - Anfänger-Themen 8
H Compiler-Fehler Pascalsche Dreieck Java Basics - Anfänger-Themen 2
M Dreieck prüfen Java Basics - Anfänger-Themen 8
E Pascalsche Dreieck aus Java openbook Java Basics - Anfänger-Themen 3
B Bitte um Hilfe es geht um Array + Punkte wie Dreieck,Fläche etc. Java Basics - Anfänger-Themen 12
H Dreieck aus Zeichen Java Basics - Anfänger-Themen 4
L Paskalsche Dreieck im Array Java Basics - Anfänger-Themen 2
T Pascalsche Dreieck ERKLÄRUNG Java Basics - Anfänger-Themen 6
U Rekursive lösung von pascal dreieck Java Basics - Anfänger-Themen 11
H2SO3- dreieck, bild --> maus klick event. Wie gehts? Java Basics - Anfänger-Themen 10
Antoras Dreieck zeichnen Java Basics - Anfänger-Themen 2
A Problem Gleichseitiges Dreieck aus Sternchen Java Basics - Anfänger-Themen 7
G Pascalsche Dreieck in Dreieckform Java Basics - Anfänger-Themen 2
X Pascalsche Dreieck Java Basics - Anfänger-Themen 6
G Dreieck mit Java Apllet Java Basics - Anfänger-Themen 10
V Dreieck spiegeln Java Basics - Anfänger-Themen 3
L Dreieck soll Farbe ändern Java Basics - Anfänger-Themen 4
L Dreieck füllen Java Basics - Anfänger-Themen 4
X Dreieck ausgeben Java Basics - Anfänger-Themen 3
B Hindergrundfarbe in JPanel und Dreieck zeichnen Java Basics - Anfänger-Themen 4
D Das Problem mit dem Dreieck. Java Basics - Anfänger-Themen 5
B auf der Spitze stehendes Dreieck mit for-Schleifen Java Basics - Anfänger-Themen 6
lan2711 Anfänger: Konstruktion Dreieck Java Basics - Anfänger-Themen 2
C Threads jTextArea Ausgabeproblem Java Basics - Anfänger-Themen 3
C Erste Schritte Ausgabeproblem bei Bruchrechnung Java Basics - Anfänger-Themen 5
N Das Ausgabeproblem Java Basics - Anfänger-Themen 4
N Ausgabeproblem Java Basics - Anfänger-Themen 3
L verkettete Liste - Ausgabeproblem Java Basics - Anfänger-Themen 2
G Ausgabeproblem Java Basics - Anfänger-Themen 3
A ausgabeproblem Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben