Ok, weil ich grad gut drauf bin, hab ich 2) für dich gelöst (fast! einen kleinen Teil musst du noch selber machen, weil ich nicht alles verraten darf).
Also, für den Fall, dass du das Programm schon einmal ausprobiert hast ('javac Parser.java', danach 'java Parser [ZAHL]' wo Zahl z.B. 5 ist), hast du sicher gesehen, dass das Pascal'sche Dreieck schon vollständig für dich ausgerechnet und hingezeichnet wird. Heißt so viel wie, du musst nur mehr die Einrückungen selber ausgeben, und zwar vor jeder Zeile. Um symmetrisch zu sein, muss die erste Zeile um ein Leerzeichen weiter eingerückt sein als die zweite, welche wiederum eins weiter rechts steht als die dritte, usw.
In Code-Form schaut das Ganze dann so aus:
for( int j = [WERT EINSETZEN]; j > 0; j-- ) {
System.out.print(" ");
}
und kommt vor die Zeile
System.out.println(pascal[0]); /* 1. Zeile */
sowie vor die Zeile
for (int j=i; j>0; j--)
weil von dort aus die Zeilen ausgegeben werden (und du willst die Einrückung ja davor stellen).
Du musst dir jetzt überlegen, um wie viel Zeichen die Zeile eingerückt werden soll. max ist die maximale Zeilenanzahl, und i ist - innerhalb der Schleife - die Nummer der aktuell bearbeiteten Zeile. i ändert sich natürlich dauernd und ist außerhalb der Schleife nicht verfügbar. Wo [WERT EINSETZEN] steht, musst du dir also noch die Anzahl der Leerzeichen einsetzen, um die diese Zeile verschoben werden soll.
So, das muss für dieses Beispiel echt reichen.