Herunterladen Inhalt Inhalt Diese Seite drucken

Hinweise Zur Anwendung Von Vergleichsoperatoren - Keysight 3458A Benutzerhandbuch

Inhaltsverzeichnis
Fehlerbeschreibung
BCD-Exponent zu groß
Unzulässiges HEX-, Oktal oder Dezimal-Argument

Hinweise zur Anwendung von Vergleichsoperatoren

Beim Vergleichen von Integer-Werten sind keine besondern Vorsichtsmaßnahmen
erforderlich. Beim Vergleichen von REAL-Werten (insbesondere Ergebnissen von
Berechnungen) können jedoch Probleme auftreten, beispielsweise durch
Rundungsfehler oder sonstige systeminhärente Beschränkungen. Hierzu ein
Beispiel. In dem folgenden Programm ist das Ziel einer bedingten Verzweigung
(IF...THEN) vom Ergebnis einer Vergleichsoperation abhängig.
10 OUTPUT 722; "SUB TESTER"
20 OUTPUT 722; "LET A=25.3765477"
30 OUTPUT 722; "IF SIN(A)^2 + COS(A)^2 = 1 THEN"
40 OUTPUT 722; " DISP 'EQUAL'"
50 OUTPUT 722; "ELSE"
60 OUTPUT 722; " DISP'NOT EQUAL'"
70 OUTPUT 722; " ENDIF"
80 OUTPUT 722; "SUBEND"
90 !
100 OUTPUT 722; "CALL TESTER"
110 END
Obwohl die Summe aus Sinus- und Cosinus-Quadrat eines beliebigen Wertes
stets exakt 1 ist, kann der Vergleich in Zeile 30 infolge von Rundungsfehlern oder
sonstigen inhärenten Beschränkungen finiter Zustandsmaschinen das Ergebnis
"ungleich" liefern. Unendlich periodische Dezimalzahlen oder irrationale Zahlen
lassen sich in einer finiten Zustandsmaschine, wie sie im 3458A verwendet wird,
prinzipiell nicht exakt darstellen.
Gute Beispiele für derartige Fehler erlebt man immer wieder beim Multiplizieren
oder Dividieren von Zahlen: Die Anzahl der Dezimalstellen des Produkts zweier
nicht ganzzahliger Werte ist fast immer größer als die Summe der Anzahlen der
Dezimalstellen der beiden Operanden.
Keysight 3458A Benutzerhandbuch
BASIC-Programmiersprache für das 3458A
7
445
Inhaltsverzeichnis
loading

Inhaltsverzeichnis