gute erklärung

Status
Nicht offen für weitere Antworten.

TheJavaKid

Top Contributor
also,
ein kumpel hat mich gebeten ihm das Pascalsche-Dreieck-Programm zu erklären:

Code:
// import java.util.*;
// import java.io.*;

// Autor: Mathias Hackl
// Version: 1.0
// Datum: 06.05.2006
public class Pascal {
  public static void main( String args[] ) {
    final int n = 6;
    int k=n;
    String s="";
    int dreieck[][] = new int[n][];
    for ( int i = 0; i < dreieck.length; i++ ) {
      dreieck[i] = new int[i+1];
      for(int g=0;g<k; g++)
          s += "  ";
        System.out.print(s);
      for ( int j = 0; j <= i; j++ ) {
        if ( (j == 0) || (j == i) )
          dreieck[i][j] = 1;
        else
          dreieck[i][j] = dreieck[i-1][j-1] + dreieck[i-1][j];
        System.out.print( dreieck [i][j] + "   " );
      }
      k--;
      s="";
      System.out.println();
    }
  }
}

und mein problem: egal wie ichs ihm erkläre er versteht den sinn dieser codezeile einfach nicht:
Code:
dreieck[i] = new int[i+1];

weiß jemand eine möglichst einfache erklärung?
 
dreieck[][] ist ein zweidimmensionales Array.
Beim Erstellen des Arrays wird nur die eine Dimmension (n Zeilen) vorgegeben.
Also
Code:
int dreieck[][] = new int[n][];
In der Schleife werden für jede Zeile des Arrays Spalten erzeugt, wobei bei
jedem Schleifendurchgang eine Spalte mehr erzeugt wird.
Die Schleife entspricht also
Code:
dreieck[i] = new int[i+1];
----------------------------------------
dreieck[0] = new int[1]; // i=0 daher i+1 = 1
dreieck[1] = new int[2]; // i=1 daher i+1 = 2
dreieck[2] = new int[3]; // i=2 daher i+1 = 3
...
dreieck[dreieck.length-1] = new int[dreieck.length]; // i=dreieck.length-1 daher i+1 = dreieck.length
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben