DIV

Aus C64-Wiki
Zur Navigation springenZur Suche springen
DIV
Syntax: a = DIV (<z>,<n>)
Parameter
z: Zähler (0..65535)
n: Nenner (0..65535)
Einordnung
Typ: numerische Funktion
Kontext: Zahlen
Aufgabe: ganzzahlige Division
Abkürzung: keine
Token: $64 $53 (100 83)
Verwandte Befehle
MOD - EXOR


Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort DIV.

Typ: numerische Funktion
Syntax: a = DIV(<z>,<n>)

Die Funktion DIV dividiert den Zähler <z> durch den Nenner <n> und liefert ein ganzzahliges Ergebnis, z.B. DIV(9,4) = 2. Simons' Basic bietet hier keinen zusätzlichen Operator an, sondern realisiert dies als numerische Funktion DIV. Sie entspricht dem Ausdruck INT(INT(<z>)/INT(<n>)).

Beachte:

  • Alle 16bittigen numerischen Simons'-Basic-Funktionen erzeugen unvorhersehbare Reaktionen, wenn sie zweiter Parameter eines POKE-Befehls sind. Ihre Werte müssen vor ihrer Verwendung bei POKE einer Variablen zugewiesen werden (in TSB behoben).
  • Die Argumente dürfen dabei als Ganzzahl aufgefasst (implizite Umwandlung mit der INT-Funktion) nur im Bereich von 0 bis 65535 liegen, andernfalls meldet der Interpreter die Fehlermeldung ?ILLEGAL QUANTITY ERROR.


Beispiele[Bearbeiten | Quelltext bearbeiten]

10 INPUT "POSITIVE ZAHL"; Z
20 A = DIV(Z,4): B = MOD(Z,4)
30 PRINT Z "DURCH 4 IST" A "MIT REST" B
Von einer Zahl wird berechnet, wie oft sie in einer anderen (hier: 4) enthalten ist und wie viel Rest bleibt.
10 Z=10: N=2.25
20 PRINT DIV(Z,N)
30 PRINT INT(INT(Z)/INT(N))
40 PRINT INT(Z/N)
liefert folgende Ausgabe:
  5
  5
  4
Zeile 30 ist die äquivalente BASIC-V2-Implementierung zu DIV() und die Variante in Zeile 40 zeigt, wie bei einer zu einfachen Nachbildung bei Argumenten, die durchaus Fließkommazahlen sein dürfen, ein falsches Ergebnis zu Stande kommt.