Programmieren unter erschwerten Bedingungen

Manchmal machen gerade erschwerte Bedingungen eine Aufgabenstellung spannend und interessant. Beispielsweise dann wenn einem nicht der gesamte Funktionsumfang einer Programmiersprache zur Verf├╝gung steht und das dann auch noch in einer altbackenen Programmiersprache wie PASCAL ­čśÇ

So brauchte ich f├╝r die Verarbeitung in einer weiteren Funktion die Info dar├╝ber, ob eine Zahl Dezimalstellen hat oder nicht. Leider stand in der Programmumgebung nur die Funktion „Format“ zur Verf├╝gung und diese auch noch nur eingeschr├Ąnkt. Warum das so ist wei├č ich nicht, ist auch ein bisschen schwer zu erkl├Ąren was das f├╝r ein Gewurschtel ist ­čśÇ

Letzt endlich habe ich es mit folgendem „Trick“ geschafft doch ans Ziel zu gelangen. Den folgenden Code habe ich versucht in „richtigem“ Pascal nachzubauen, da es sich bei dem Code des Programms, dass ich modifiziert habe, auch nur um eine an PASCAL-angelehnte Sprache/Syntax handelt:

Was habe ich hier gemacht? Ich habe mir die Zahl, die irgendwo herkommt, in zwei Variablen geschrieben und dabei „umformatiert“. Einmal als normale Dezimalzahl mit 2 Nachkommastellen ( %.2f ), was vermutlich nicht unbedingt n├Âtig ist, da die Zahl so schon vorlag, und ein weiteres Mal als auf- bzw. abgerundete Zahl ohne Dezimalstellen ( %.0f ).

In dem Beispiel w├╝rden sich folgende Werte ergeben:
zahl2 = 5.2
zahl3 = 5

Wenn man nun zahl3 von zahl2 abzieht erh├Ąlt man nur noch den Wert hinter dem Komma, in diesem Beispiel 0,2. Der Wert kann auch ins Negative rutschen, beispielsweise so:

zahl2 = 5.8
zahl3 = 6

Das Ergebnis der Berechnung w├Ąre in diesem Fall -0,2. Das macht allerdings f├╝r die Aufgabenstellung nichts.
Da es in der Umgebung, in der ich mich befand, die M├Âglichkeit gibt ein „iif“ zu verwenden, sah es zum Schluss so aus:

Durch eine Pr├╝fung ob das Ergebnis der durchgef├╝hrten Berechnung von 0 abweicht konnte man nun herausfinden, ob es sich bei der urspr├╝nglichen Zahl um eine Dezimalzahl handelt. Wenn dies nicht der Fall ist, geht die Rechnung logischerweise immer mit einer 0 auf.

Done ­čśÇ

 

Schreibe einen Kommentar