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.