[GELÖST] Java: Pascalsches Dreieck?

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

 

CO2

ehemals "SirMO"

Betreff: [GELÖST] Java: Pascalsches Dreieck?

BeitragMo, Sep 03, 2012 16:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich habe ein Problem in Java: Ich möchte das Pascalsche Dreieck via Java berechnen lassen. Mein bisheriger Code: [AUSKLAPPEN]
package PascalDreieck;

public class PascalschesDreieck
{
   private static int MaxZeilen = 10;
   
   public static void main(String[] Args)
   {
      int[][] Dreieck = new int[MaxZeilen][];
      
      int Zeilen;
      int Spalten;
      
      for(Zeilen = 0; Zeilen < MaxZeilen; Zeilen++)
      {
         Dreieck[Zeilen] = new int[Zeilen];
      }
      
      for(Zeilen = 0; Zeilen < MaxZeilen; Zeilen++)
      {
         for(Spalten = 0; Spalten < Dreieck[Zeilen].length; Spalten++)
         {
            if(Spalten == 0 || Spalten == Dreieck[Zeilen].length)
            {
               Dreieck[Zeilen][Spalten] = 1;
            }
            else
            {
               Dreieck[Zeilen][Spalten] = Dreieck[Zeilen - 1][Spalten - 1] + Dreieck[Zeilen - 1][Spalten]; //MARKIERT
            }
            System.out.print("" + Dreieck + "");
         }
         System.out.println("");
      }
   }
}


Wenn ich diesen Code allerdings ausführe, bekomme ich einen IndexOutOfBounds-Error bei der Markierten Zeile... Ich weiß nicht warum, ich hoffe ihr könnt mir helfen.
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti
  • Zuletzt bearbeitet von CO2 am Mo, Sep 03, 2012 16:34, insgesamt einmal bearbeitet

Propellator

BeitragMo, Sep 03, 2012 16:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Dreieck[Zeilen] = new int[Zeilen];

Ich kenn ja Java nicht, aber würde das nicht ein int-array mit 0 Einträgen erstellen?
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis.
 

CO2

ehemals "SirMO"

BeitragMo, Sep 03, 2012 16:33
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Propellator:
Durch die for-Schleife wird mit der Anweisung ein "Dreieck an Zahlen" erstellt. Also Ist Zeilen = 0, so wird 1 Feld erzeugt, Ist Zeilen = 1 werden 2 erzeugt, usw...

EDIT:
Hat sich geklärt... Der Fehler lag in der If-Anweisung, sie müsste wie folgt lauten Code: [AUSKLAPPEN]
if(Spalten == 0 || Spalten == (Dreieck[Zeilen].length) - 1)
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Propellator

BeitragMo, Sep 03, 2012 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Was es tut ist mir klar, ich war nur unsicher ob Java beim Erstellen von Arrays bei 0 beginnt zu zählen, oder wie BlitzMax bei 1.
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis.

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group