BC (beliebig genauer "Taschenrechner")

Bc ist einerseits eine Programmiersprache, die beliebig genaue Zahlen unterstützt, und andererseits ein Programm (Tool, Utility), das Skripte und Kommandos ausführen kann, die in dieser Sprache bc geschrieben sind, und interaktiv die Eingaben des Benutzers berechnet. Mit diesem Programm kann man einige zahlentheoretische Berechnungen mit höherer Geschwindigkeit und größerer Genauigkeit als innerhalb des Lernprogramms ausführen.

Das Tool bc, ein Taschenrechner mit erweiterter Genauigkeit, kann Zahlen darstellen mit mindestens 99 Stellen hinter dem Komma und wenigstens 4000 Stellen vor dem Komma.

Eine mathematische Standardbibliothek ist per Kommandozeilenoption verfügbar. Beim Start prozessiert bc den Code von allen Dateien auf der Kommandozeile in der angegebenen Reihenfolge. Nachdem alle diese Dateien prozessiert wurden, liest bc von Standard-Input. Jeder Code wird sofort nach dem Lesen ausgeführt (Enthält eine Datei ein Kommando, das den Prozessor anhält, wird bc nichts mehr von der Kommandozeile (Standard-Input) einlesen).

Aufruf-Syntax:
bc [ -hlwsqv ] [Lang-Optionen [ Dateien ]


BC und die Lernsoftware "Zahlentheorie" (verteilt mit CrypTool)

Zu der Distribution des Lernprogramms "Zahlentheorie" gehört der Kommandozeilen-Calculator bc (Version 1.06, veröffentlicht von der Free Software Foundation unter der GPL), ergänzt um einige Funktionen aus Dateien, die direkt beim Start von bc aus dem Lernprogramm heraus geladen werden.


Bc als Kommandozeilen-Taschenrechner

1) Bei ganzen Zahlen arbeitet bc mit mehreren Basen (Basis des Stellenwertsystems). Die Basis für den Input wird in der Umgebungsvariablen ibase gespeichert. Setzt man diese Basis, benutzt bc ibase für alle Eingabezahlen. Die Basis für den Output wird in der Variablen obase gespeichert.

Beispiel: Konvertieren der Zahl 4521 von der Basis 7 in die Basis 13:

obase = 13
ibase = 7
4521

oder beispielsweise: Umwandeln vom Zehnersystem ins Hexadezimal-System:

obase=16; ibase=10; 13
B

2) Bei Gleitkommazahlen wird die Genauigkeit mit der Umgebungsvariablen scale eingestellt. Diese Variable bestimmt die Genauigkeit der Anzahl der Stellen hinter dem Komma. Standardmäßig hat scale den Wert 0, so dass Eingaben als ganze Zahlen betrachtet werden. Da das Ergebnis einer Division normalerweise eine Gleitkommazahl ist, muss man die Variable scale setzen, um das richtige Ergebnis zu erhalten. In "5.00500" hat scale den Wert 5, in "5.005" den Wert 3. In manchen Implementierungen wird auch eine Stelle mehr ausgegeben (siehe unten).

Beispiele:

scale=6; 60/7.02
6.6476776

obase=10; ibase=10; scale=0; 7/3
2

obase=10; ibase=10; scale=3; 7/3
2.2523

3) Zur Durchführung von Berechnungen mit bc gibt es drei Möglichkeiten:

Im Eingabemodus von bc kann man die letzten Befehle mit den vertikalen Pfeiltasten wiederholen und dann editieren.

Abfrage des aktuellen Wert einer Umgebungsvariablen: Einfach Variablenname eingeben und Enter (Datenfreigabe-Taste).


Einige Beispiel-Berechnungen mit bc (Base Calculator)

Aufruf aus dem Lernprogramm "Zahlentheorie" per F3 (Menü Rechner \ BC-Rechner) oder von der Kommandozeile:

bc

Testberechnung: 686^79:

686^79
117382982726682578986166177099458354591354816385525364361499835772376409385660129455427115381646910282753710610818762831176373701406457183724515147357457376424117782495278817923488619922286175976292059037752989068589810057216
quit

Beschreibungen zu weiteren, aus dem Lernprogramm „Zahlentheorie“ heraus übergebenen Funktionen von bc, erhalten Sie innerhalb des Lernprogramms per F8 (Menü Verzeichnisse \ BC-Funktionen).

powermod(17,33,11)
7

euklid(847,22)
11


Bemerkung 1: BC als Programmiersprache

BC ist eine Programmiersprache, die das Rechnen mit einer definierten Genauigkeit unterstützt. Ihre Beschreibung ist im POSIX P1003.2/D11 Draft-Standard enthalten.

Die Syntax ist ähnlich zur Sprache "C" – mit den folgenden (und weiteren) Ausnahmen:

  1. Am Ende einer Zeile braucht man kein Semikolon.
  2. Mit dem define-Statement werden Funktionen definiert.

Weitere Besonderheiten:


Bemerkung 2: Links

http://directory.fsf.org/gnu/bc.html - Webseite zum GNU-Paket

http://www.gnu.org/software/bc/bc.html - Webseite zu BC

http://ftp.gnu.org/pub/gnu/bc/bc-1.06.tar.gz - Quellcode, veröffentlicht 2001

http://en.wikipedia.org/wiki/Bc_(Unix) - Wikipedia zu bc

http://de.wikipedia.org/wiki/Basic_Calculator - Wikipedia zu bc