| |
|
|
- Page 1 - |
|
RudiB. | Ciao,
habe ein kleines Problem das ich nicht lösen kann, oder nicht verstehe. Mein Interpreter stürzt mir bei folgendem Quellcode ab / hängt sich auf.....aber warum denn nur. Was mache ich da falsch ?? Hat jemand eine Idee und kann mir helfen ?
Herunterladen |
|
|
| |
|
|
|
« Dieser Beitrag wurde als Lösung gekennzeichnet. » |
|
- Page 3 - |
|
RGH | Ja, und es wurde von mir tatsächlich seinerzeit so eigebaut:
Die Arrays sind null-basierend und die Angabe beim Dimensionieren gibt das jeweils letzte Element an. Der Begriff Dimensione an einigen Stellen der Aiuto ist hier tatsächlich irreführend.
Hintergrund der Geschichte: Seinerzeit (vor etwa 18 Jahren mit Profan² 6) wurde Profan² noch gerne genutzt, um Di base-Programme nach Windows zu portieren. In den verschiedenen Di base-Dialekten gab es die Arrays mal Null-basierend und mal mit 1 beginnend. Mit meiner Lösung konnten beide Varianten einfach übernommen werden. Wer einen nicht null-basierenden Quellcode nutzte, um etwa ein Schachbrett zu programmieren kam mit Declare Feld%[8,8] aus, auch wenn da die Felder mit 0 als Index unbenutzt blieben. Wer von einem null-basierendem Di base kam, hatte auch mit Declare Feld%[7,7] keine Probleme.
Außerdem mag auch die Pascal-Schreibweise, die bei Arrayas immer das (erste und) letzte Element und nicht die Dimensione angibt, meine damalige entscheidung beeinflusst haben.
Richtig ist, dass die Aiuto manchmal etwas irreführend ist, wenn ich von Dimensione schreibe, denn die eigentliche Dimensione ist durch das 0-Element ja in jeder Dimension eins mehr.
Ändern kann ich daran nach 18 Jahren wohl nichts mehr (außer am Aiuto-Text naturalmente) ohne zu Kompatibilitätsproblemen mit bestehenden Quellcodes zu kommen. (Denkbar wäre höchstens ein Schalter, um die Arrays aus Programmierersicht 1-basierend zu machen, damit bei Feld%[8,8] dann tatsächlich ein Array der Dimensione 64 beginnend bei Feld%[1,1] erzeugt wird.)
Saluto Roland
PS: Ende dieses Jahres entwickle ich schon 25 Jahre an Profan. Ich werde alt! ;) |
|
|
| XProfan X3Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 01.02.2016 ▲ |
|
|
|
|
|
| |
|
- Page 2 - |
|
RudiB. | ich fasse es ja nicht........lag ich denn all die Jahre so daneben?? |
|
|
| |
|
|
|
| Diese Frage wird abschließend vielleicht nur durch Dich beantwortet werden können. |
|
|
| |
|
|
|
RGH | Also: Declare Irgendwas$[2,2] erzeugt ein zweidimenionales Array mit 9 Elementen, da die Zählung mit 0 anfängt! Also von 0,0 bis 2,2!
Saluto Roland
(z.Zt. in Boston, USA) |
|
|
| XProfan X3Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 30.12.2015 ▲ |
|
|
|
|
| Hast Du es so eingebaut,
dass man in XProfan ein 4x4 Array per Declare a&[3,3] deklariert?
Das macht so weit ich weiß keine Programmiersprache so, wenn der Index mit 0 beginnt! Eher ist es üblich, die Größen anzugeben bei der Arraydeklaration - nicht den letzten Index-Wert.
Dim 4 deklariert auch nicht 5 Byte - wie auch immer, wenn Du es per XProfan abweichend gelöst hast dann stimmt die Hilfedatei dazu nicht und im Vergleich zu anderen Deklarationen (Strukturen, Dim) ist diese Anwendung nicht konsistent.
@Rudi: Danach hat Roland es scheinbar doch so eingebaut wie Du es verstanden hast. Oder er ist jetzt selbst durcheinander gekommen beim Mitlesen aus Boston. Das weiß ich nicht.
Getestet FreeProfan und XProfan 11:
geben beide 1 aus. |
|
|
| |
|
|
|
Jörg Sellmeyer | Ich kann mich dumpf entsinnen, dass das schonmal Thema war und es mich auch sehr irritiert hat. In meinen Augen ist es ein klarer Fehler. Größenangaben und nullbasierende Zählung sollten nicht vermischt werden. |
|
|
| |
|
|
| |
|
- Page 3 - |
|
|
Michael W. | Hier hat Roland einfach Basic und die anderen in einen Topf geworfen.
Ja es gibt Sprachen, die bei der Zählung bei Null beginnen und damit sich da keiner vertut hat Roland das nullte Element mit ins Boot geholt.
Und ja, es war schon häufiger Gegenstand der Diskussion.
Und auch WhileLoop kann einen hier schon mal foppen, denn:
WhileLoop SizeOf(arr) --- durchläuft alles vom Index 1 beginnend und fällt dann beim letzten Element auf die Nase.
Richtig ist hier nämlich WhileLoop 0, SizeOf(arr) - 1 |
|
|
| XProfan X3System: Windows 8/10, XProfan X4 Programmieren, das spannendste Detektivspiel der Welt. | 31.12.2015 ▲ |
|
|
|
|
RGH | Jetzt bin ich selbst etwas irritiert. Da ich hier aber den Quellcode von XProfan nicht dabei habe, sehe ich mir die Sache nach meinem Urlaub noch mal in Ruhe an.
Saluto Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 31.12.2015 ▲ |
|
|
|
|
| hat das Thema wieder auf unerledigt gesetzt. |
|
|
| |
|
|
|
| |
|
| |
|
|
|
RGH | Ja, und es wurde von mir tatsächlich seinerzeit so eigebaut:
Die Arrays sind null-basierend und die Angabe beim Dimensionieren gibt das jeweils letzte Element an. Der Begriff Dimensione an einigen Stellen der Aiuto ist hier tatsächlich irreführend.
Hintergrund der Geschichte: Seinerzeit (vor etwa 18 Jahren mit Profan² 6) wurde Profan² noch gerne genutzt, um Di base-Programme nach Windows zu portieren. In den verschiedenen Di base-Dialekten gab es die Arrays mal Null-basierend und mal mit 1 beginnend. Mit meiner Lösung konnten beide Varianten einfach übernommen werden. Wer einen nicht null-basierenden Quellcode nutzte, um etwa ein Schachbrett zu programmieren kam mit Declare Feld%[8,8] aus, auch wenn da die Felder mit 0 als Index unbenutzt blieben. Wer von einem null-basierendem Di base kam, hatte auch mit Declare Feld%[7,7] keine Probleme.
Außerdem mag auch die Pascal-Schreibweise, die bei Arrayas immer das (erste und) letzte Element und nicht die Dimensione angibt, meine damalige entscheidung beeinflusst haben.
Richtig ist, dass die Aiuto manchmal etwas irreführend ist, wenn ich von Dimensione schreibe, denn die eigentliche Dimensione ist durch das 0-Element ja in jeder Dimension eins mehr.
Ändern kann ich daran nach 18 Jahren wohl nichts mehr (außer am Aiuto-Text naturalmente) ohne zu Kompatibilitätsproblemen mit bestehenden Quellcodes zu kommen. (Denkbar wäre höchstens ein Schalter, um die Arrays aus Programmierersicht 1-basierend zu machen, damit bei Feld%[8,8] dann tatsächlich ein Array der Dimensione 64 beginnend bei Feld%[1,1] erzeugt wird.)
Saluto Roland
PS: Ende dieses Jahres entwickle ich schon 25 Jahre an Profan. Ich werde alt! ;) |
|
|
| XProfan X3Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 01.02.2016 ▲ |
|
|
|
|
| RGH (01.02.2016)
Ende dieses Jahres entwickle ich schon 25 Jahre an Profan.
Das klingt ja nach Platz per eine Party.
RGH (01.02.2016)
Ich werde alt! ;)
XProfan ist gesund und Du sitzt nunmal an der Quelle! |
|
|
| |
|
|
|
ByteAttack | [QUOTE_=RGH (01.02.2016) PS: Ende dieses Jahres entwickle ich schon 25 Jahre an Profan. Ich werde alt! ;)
Vielleicht körperlich - Geistig bist Du fit *schleim* |
|
|
| |
|
|