7.12    bc – der Rechner für die Konsole

Bei bc handelt es sich um ein Rechenprogramm. Es kann Ihnen zwar nicht wie die meisten Grafiktaschenrechner eine grafische Funktionsausgabe bieten, in Verbindung mit dem Tool gnuplot ist aber auch dies kein Problem. bc verfügt dafür aber im Gegensatz zu den Produkten von Casio und Co. über eine hübsche Syntax für die Programmierung.

Doch wollen wir uns hier nicht zu sehr auf die Programmierung des bc stürzen, sondern primär zeigen, wie man bc überhaupt verwendet. Denn programmieren können Sie ja schließlich bereits mit awk und bald auch mit Shellskripten.

Gestartet wird der Rechner über seinen Namen, beendet wird er mit der Tastenkombination (Strg) + (D) oder dem Befehl quit. Sie füttern ihn einfach mit einer Rechenaufgabe, worauf er meistens das gewünschte Ergebnis ausgibt.

$ bc
4+4
8
1049*(5-4)-1
1048
^D

Listing 7.17     Beispielrechnungen mit dem Rechner bc

Die Betonung liegt nun allerdings auf dem Wort meistens. Dazu sei gesagt, dass der bc Ergebnisse von Divisionen, wenn man es ihm nicht explizit anders befiehlt, nur als Ganzzahlen ausgibt. Um dies zu ändern, muss die Anzahl der Nachkommastellen mit dem Befehl scale angegeben werden.

$ bc
7/2
3
scale=1
7/2
3.5
scale=10
1904849/103941494
.0183261652
quit

Listing 7.18     bc mit scale

Übergibt man dem bc beim Start den Parameter -l, lädt er die mathematische Bibliothek, wodurch Funktionen wie s() (Sinus), c() (Kosinus), e() (Exponentialfunktion) und l(x) (Logarithmus) zur Verfügung stehen. Diese Funktionen verwenden Sie, indem Sie sie – ähnlich wie in awk oder C – in der Form Funktion(Wert) aufrufen.

$ bc -l
s(3.141592)
.00000065358979323841

Listing 7.19     bc -l: Sinus von einem Wert nahe Pi berechnen

Das Ergebnis der letzten Rechnung wird in eine neue Berechnung durch einen Punkt (.) eingebunden. Möchten Sie beispielsweise den obigen Sinus-Wert zu der Zahl 1 addieren, so addieren Sie den Punkt und 1:

.+1
1.00000065358979323841
.+1
2.00000065358979323841
.+3
5.00000065358979323841
.*0
0.00000000000000000000

Listing 7.20     Das letzte Ergebnis erneut verwenden

Wie wir bereits erwähnt haben, werden wir an dieser Stelle nicht näher auf die Programmierung mit dem bc eingehen. Doch sei zumindest gesagt, dass Ihnen darin Schleifen und die Möglichkeit, eigene Funktionen zu implementieren, zur Verfügung stehen.

$ bc
for(x=0;x<6;++x){
   "Der Wert von x ist: "; x;
}
Der Wert von x ist: 0
Der Wert von x ist: 1
Der Wert von x ist: 2
Der Wert von x ist: 3
Der Wert von x ist: 4
Der Wert von x ist: 5

Listing 7.21     Ein einfaches Programmierbeispiel im bc

Zudem können Sie im bc sehr einfach Variablen verwenden:

a=3
b=100
a*b
300
x=(a*b)*394.13+4919489
x
5037728.00

Listing 7.22     Variablen im bc

Im bc können Sie auch mehrere Befehle aneinanderreihen, was eine übersichtliche Ergebnisdarstellung ermöglicht. Dazu trennen Sie in derselben Zeile einfach mehrere Anweisungen durch ein Semikolon, also etwa x=4;x+99;.+99.