Deutsch
Forum

Seltsames Verhalten, Abstürze...

Mein Interpreter stürzt mir dauernd ab / warum nur ??

 
- Seite 1 -



RudiB.
Hallo,

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

1 kB
Hochgeladen:28.12.2015
Ladeanzahl149
Herunterladen
 
XProfan 9
WinXP, SP2, AMD Phenom(tm) II X4 840 Processor

Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
28.12.2015  
 



 
- Seite 2 -


« Dieser Beitrag wurde als Lösung gekennzeichnet. »

- Seite 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 Größe an einigen Stellen der Hilfe ist hier tatsächlich irreführend.

Hintergrund der Geschichte: Seinerzeit (vor etwa 18 Jahren mit Profan² 6) wurde Profan² noch gerne genutzt, um BASIC-Programme nach Windows zu portieren. In den verschiedenen BASIC-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 BASIC 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 Größe angibt, meine damalige entscheidung beeinflusst haben.

Richtig ist, dass die Hilfe manchmal etwas irreführend ist, wenn ich von Größe schreibe, denn die eigentliche Größe ist durch das 0-Element ja in jeder Dimension eins mehr.

Ändern kann ich daran nach 18 Jahren wohl nichts mehr (außer am Hilfe-Text natürlich) 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 Größe 64 beginnend bei Feld%[1,1] erzeugt wird.)

Gruß
Roland

PS: Ende dieses Jahres entwickle ich schon 25 Jahre an Profan. Ich werde alt! ;)
 
XProfan X3
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
01.02.2016  
 




RudiB.
Bitte lass mich nicht an meinem Verstand zweifeln...
und probier mal dieses Listing aus....Bitte.
Herunterladen
Und dann sag mir das dieses Array nur 4 Felder hat....

1 kB
Hochgeladen:28.12.2015
Ladeanzahl143
Herunterladen
 
XProfan 9
WinXP, SP2, AMD Phenom(tm) II X4 840 Processor

Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
28.12.2015  
 



Es hat nur 4 Felder.

Windows und XProfan sind recht gnädig bei "falschen" Speicherzugriffen.

Richtig sind sie dennoch nicht und Abstürze dann Zufall.

Wenn Du also nicht möchtest, dass Dein Programm nur zufällig funktioniert, dann besser richtig dimensionieren.

Bedenke auch, dass Du diese Adressen nun durch Dein stetiges Testen "trainiert" hast und auf anderen Umgebungen sofort ein Absturz folgen könnte und/ oder das Programm nicht fehlerfrei durchlaufen könnte.

Schau mal den Thementitel:


Mein Interpreter stürzt mir dauernd ab / warum nur ??
 
28.12.2015  
 




RudiB.


Dies zur XProfan-Hilfe, sagt hier aber was anderes........
Ich glaube fast Du möchtest mich dieses Jahr noch auf den Arm nehmen, oder ??

58 kB
Hochgeladen:28.12.2015
Ladeanzahl135
Herunterladen
 
XProfan 9
WinXP, SP2, AMD Phenom(tm) II X4 840 Processor

Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
28.12.2015  
 



Ich meine das völlig ernst.



Da steht "Angabe der Größe".

Woanders in der Hilfe widerspricht sich Roland:

Hilfe
Declare Integer Spielfeld[7,7]
Hier wird ein zweidimensionales Integer-Array aus 8 * 8 Elementen - etwa für ein Schachspiel - erzeugt.


Egal ob die Hilfe dazu also Murx ist oder die Funktion sizeof...
so ist es richtig:

declare a$[3,3] ist ein 2D-Array mit 3 Zeilen pro Dimension = 9 Einträge.

Wenn Du Dich daran hältst und Dein Programm abstürzt, dann funktioniert XProfan nicht richtig. Ich glaube aber, dass Dein Programm danach nicht abstürzten wird. Die Hilfe und SizeOf sind nicht richtig.

Es kann sein, dass (der momentan nicht abkömmliche [weil abgängig]) Roland pauschal eine Zeile mehr ans Array anfügt aber darauf würde ich nicht setzen.

[OFFTOPIC]ich konnt nicht widerstehen - sorry (Jörg)[/OFFTOPIC]

7 kB
Hochgeladen:28.12.2015
Ladeanzahl68
Herunterladen
 
28.12.2015  
 




Jörg
Sellmeyer
Und David hat Recht! Es ist ein Fehler, der allerdings sogar in der aktuellen Version noch vorhanden ist.
Auch wenn es funktioniert, sollte man solche Fehler nicht "benutzen", nachdem sie erkannt wurden.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
28.12.2015  
 



[OFFTOPIC]
@Jörg:Abkömmlich: Danke! Das Wort hätte ich wohl ewig sinnverkehrt verwendet - habs jetzt begriffen!
[/OFFTOPIC]
 
28.12.2015  
 




RudiB.
ich fasse es ja nicht........lag ich denn all die Jahre so daneben??
 
XProfan 9
WinXP, SP2, AMD Phenom(tm) II X4 840 Processor

Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
28.12.2015  
 



Diese Frage wird abschließend vielleicht nur durch Dich beantwortet werden können.
 
28.12.2015  
 




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!

Gruß
Roland

(z.Zt. in Boston, USA)
 
XProfan X3
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
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 für 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.
 
30.12.2015  
 




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.
 
XProfan X3
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
30.12.2015  
 




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 X3
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
31.12.2015  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

34.394 Betrachtungen

Unbenanntvor 0 min.
Member 361000528.09.2022
H.Brill27.09.2022
p.specht08.06.2021
Jörg Sellmeyer14.05.2018
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie