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