Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Sonstige Fragen » Mehrdimensionales Array » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Mehrdimensionales Array
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
123michi19
unregistriert
Mehrdimensionales Array Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Hi Leute,

gut dass es euch gibt :-)

Ich muss unter der Verwendung mehrdimensionaler Arrays das Pascalsche Dreieck ausgeben lassen. Der Einfachheit halber darf es folgendermaßen ausgegeben werden:
1
11
121
1331
usw.

Die Höhe muss frei wählbar sein.

Meine Ideen:
Meine Gedanken dazu:

mehrdimensionales Array initialisieren mit der gewünschten Höhe

int [] pascal = [3][3];

Aber jetzt halt das Problem, dass ich es nicht schaffe, die jeweils zwei zusammengehörenden Zahl zu addieren?


Vielen Dank für Eure Hilfe :-)
30.11.2014 16:28
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hi,
ein zweidimensionales Array initialisierst du aber anders:
code:
1:
2:
int size = ...;
int[][] pascal = new int[size][size];

dann eine Initialisierung der 1en:
pascal[0][n] = 1;

anschließend wird der Inhalt befüllt nach der bekannten Formel
[latex]\binom{n}{k} = \binom{n-1}{k-1}+\binom{n-1}{k}[/latex] (für k, n > 0)
hierfür brauchst du zwei verschachtelte Schleifen.

__________________
Syntax Highlighting fürs Board (Link)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von eulerscheZahl: 30.11.2014 16:55.

30.11.2014 16:55 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
123michi19
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Vielen Dank für die Antwort. Wäre der folgende Ansatz teilweise richtig?

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
package testpackage;

public class TestKlasse 
{

	public static void main(String[] args) 
	{
		int n=1;
		int [][] pascal = new int [0][n];
		
				for (int i=0; i<pascal.length; i++)
					{
						for (int j=0; j<i; j++)
						{
							System.out.println (n);
						}
						
					}
			
		
	}
}
30.11.2014 17:07
123michi19
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hier noch einmal ohne das viele (von dir gehasste großes Grinsen ) einrücken :-)

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
package testpackage;

public class TestKlasse 
{

	public static void main(String[] args) 
	{
		int n=1;
		int [][] pascal = new int [0][n];
		
				for (int i=0; i<pascal.length; i++)
					{
					for (int j=0; j<i; j++)
						{
						System.out.println (n);
						}
					}
	}
}
30.11.2014 17:08
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Nein.

Wenn wir ein pascalsches Dreieck im Speicher anlegen wollen, dann brauchen wir genauso viele Zeilen wie Spalten (siehe mein Codebeispiel, da steht nicht ohne Grund zweimal die selbe Größe).
Der Speicherinhalt soll später so aussehen:
code:
1:
2:
3:
4:
5:
6:
7:
n\k 0 1  2  3 4 5
0   1 0  0  0 0 0
1   1 1  0  0 0 0
2   1 2  1  0 0 0
3   1 3  3  1 0 0
4   1 4  6  4 1 0
5   1 5 10 10 5 1

das heißt wir legen ein zweidimensionales Array der Größe 6x6 an (können wir später noch durch eine Konstante ersetzen, ich will es so greifbar wie möglich halten und dich nicht unnötig verwirren)
code:
1:
int[][] pascal = new int[6][6];


als nachstes kommen die 1er für k=0 (linker Rand)
code:
1:
2:
for (int n = 0; n < 6; n++)
    pascal[n][0] = 1;

ich werde konsequent den ersten Index für n und den zweiten für k verwenden. Könnte man theoretisch auch tauschen. Das ist komplett egal, man darf dabei nur nicht durcheinanderkommen.

So und jetzt die Berechnung der restlichen Felder:
code:
1:
2:
3:
for (int n = 1; n < 6; n++)
    for (int k = 1; k <= n; k++)
        pascal[n][k] = *hier Berechnungsformel einfügen*;


edit: so würde ich die Formatierung erwarten:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
public class TestKlasse 
{

	public static void main(String[] args) 
	{
		int n=1;
		int [][] pascal = new int [0][n];
		
		for (int i=0; i<pascal.length; i++)
		{
			for (int j=0; j<i; j++)
			{
				System.out.println (n);
			}
		}
	}
}

aber für den Compiler ist beides lesbar - und das ist ja das wichtigste (solange man keine Fehler finden muss, weil der Kollege was verbockt hat).

__________________
Syntax Highlighting fürs Board (Link)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von eulerscheZahl: 30.11.2014 17:22.

30.11.2014 17:20 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
123michi19
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Vielen Dank für deine Hilfe. Eine Frage noch: Wie lange dauert es denn, bis man solche Aufgaben in deiner Geschwindigkeit lösen kann? Ich studiere jetzt seit 8 Wochen Informatik und frage mich (die Erfahrung fehlt mir natürlich) ob es überhaupt der richtige Studiengang ist, da mir schon die Ansätze richtig schwer fallen?
30.11.2014 17:28
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Dass du in 8 Wochen nicht meinen Stand erreichst, ist zu erwarten. Alles andere wäre ein schlechtes Zeugnis für mich, schließlich lerne ich es (teilweise im Selbststudium) seit etwa 7 Jahren. Angefangen habe ich im Matheunterricht der 8. Klasse mit Pascal - der Lehrer hat die Variablen damals a,b,c,d genannt. Hat eine Weile gedauert, bis ich mir das wieder abgewöhnt hatte smile

Ich hatte mit soetwas am Anfang auch Probleme, aber mit der Zeit wiederholen sich bestimmte Dinge, du musst öfter mal zwei Schleifen verschachteln - irgendwann erkennst du das von selbst und kannst es ohne lange nachzudenken eintippen. Auch die Syntax einer Sprache lernt man mit der Zeit, weiß an welchen Stellen man auf Bibliotheksfunktionen zugreifen kann und so ein paar Zeilen abkürzen kann.

Mach' dir keine allzugroßen Gedanken, wenn es am Anfang etwas länger dauert, bleibt hartnäckig und habe vor allem Spaß bei der Sache, dann geht es mit der Zeit ganz von allein.

__________________
Syntax Highlighting fürs Board (Link)
30.11.2014 17:37 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
123michi19
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Vielen Dank für deine aufmunternden Worte :-) und die Hilfe natürlich ;-)
30.11.2014 17:40
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Sonstige Fragen » Mehrdimensionales Array