Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Tutorial

FBMath

von RedakteurnemoredSeite 2 von 5

Zusätzlich bereitgestellte Funktionen

FBMath stellt einige zusätzliche mathematischen Funktionen zur Verfügung:

Werden für die Funktionen ungültige Werte verwendet, dann bricht die Programmausführung nicht ab, sondern FBMath setzt eine Fehlervariable namens MathErr. Folgende Fehlermeldungen sind möglich:

Fehlercode Wert Bedeutung
FOk 0 kein Fehler
FDomain -1 Das Argument befindet sich nicht im Definitionsbereich.
FSing -2 Es wurde ein Singularitätsfehler erzeugt (siehe unten)
FOverflow -3 Das Ergebnis ist betragsmäßig zu groß.
FUnderflow -4 Das Ergebnis ist betragsmäßig zu klein.

Ein 'Singularitätsfehler' entsteht, wenn die Funktion für das gewählte Argument nicht definiert ist, es aber möglich ist, einen Wert beliebig nahe am gewählten Argument einzusetzen. Beispielsweise ist der Logarithmus für negative Zahlen nicht definiert. Es würde der Fehler FDomain erzeugt werden. Auch der Wert 0 darf nicht eingesetzt werden, aber er befindet sich an der Grenze der einsetzbaren positiven Zahlen; daher wird hier der Fehler FSing erzeugt.

Beispiel

#INCLUDE "math.bi"

PRINT "Dieses Programm berechnet für eingegebene x die Werte von 10^x"
PRINT "sowie des Logarithmus von x zur Basis 10."
PRINT
PRINT "Um das Programm zu beenden, drücken Sie ENTER ohne Werteingabe."
DIM x AS DOUBLE, y AS DOUBLE, eingabe AS STRING

DO
  PRINT
  INPUT "Geben Sie x ein: x=", eingabe
  IF eingabe = "" THEN EXIT DO   ' Leereingabe -> Programmende
  x = val(eingabe)

  y = Exp10(x)
  SELECT CASE MathErr
    CASE FOk        : PRINT "10^"; x ;" = "; y
    CASE FOverflow  : PRINT "Das Ergebnis von 10^"; x ;" ist leider zu groß!"
    CASE FUnderflow : PRINT "Das Ergebnis von 10^"; x ;" ist leider zu nahe an 0!"
  END SELECT

  y = Log10(x)
  SELECT CASE MathErr
    CASE FOk        : PRINT "Log10(x) = "; y
    CASE FDomain    : PRINT x; " liegt außerhalb des Definitionsbereichs von Log10!"
    CASE FSing      : PRINT x; " liegt am Rand des Definitionsbereichs von Log10!"
    CASE FOverflow  : PRINT "Das Ergebnis von Log10("; x ;") ist leider zu groß!"
    CASE FUnderflow : PRINT "Das Ergebnis von Log10("; x ;") ist leider zu nahe an 0!"
  END SELECT
LOOP

 

Gehe zu Seite Gehe zu Seite  1  2  3  4  5  
Zusätzliche Informationen und Funktionen
  • Das Tutorial wurde am 06.11.2010 von Redakteurnemored angelegt.
  • Die aktuellste Version wurde am 12.11.2010 von Redakteurnemored gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen