IT-Academy Logo
Sign Up Login Help
Home - Betriebssysteme - Linux - Anwendungssoftware - BC - Der Kommandozeilenrechner



BC - Der Kommandozeilenrechner

Manchmal ist es recht praktisch und angenehm, mal schnelle eine simple Rechenoperation durchzuführen, ohne einen Taschenrechner holen zu müssen oder umständlich irgendein Programm öffnen zu müssen. Dafür gibts bc...


Autor: Franz Schaefer (mond)
Datum: 06-12-2003, 13:17:08
Referenzen: man bc
Schwierigkeit: Anfänger
Ansichten: 13775x
Rating: 8 (1x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Übersicht

vor kurzem haben wir octave kennengelernt. praktisch fuer numerische
berechnungen. fuer kleinere rechnungen ist aber der kommandozeilen rechner
"bc" praktischer. "bc" ist ein standard unix tool und die GNU version
davon ist noch dazu auch programmierbar, rechnet in beliebiger genauigkeit
und hat auch ein paar trigonometrische funktionen eingebaut:

echo 5*7^3+1|bc

rechnet ohne dass man erst lange ein programm starten muss oder nach dem
taschenrechner am schreibtisch suchen muss.

per default rechnet bc ohne komastellen. man kann ihm aber mit

scale=200

sagen mit welcher genauigkeit er rechnen soll (hier auf 200
nachkommastellen)

z.b.:

echo scale=200\;1234567/789|bc

man kann bc natuerlich auch interaktiv verwenden.

bc

mit

quit kommt man wieder raus.

ruft man bc mit der option -l auf so stehen auch einige matehmatische
funktionen zur verfuegung:

s(x)... sinus
c(x)... cosinus
a(x)... arcustangens
l(x)... natuerlicher logarithmus
e(x)... e^x
j(n,x) .. bessel funktion nter ordnung.

z.b:

echo "scale=1000; 4*a(1)" | bc -l

gibt pi auf 1000 stellen aus.

echo "scale=1000;e(1)" |bc -l

gibt e auf 1000 stellen aus.

und fuer die dene das noch zu wenig ist hat bc auch eine einfache
programmiersprache eingebaut:

define fact (n) {
auto r;
r=1;
if (n > 0) r=n*fact(n-1)
return(r)
}
fact(1234)

wuerde die faktoriele 1234 rechnen.

_______________________________________________
CD ist ein service von SILVER SERVER
der inhalt unterliegt der GFDL
_______________________________________________



Rolfhub
Senior Member
Beitrag vom:
12-10-2003, 05:34:39

Fallstrick

Ein kleiner Fallstrick: Man kann bekanntlich die Eingabe- und Ausgabebasis (Zahlensystembasis) selbst eingeben (ibase=bla oder obase=bla), aber hier lauert die Falle, an die man nicht so ohne weiteres denkt: Der BC ist konsequent, bei der Eingabe einer Zahl muss diese in der eingestellten Basis eingegeben werden, die Ausgabe erfolgt in der eingestellten Obase (z. B. ibase=2; obase=10000 um Zahlen vom Binär- ins Hexsystem zu konvertieren). Die Obase kann man natürlich auch ausgeben lassen (wie jede Variable), es wird jedoch immer "10" geliefert, da die Ausgabe der Basis ja selbst in ebendieser erfolgt!

-----------------------------------------------------


Rolfhub
Senior Member
Beitrag vom:
12-10-2003, 05:03:51

Auch für Win

Der BC ist übrigens auch für Windows verfügbar. Was das bringt? Nun: kostenlos, beliebige Präzision, auch andere Zahlenbasen als 2/8/10/16 möglich, etc. Dinge, die man z. B. über den normalen Windows-Rechner nicht sagen kann.

-----------------------------------------------------


Rolfhub
Senior Member
Beitrag vom:
25-12-2002, 22:12:47

Noch ein paar Anmerkungen

Ich habe noch ein paar (hoffentlich nützliche) Bemerkungen zum bc: 1.: Es gibt außer der Option -l (library laden) auch noch die Option -q (quiet - Startmeldungen nicht ausgeben), letztere ist komischerweise in der manpage nicht erwähnt. 2.: Man kann beim Aufruf von bc auch eine oder mehrere Dateien angeben, die der Reihe nach ausgeführt werden, so als ob man den Inhalt der Datei(en) Zeile für Zeile im bc eingegeben hätte, man kann also z. B. oft verwendete Funktionen in einer Datei abspeichern, und den bc mittels eines Shellscriptes immer mit dieser Datei aufrufen, um ihn so an die eingenen Bedürfnisse anpassen zu können. 3.: Standardmässig rechnet der bc nur dann ohne Nachkommastellen, wenn man die math library NICHT benutzt, wenn man sie benutzt, rechnet er normalerweise mit 20 Nachkommastellen - sozusagen ähnlich wie bei'm Windows-Taschenrechner, der auch einen wissenschaftlichen und einen normalen Modus kennt ;-)

-----------------------------------------------------


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04505
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06241
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1140
Comments: 0