Ich habe seit eine Woche begonnen mit den DevC++ zu lernen, ich habe dazu einen Buch....Naja ich habe im Prinzip die grundlagen verstanden (bzw. Variabel Typen, While,for,do Loops, Konatsnten mit #define und enum benutzen, If ,else, funktionen, Void funktionen die keinen werte zurueckgeben, cin, cout, die main() funktion, klassen und Objekte, String Objekte......)
Das und andere dinge habe ich komplett verstanden aber als ich zu diese Arrays angekommen bin habe ich fast nicht verstanden wo zu sie dienen und wie man sie benutzen kann.
Was ich von euch erwarte ist eine erklaerung zu diese gennanten Arrays, also wie man sie benutzt und wozu sie dienen in eine simple sprache die ich verstehe, einen guten beispiel kann nicht schaden.
Aber bitte nicht in eine komplizierte Sprache, da mein Deutsch auf einen sehr niedrigen Niveu ist.
Array ist ein strukturierter Datentyp und umfasst eine feste Anzahl von Elementen eines anderen Datentyps (z.B. Integer)
Einzelne Elemente vom Array können durch einen Indexwert angesprochen werden.
Bsp:
Man spart sich somit viel schreibarbeit.
Nehmen wir mal ein Beispiel, du willst ein Spiel schreiben, wo 4 Spieler mitspielen können. Um jetzt nicht variablen Spieler1, Spieler2, Spieler3, Spieler4 deklarieren zu müssen, kannst du nun einfach sagen Spieler[x], wobei x die Nummer des Spielers steht. Dann mann man sehr leicht eine Schleife basteln, die z.B. von 1 bis 3 zählt, wobei x den Schleifenzähler bekommt. Dann kannst du mit einer einzigen Variabel alles abfrühstücken.
Array ist ein strukturierter Datentyp und umfasst eine feste Anzahl von Elementen eines anderen Datentyps (z.B. Integer)
Einzelne Elemente vom Array können durch einen Indexwert angesprochen werden.
Bsp:
Man spart sich somit viel schreibarbeit.
Nehmen wir mal ein Beispiel, du willst ein Spiel schreiben, wo 4 Spieler mitspielen können. Um jetzt nicht variablen Spieler1, Spieler2, Spieler3, Spieler4 deklarieren zu müssen, kannst du nun einfach sagen Spieler[x], wobei x die Nummer des Spielers steht. Dann mann man sehr leicht eine Schleife basteln, die z.B. von 1 bis 3 zählt, wobei x den Schleifenzähler bekommt. Dann kannst du mit einer einzigen Variabel alles abfrühstücken.
...
Hmmm, ja es macht sinn!
Ok ich will mal etwas anderes von dir:
Kannst du mir diesen QuellCode erklaeren:
Also ich verntehe manche dinge aber auch manche nicht, ich wuerde mich freuen wenn mir einer das oben erklaert!
Dein beschriebenes Beispiel ist ein zweidimensionales Array: Array[y][x]
So sieht der Array "board" aus
board[1][0] ist noch leer.
Hier wird nichts weiteres getan, als nur das zweidimensionale Array (also das Spielfeld), mittels zwei verschaltete For-Schleifen, auf dem Bildschirm auszugebeben.
Hier wird nun der leere Platz [1][0] mit einem X gefüllt.
Es wird wieder, mittels zwei verschaltete For-Schleifen das Array mit dem hinzugefügten Wert, auf dem Bildschirm ausgegeben.
Dein beschriebenes Beispiel ist ein zweidimensionales Array: Array[y][x]
So sieht der Array "board" aus
board[1][0] ist noch leer.
Hier wird nichts weiteres getan, als nur das zweidimensionale Array (also das Spielfeld), mittels zwei verschaltete For-Schleifen, auf dem Bildschirm auszugebeben.
Hier wird nun der leere Platz [1][0] mit einem X gefüllt.
Es wird wieder, mittels zwei verschaltete For-Schleifen das Array mit dem hinzugefügten Wert, auf dem Bildschirm ausgegeben.
...
Oh danke sehr, aber wie soll der Computer wissen welche reihe man ein neues wert gebel will, also ich will jetzt die Spalten einen neues wert geben, wie kann man etwas eingeben das der Computer weis in welche dimension will man etwas aendern, verstehst du was ich meine?
Schau dir das Bild mit dem Array genauer an. Da steht schon die Antwort
Ich habe es dort grafisch aufgezeichnet, wo du welches Feld, für dein Beispiel, findest. Wenn du die Wörter Rows und Columns ins deutsche Übersetzt, solltest du auch auf die Lösung kommen.
Nehmen wir mal an, wir wollen das Feld rechts-unten ändern. Im Moment ist da noch ein 'O' drinnen., die Koordinaten sind Rows = 2 und Columns = 2. (Ich hoffe, du weisst, wie man ein Koordinatensystem liest). Also musst du dann auch board[2][2] ansprechen.
Für das leere Feld links-mitte wäre es Row = 1 und Column = 0.
Also board[1][0].
Ach ja, eine Sache mal am Rande: die Sprache, die du lernst, heißt C++. Dev-C++ ist nur eine Entwicklungsumgebung dazu, also nicht viel mehr als ein Texteditor.
Ach ja, eine Sache mal am Rande: die Sprache, die du lernst, heißt C++. Dev-C++ ist nur eine Entwicklungsumgebung dazu, also nicht viel mehr als ein Texteditor.
...
Danke aber das war nicht noetig^^
Ich hab auch einbissien daran erfahrung, naja erfahrung kann man es kaum nennen. (Du bist der dritte der mir es sagt, hehe)
Aber auf alle faelle danke.
@Whiz-zarD:
Ich glaube du hast meine frage nicht richtig verstanden oder ich habe dich nicht verstanden, ich meinte wenn ich jetzt ( Reihe [0] [1] = x schreibe in welche der zwei Dimensionen wird dieser wert geaendert, abe eine erklaerung ist glaub ich nicht noetig dnn ich habe es glaube ich verstanden.
@Whiz-zarD:
Ich glaube du hast meine frage nicht richtig verstanden oder ich habe dich nicht verstanden, ich meinte wenn ich jetzt ( Reihe [0] [1] = x schreibe in welche der zwei Dimensionen wird dieser wert geaendert, abe eine erklaerung ist glaub ich nicht noetig dnn ich habe es glaube ich verstanden.
Danke im vorraus, Altair66
...
Wenn ich das lese, glaub ich nicht, dass du das verstanden hast.
Du hast nur ein einziges zweidimensionales Array.
Zusätzlich hast du noch die Konstanten Row und Collumn, die jeweils auf 3 gesetzt sind. Allerdings muss man darauf achten, dass die For-Schleifen nicht von 1 bis 3 zählen, sondern von 0 bis 2. Weiterhin wird das Array mit folgenden Daten gefüttert:
Falls das immernoch nicht einleuchtend sein sollte, dann lern erstmal lieber eindimensionale Arrays. Wenn die diese verstanden hast, dann erscheinen dir mehrdimensionale Arrays als selbsterklärend, wobei man noch hinzufügen muss, dass Arrays, die mehr als 3 Dimensionen haben, sehr unübersichtlich werden.
[...] wenn ich jetzt ( Reihe [0] [1] = x schreibe in welche der zwei Dimensionen wird dieser wert geaendert [...]
...
Stell dir dein Array als ein zusammenhängender Speicher vor.
char board[R][C]; Der Speicher könnte dann so aussehen:
R=0; C=0 | R=0; C=1 | R=0; C=2 | R=1; C=0 | R=1; C=1 | ... | R=2; C=2 (-> höhere Adressen)
Du greifst auf ein 'Element' des Arrays zu, nicht auf eine Dimension. Mehrdimensionale Array dienen lediglich der Übersichtlichkeit oder der Effizienz. Prinzipiell kann man alles mit einem eindimensionalen Array machen.
Zitat von Whiz-zarD
[...] wobei man noch hinzufügen muss, dass Arrays, die mehr als 3 Dimensionen haben, sehr unübersichtlich werden.