Basic Calculator

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
In diesem Artikel oder Abschnitt fehlen folgende wichtige Informationen: Bei der IEEE Std 1003.1, 2004 Edition findet sich keinerlei Bezug zu dc(1), OpenBSD beschreibt bc(1) als "a preprocessor for dc(1)", GNU bc wiederum "contains several extensions beyond traditional bc implementations and the POSIX draft standard." --grixlkraxl (Diskussion) 16:41, 15. Apr. 2014 (CEST)

Du kannst Wikipedia helfen, indem du sie recherchierst und einfügst, aber kopiere bitte keine fremden Texte in diesen Artikel.

Der Basic Calculator (kurz bc) ist eine eigene Rechensprache, die an die Syntax von C angelehnt ist. Das herausstellende Merkmal von bc ist die Fähigkeit, mit Gleitkommazahlen fast beliebig großer Genauigkeit zu rechnen; die Grenze liegt je nach Version bei mindestens mehreren tausend Stellen, meist aber bei mehreren Millionen bis Milliarden. bc verwendet nicht den Coprozessor oder eine andere Hardware-Gleitkommaeinheit eines Rechners, sondern arbeitet intern nur mit Ganzzahlen; die Gleitkommafähigkeit wird rein per Software hergestellt. Nur so kann die Sprache eine höhere Genauigkeit erreichen als in der Gleitkomma-Hardware vorgesehen ist. Allerdings ist bc damit auch prinzipbedingt wesentlich langsamer als eine Sprache, die Gleitkommaberechnungen direkt in der Hardware durchführt.

POSIX bc[Bearbeiten]

Die von POSIX standardisierte bc-Sprache definiert u. a. Variablen, Arrays, einigen arithmetischen Funktionen (die einzige integrierte ist sqrt(), Quadratwurzel, die anderen werden über die Standard-Bibliothek aufgerufen) sowie Schleifen-Konstrukte (if(Bedingung)..., while(Bedingung)... und for(init;Bedingung;inc)), die oft an C angelehnt sind.

Funktionen werden mit define erstellt; mit return kann innerhalb dieser ein Rückgabewert definiert werden.

GNU bc[Bearbeiten]

GNU Basic Calculator
Entwickler GNU
Aktuelle Version 1.06
(16. November 2000)
Betriebssystem alle POSIX-kompatiblen
Kategorie Mathematik
Lizenz GPL
Deutschsprachig nein
gnu.org/software/bc/

GNU bc ist ein Fork von POSIX bc und beinhaltet viele Verbesserungen. Es baut nicht mehr auf dc auf, sondern ist stattdessen in C geschrieben. Dennoch ist es rückwärtskompatibel zu POSIX bc, d. h., alle POSIX bc-Programme laufen auf GNU bc, aber nicht unbedingt umgekehrt.

Unter anderem können die Namen von Variablen, Arrays und Funktionen nun länger sein als ein Zeichen und die if-Bedingung wurde in GNU bc um eine optionale else-Klausel ergänzt. Eine read()-Anweisung erlaubt zudem das Einlesen von Zahlen über die Standardeingabe, wodurch interaktive Benutzereingaben im Rahmen eines Programms möglich sind.

Neben der Standard-Ausgabemethode verfügt GNU bc über eine p-Funktion (print). Zusätzlich von den Standard-C-Kommentaren (/* */), die auch in POSIX bc möglich sind, gibt es in GNU noch #-Zeichen, um einzeilige Kommentare einzuleiten.

Standardmäßig erhält der Basic Calculator nur einige Grundfunktionen, wie z. B. die Exponentialfunktion, die trigonometrischen Funktionen und den natürlichen Logarithmus. Es können jedoch weitere Funktionen selbst definiert werden.

Beispiel[Bearbeiten]

Das folgende Beispiel definiert eine Prozedur, welche rekursiv die Fakultät x! der Zahl x berechnet.

define fact (x) {
       if(x < 1) return 1
       return (x*fact(x-1))
}

Durch Eingabe von

fact(10)

erhält man damit 10! = 3628800.

Weblinks[Bearbeiten]

  • bc: arbitrary-precision arithmetic language – Open Group Base Specification
  • bc(1): arbitrary-precision arithmetic language and calculator – OpenBSD General Commands Manual
  • GNU bc Beschreibung auf englisch
  • Free Software Directory, Übersicht der Free Software Foundation zu bc (englisch)
  • GNU bc online zum Ausprobieren