bc
Z Wikipedii
(Przekierowano z Bc (Unix))
bc to uniksowy kalkulator dowolnej precyzji (zarówno przed, jak i po przecinku). Umożliwia operowanie liczbami w dowolnych systemach liczbowych (wejście możliwe w systemie maksymalnie szesnastkowym, wyjście w dowolnie dużym), wykonywanie skryptów itd.
Pierwotnie program opierał się na programie dc, tłumacząc zapis infiksowy na postfiksowy (odwrotna notacja polska), jednak obecnie wersja GNU jest autonomicznym programem.
Składnia podobna do języka C.
Spis treści |
[edytuj] POSIX bc
Oprócz prostych poleceń (np. 2*(3+4)^4) POSIX bc obsługuje:
- if(warunek) - wyrażenia warunkowe
- while(warunek) - pętle typu while
- for(wartość początkowa; warunek; operacja zwiększenia) - pętle typu for
- define - tworzenie funkcji
- return - zwracanie wartości przez funkcję
- operatory:
+ - * /
+= -= *= /=
++ -- < >
== != <= >=
( ) [ ] { }
% %=
^ ^=
- sqrt - pierwiastek kwadratowy
- zmienne
[edytuj] GNU bc
GNU bc oferuje te same polecenia co POSIX bc oraz:
- read - zezwala na odczyt danych liczbowych z klawiatury
- operatory logiczne:
&& || !
- komentarze (wszystkie znaki w linii po # są ignorowane)
[edytuj] Przykłady użycia
- Obliczanie liczby π z dokładnością do 200 miejsc po przecinku.
$ bc -l scale=200 4*a(1)
- Wypisanie tabliczki mnożenia o rozmiarach 10x10.
for (i=1; i<=10; ++i){
for (j=1; j<=10; ++j)
print i*j, "\t"
print "\n"
}
- Rekurencyjne zdefiniowanie funkcji silnia.
define silnia(n){
if (n <= 1) return 1;
return n * silnia(n-1);
}
[edytuj] Potęgowanie
- Potęgowanie w POSIX bc
/* Funkcja zwraca część całkowitą liczby */
define i(x) {
auto s
s = scale
scale = 0
x /= 1 /* zaokrągla x z niedomiarem */
scale = s
return (x)
}
/* Funkcja wykorzysuje fakt, iż x^y == e^(y*log(x)) */
define p(x,y) {
if (y == i(y)) {
return (x ^ y)
}
return ( e( y * l(x) ) )
}
- Potęgowanie w GNU bc
# Funkcja zwraca część całkowitą liczby
define int(number) {
auto oldscale
oldscale = scale
scale = 0
number /= 1 /* round number down */
scale = oldscale
return number
}
# Funkcja wykorzysuje fakt, iż x^y == e^(y*log(x))
define power(number,exponent) {
if (exponent == int(exponent)) {
return number ^ exponent
} else {
return e( exponent * l(number) )
}
}
[edytuj] Linki zewnętrzne
- [1] - Systemowy podręcznik do bc przetłumaczony na język polski
| Zarządzanie plikami i systemem plików: | cat • cd • chattr • chmod • chown • chgrp • cp • du • df • file • fsck • ln • ls • lsof • mkdir • more • mount • mv • pwd • rcp • rm • rmdir • split • touch • tree | ||
| Zarządzanie procesami | anacron • at • chroot • cron • crontab • htop • kill • killall • nice • ps • sleep • screen • time • timex • top • renice • wait • watch | ||
| Zarządzanie użytkownikami/systemem | env • finger • id • locale • mesg • passwd • su • sudo • uname • uptime • w • wall • who • write | ||
| Przetwarzanie tekstu | awk • cut • diff • ex • head • iconv • join • less • more • nkf • paste • sed • sort • tail • tr • uniq • wc • xargs • perl | ||
| Programowanie shellowe | echo • expr • unset | Drukowanie | lp |
| Komunikacja inetd • netstat • ping • rlogin • traceroute |
Wyszukiwanie find • grep • strings • whereis |
Różne banner • bc • cal • man • yes |
|
| Prezydent Kaczyński studził zapędy Bałtów |
- To pan prezydent łagodził ostre stanowisko Litwy, Łotwy i Estonii - powiedział Piotr Kownacki, szef Kancelarii Prezydenta dziennikowi.pl. Z ujawnionego przez niego przebiegu misji bałtyckiej Lecha Kaczyńskiego wynika, że to przywódcy Litwy, Łotwy i Estonii chcieli ostrych sankcji wobec Rosji.
|
| Putin próbuje skłócić Zachód |
Rosja ostrzegła Europę, żeby ta nie przyjmowała służalczej roli wobec Stanów Zjednoczonych. - Jeżeli państwa europejskie chcą służyć interesom zagranicznym Stanów Zjednoczonych to - w mojej opinii - nic na tym nie zyskają - powiedział szef rosyjskiego rządu Władimir Putin w wywiadzie dla niemieckiej stacji telewizyjnej ARD.
|
| USA zniosą sankcje wobec Białorusi? |
Waszyngton może już wkrótce rozważyć zniesienie sankcji wobec Mińska, jeśli ten podejmie kroki ku politycznym zmianom - napisała w piątek agencja Associated Press. Probierzem mają być wybory parlamentarne, zaplanowane na 28 września.
|
| 11 mln fałszywych euro w piwnicy |
Fałszywe banknoty o wartości 11 mln euro skonfiskowała kolumbijska policja - poinformowała europejska agencja policyjna Europol. To najwyższa suma podrobionych euro, jaką kiedykolwiek przechwycono poza granicami Europy.
|
| Alarm atomowy w miasteczku |
Belgijskie władze zmieniły zdanie i zakazały mieszkańcom walońskiej gminy Fleurus spożywania miejscowych warzyw, owoców, mleka i wody deszczowej. To skutek wycieku radioaktywnego jodu, do którego doszło w ubiegły weekend w laboratorium IRE.
|
- To pan prezydent łagodził ostre stanowisko Litwy, Łotwy i Estonii - powiedział Piotr Kownacki, szef Kancelarii Prezydenta dziennikowi.pl. Z ujawnionego przez niego przebiegu misji bałtyckiej Lecha Kaczyńskiego wynika, że to przywódcy Litwy, Łotwy i Estonii chcieli ostrych sankcji wobec Rosji.
Rosja ostrzegła Europę, żeby ta nie przyjmowała służalczej roli wobec Stanów Zjednoczonych. - Jeżeli państwa europejskie chcą służyć interesom zagranicznym Stanów Zjednoczonych to - w mojej opinii - nic na tym nie zyskają - powiedział szef rosyjskiego rządu Władimir Putin w wywiadzie dla niemieckiej stacji telewizyjnej ARD.
Waszyngton może już wkrótce rozważyć zniesienie sankcji wobec Mińska, jeśli ten podejmie kroki ku politycznym zmianom - napisała w piątek agencja Associated Press. Probierzem mają być wybory parlamentarne, zaplanowane na 28 września.
Fałszywe banknoty o wartości 11 mln euro skonfiskowała kolumbijska policja - poinformowała europejska agencja policyjna Europol. To najwyższa suma podrobionych euro, jaką kiedykolwiek przechwycono poza granicami Europy.
Belgijskie władze zmieniły zdanie i zakazały mieszkańcom walońskiej gminy Fleurus spożywania miejscowych warzyw, owoców, mleka i wody deszczowej. To skutek wycieku radioaktywnego jodu, do którego doszło w ubiegły weekend w laboratorium IRE.