Integer und single precision in Turbo BASIC?


Integer und single precision in Turbo BASIC?

von Sleepy » Mo 17. Mär 2014, 22:28
Noch eine verständnis-Frage...


Das Turbo-BASIC-Handbuch unterscheidet auf Seite 25 bei numerischen Variablen zwischen "einfacher Genauigkeit" und "Integer":

Turbo-BASIC unterscheidet bei numerischen Variablen zwischen Integer und "single precision" (einfache Genauigkeit).
Numerische Variablen einfacher Genauigkeit sind alle denkbaren Namen, die mit einem Buchstaben beginnen und nicht mit einem Dollarzeichen "$" abgeschlossen werden. Numerische Werte können einer einzelnen Variable zugewiesen werden. eine Variable muss nicht extra dimensioniert werden; es reicht ihr einfach einen Wert zuzuweisen.

monate=12
VARIABLE_2=11

Numerische Variablen vom Typ Integer können nur in Turbo-BASIC XL 1.5 verwendet werden. Hierzu fügst du das Prozentzeichen "%" vor den Variablennamen:

A=1.5734
PRINT %A


Erst mal funktioniert das letztere Beispiel nicht; das vorangestellte Prozentzeichen ist lt. Happy-Computer nur bei den Ziffern 0..3 zulässig. Diese werden auch nicht als Integer-Variable behandelt, sondern als Konstante um Speicherplatz zu sparen.

Was hat es mit den numerischen bzw. Integer-Variablen unter TB auf sich? Ich vermute mal daß es sich um eine Ente handelt; für mich sieht es so auß als wenn es nur "normale" numerischen Variablen und die besagten 4 Konstanen %0..%3 gibt.

Sleepy

Re: Integer und single precision in Turbo BASIC?

von Jac » Di 18. Mär 2014, 00:34
Das mit dem % kenne ich außer bei den 4 Konstanten nur bei %GET und %PUT. Im Speicher werden A=1 und B=1.1 gleich abgelegt, nämlich als Float. Und bei der Geschwindigkeit konnte ich auch keinen Unterschied feststellen. Kann mir vorstellen, dass das mal geplant war aber dann nicht kam. Andere BASIC Varianten haben das mit dem % für Integers genau so.

Re: Integer und single precision in Turbo BASIC?

von Sleepy » Di 18. Mär 2014, 09:12
Danke, so (dass es in TB nur einen Variablentyp gibt) habe ich mir das auch gedacht; ich wollte mir vorsichtshalber eine zweite Meinung einholen. :-)

Etwas was auf zwei verschieden "genaue" Variablentypen (also integer und real) hindeutet habe ich in der originalen TB-Anleitung aus dem Happy-Computer-Sonderheft auch nicht gefunden. Evt. hat der Autor des ursprünglichen TB-Handbuches etwas falsch hineininterpretiert oder von einem anderen BASIC-Dialekt übernommen.

Sleepy

Integer und single precision in Turbo BASIC?

von Erhard » Do 3. Apr 2014, 16:06
Hi,

vielleicht erkennt TB automatisch, ob einer Variablen ein Integer (2 Byte Speicherbedarf) oder eine Fließkommazahl (6 Byte Speicherbedarf) zugewiesen wurde?

Viele Grüße

Erhard

Re: Integer und single precision in Turbo BASIC?

von Jac » Do 3. Apr 2014, 21:23
Hi,

Alle Variablen und Konstanten werden immer im 6-byte Format gespeichert und verarbeitet, wie bei Atari BASIC. Dafür hat Turbo BASIC einen eigenen Math Pack für diese Fließkommazahlen der viel viel schneller als der Standard Math Pack ist. Vermutlich mit ein Grund, weshalb die Unterscheidung (falls sie mal geplant war) Integer/Float nicht drin ist.

Integer und single precision in Turbo BASIC?

von Erhard » Fr 4. Apr 2014, 07:46
Hi,

Jac hat geschrieben:weshalb die Unterscheidung (falls sie mal geplant war) Integer/Float nicht drin ist


ok, also alles in FP außer %0, %1 usw.

Jac hat geschrieben:viel schneller als der Standard Math Pack ist.


Es gab ja auch mal ein FastMathPack für den Atari. Das ist auch sehr viel schneller. Es hat nur leider mindestens einen Bug.

Viele Grüße

Erhard