Seite 1 von 1

Wohldefiniertheit

Verfasst: 13. Jul 2016 14:35
von alzeha
Hallo,

ich habe eine Frage zur Wohldefiniertheit. Wenn ich eine Implementierung auf die drei in der Vorlesung benannten Exceptions überprüfe, ist das dann in jedem Fall ausreichend für volle Punktzahl?

Vielleicht als Erläuterung, wie ich auf diese Frage komme:
In der Vorlesung wurde der Korrektheitsbeweis geführt und hierbei sprachen wir über Wohldefiniertheit. Hierbei fiel mir auf, dass a.length eine Integer ist, welche ebenfalls überlaufen kann, was dann eine "NegativeArraySizeException" (oder so ähnlich :lol: ) ergäbe. Dies würde passieren, wenn das Array mehr Einträge als Integer.MAX_VALUE hat. Daraufhin dachte ich, dass man ja quasi in jedem Methodenaufruf diese "Nadel im Heuhaufen" suchen könnte und kam zu der Frage, ob das dann in der Klausur auch so gefordert ist, oder ob die Überprüfung dieser drei Exceptions ausreichend ist.

Vielen Dank bereits im Voraus!

Re: Wohldefiniertheit

Verfasst: 13. Jul 2016 15:32
von Prof. Karsten Weihe
alzeha hat geschrieben: ich habe eine Frage zur Wohldefiniertheit. Wenn ich eine Implementierung auf die drei in der Vorlesung benannten Exceptions überprüfe, ist das dann in jedem Fall ausreichend für volle Punktzahl?
Falls nach Wohldefiniertheit gefragt wird, bekommen Sie - wie bei jeder anderen Teilfrage in Aufgabe 7 - Instruktionen, worauf Sie konkret einzugehen haben.

alzeha hat geschrieben: Vielleicht als Erläuterung, wie ich auf diese Frage komme:
Hierbei fiel mir auf, dass a.length eine Integer ist, welche ebenfalls überlaufen kann, was dann eine "NegativeArraySizeException" (oder so ähnlich :lol: ) ergäbe. Dies würde passieren, wenn das Array mehr Einträge als Integer.MAX_VALUE hat.
Zwei Antworten:

1. Das von Ihnen beschriebene Problem kann nicht in der von mir analysierten Methode auftreten, sondern müsste schon viel früher bei Einrichtung des Arrays passiert sein. Ein solcher Fall, bei dem das Programm gar nicht erst zur analysierten Methode kommt, muss natürlich im Korrektheitsbeweis für diese Methode nicht berücksichtigt werden.

2. Auch sonst fällt mir spontan kein Szenario ein, wie man überhaupt versuchen könnte, ein Array mit einem Wert > Integer.MAX_VALUE einzurichten. Sie könnten natürlich ein long dafür nehmen, aber das müssten Sie zuerst nach int konvertieren, bevor es für die Angabe der Arraylänge in der Konstruktion des Arrays mit new akzeptiert wird.

KW

Re: Wohldefiniertheit

Verfasst: 16. Jul 2016 20:21
von alzeha
Vielen Dank für die schnelle Antwort.

Mit freundlichen Grüßen