Anfänger Problem mit DIM-Feldern
Übersicht

robot91Betreff: Anfänger Problem mit DIM-Feldern |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
also erstmal, ich bin ein totaler Einsteiger in Basic, weshalb ich mir vor längerer Zeit das Buch von René Meyer gekauft habe und jetzt mal anfangen will mit programmieren. Ich versteh soweit eigentlich alles sehr gut, nur mit den Dim-Felder und Daten-Auslesen hab ich so mein Problem, weil ich wahrscheinlich einfach die Logik dahinter nicht verstehe. René Meyer erklärt das alles an folgendem Beispiel: Code: [AUSKLAPPEN] Dim Name$(6,2) For I=1 To 6 For J= 1 To 2 Read Name$(I, J) Next Print Name$(I,2)+" "+ Name$(I, 1) Next WaitKey Data "may", "karl", "Verne", "Jules", "Fallada", "Hans", "Christie", "Aghata", "Meyer", "Rene", "Dominik", "Hans" also ausgabe sehe ich dann: Karl May Jules Verne Hans Fallanda Aghata Chrisite Rene Meyer Hans Dominik Kann mir mal einer(ganz langsam^^) erklären, in welcher Reihenfolge das Programm da vorgeht? Vor allem wie das dann mit der 2. Dimension aussieht? Es wäre wirklich sehr nett, wenn sich jemand etwas Zeit nehmen würde um das mal kurz zu erklären, weil ich steh da grad echt aufm Schlauch^^ |
||
0penguin0 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wenn du ein feld
Code: [AUSKLAPPEN] Dim Feld(3) hast, dann ist das erste element nit Feld(1) sonder Feld(0) und das letzte nicht Feld(3) sonder Feld(2). |
||
i never finish anyth |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, Dein Dim hat 7 Zeilen (0-6) und 3 Spalten (0-2). Davon werden im Beispiel allerdings nur 5 Zeilen und 2 Spalten genutzt.
Nun folgt eine verschachtelte Schleife Die die Werte aus den Datas (eins nach dem anderen) einliest und in dem Array abspeichert. Ich mach grade mal die ersten Durchläufe: I=1,J=1 : May (Read name (1,1)) I=1,J=2 : Karl (Read name (1,2)) Innere Schleife fertig, Name(1,2) und Name(1,1) werden geprintet (also: "Karl May"), äussere erhöht sich, Warte auf Tastendruck, innere beginnt von vorn: I=2,J=1 : Verne (Read name (2,1)) I=2,J=2 : Jules (Read name (2,2)) Innere Schleife fertig, Name(2,2) und Name(2,1) werden geprintet (also: "Jules Verne"), äussere erhöht sich, Warte auf Tastendruck, innere beginnt von vorn ... etc. etc. Ich hoffe das hilft ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab mal jeman anderem das mit den 2D Arrays "aufgezeichnet".
Link: https://www.blitzforum.de/foru...955#287955 MfG und viel Spass. ![]() |
||
robot91 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also erst mal danke für eure Hilfe!
Nachdem ichs mir gestern nochmal (ewig lang) angeschaut habe, denke ich dass ich es jetzt verstanden habe. Eure Beispiele habens mir nochmal sehr gut verdeutlicht! |
||
Tritium |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
0penguin0 hat Folgendes geschrieben: wenn du ein feld
Code: [AUSKLAPPEN] Dim Feld(3) hast, dann ist das erste element nit Feld(1) sonder Feld(0) und das letzte nicht Feld(3) sonder Feld(2). Das stimmt aber nicht ganz: Wenn Du obiges Feld erzeugst, hast Du 4 Elemente! Beispiel: Code: [AUSKLAPPEN] Dim feld(3)
For i=0 To 3 feld(i) = i Next For i=0 To 3 Print feld(i) Next WaitKey End |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es mag sein dass Penguin das mit BMAX-Arrays verwechselt hat, denn dort ist es in der Tat so wie er es beschrieben hat. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
0penguin0 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm... hab gar nicht gewusst, dass das so ist...
also kann ich auch sowas schreiben? Code: [AUSKLAPPEN] Dim feld(0) feld(0) = 100 print feld(0) edit: aha, das geht... |
||
i never finish anyth |
Gast |
![]() Antworten mit Zitat |
|
---|---|---|
Aber nicht angewöhnen, mit 0 zu Dimensionieren. Das schluck zuviel Zeit.
Merke in der geschwindigkeit: Type's ---> sehr langsam Dim's ---> mittel Variablen ---> schnell Dazu must du noch die verschiedenen Typen Interger, Float, und String beachten. Strngs($) ---> sehr langsam Floats(#) ---> mittel Integer(%) ---> schnell |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
In der Zeit mathematischer Coprozessoren sind floats nicht wirklich langsamer.
Und bei wenigen 100 Eintragen / Prüffällen ist der Unterschied zwischen Type und Dim zu vernachlässigen. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
0penguin0 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
kann man doppelt verkettete listen und felder wirklich einfach so vergleichen? (types sind doch sowas wie doppeltverkettete listen, oder?)
aber warum sollten dims "schneller" sein als types? musst du mir mal erklären... |
||
i never finish anyth |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei Arrays ist doch schon von Anfang an der Speicherplatz reserviert ![]() Bei Types ist das nicht so, da man ja immer neue Erstellen kann. |
||
Twitter
Download Jewel Snake! Windows|Android |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group