Provided by:
manpages-pl_20060617-3_all 
NAZWA
dc - kalkulator dowolnej precyzji
SK/LADNIA
dc [-V] [--version] [-h] [--help] [-e wyra-skryptowe] [--expression=
wyra-skryptowe] [-f plik-skryptu] [--file= plik-skryptu] [plik...]
OPIS
Dokument ten opisuje dc w wersji 1.06, z listopada 2000.
dc jest kalkulatorem pracujcym w odwrotnej notacji polskiej,
obslugujcym arytmetyk nieograniczonej precyzji. Pozwala rownie na
definiowanie i wywolywanie makr. Zwykle dc czyta ze standardowego
wejcia. Jeli uyto argumentow polecenia dc, to s one traktowane jak
nazwy plikow. Zawarto tych plikow jest odczytywana i wykonywana przez
dc przed odczytem standardowego wejcia. Wszystkie zwykle wyniki
kierowane s na standardowe wyjcie; wszystkie komunikaty o bldach
kierowane s na standardowe wyjcie bldow.
Kalkulator odwrotnej notacji polskiej przechowuje liczby na stosie.
Wprowadzenie liczby odklada j na stos. Operacje arytmetyczne pobieraj
argumenty ze stosu i odkladaj na nim wyniki.
W celu wprowadzenia liczby do dc wpisujemy cyfry z opcjonaln kropk
dziesitn. Nie jest rozpoznawana notacja wykladnicza. Liczb ujemn
poprzedzamy znakiem podkrelenia ``_''. Nie mona posluy si w tym celu
znakiem ``-'' (minus), gdy jest to dwuargumentowy operator odejmowania.
Dwie kolejne liczby wprowadzamy oddzielajc je spacjami lub znakami
nowej linii. Nie maj one znaczenia jako polecenia.
OPCJE
Dc mona wywolywa z nastpujcymi opcjami wiersza polece:
-V
--version
Wypisuje numer wersji uruchomionego dc i informacj o prawach
autorskich, a nastpnie koczy dzialanie.
-h
--help Wypisuje komunikat o sposobie wywolania, podajc w skrocie opcje
wiersza polece i adres, na ktory naley zglasza bldy, a nastpnie
koczy dzialanie.
-e skrypt
--expression=skrypt
Dodaje polecenia ze skryptu do zestawu polece, jakie maj by
wykonane podczas przetwarzania wejcia.
-f plik-skryptu
--file=plik-skryptu
Dodaje polecenia zawarte w pliku-skryptu do zestawu polece,
jakie maj by wykonane podczas przetwarzania wejcia.
Jeeli po przetworzeniu powyszych opcji pozostan jeszcze jakie parametry
wiersza polece, to s one interpretowane jako nazwy plikow wejciowych,
ktore naley wykona. Nazwa - odnosi si do standardowego strumienia
wejciowego. Jeli nie podano ani opcji -e ani adnych plikow, to
polecenia do wykonania bd czytane ze standardowego wejcia.
Polecenia wypisywania
p Wypisuje warto z wierzcholka stosu, bez jego zmiany. Po wartoci
wypisywany jest znak nowej linii.
n Wypisuje warto z wierzcholka stosu, zdejmujc j rownoczenie ze
stosu. Nie wypisuje po niej znaku nowej linii. P Zdejmuje
warto z wierzcholka stosu. Jeli jest to lacuch, to jest on po
prostu wypisywany bez kocowego znaku nowej linii. W przeciwnym
razie jest to liczba, a cz calkowita jej wartoci bezwzgldnej
wypisywana jest jako strumie bajtow "o podstawie (UCHAR_MAX+1)".
Zakladajc, e (UCHAR_MAX+1) wynosi 256 (jak to jest w wikszoci
maszyn o 8-bitowych bajtach), funkcj t realizuje take sekwencja
KSK 0k1/ [_1*]sx d0>x [256~aPd0<x]dsxx sxLKk, z wyjtkiem skutku
ubocznego, jakim jest nadpisanie wartoci z rejestru x.
f Wypisuje cal zawarto stosu nie zmieniajc niczego. Jest
polecenie przydatne w sytuacji, gdy si pogubilimy lub chcemy si
zorientowa, jaki byl efekt pewnych polece.
Arytmetyka
+ Zdejmuje ze stosu dwie wartoci, dodaje je i odklada wynik na
stos. Dokladno wyniku zaley wylcznie od wartoci argumentow i
jest wystarczajco cisla.
- Zdejmuje ze stosu dwie wartoci, odejmuje pierwsz zdjt od drugiej
i sklada wynik ponownie na stos.
* Zdejmuje ze stosu dwie wartoci, mnoy je i odklada wynik na stos.
Liczba cyfr ulamkowych wyniku jest kontrolowana przez aktualn
warto dokladnoci (patrz niej) i liczby cyfr ulamkowych mnoonych
wartoci.
/ Zdejmuje ze stosu dwie wartoci, dzieli drug zdjt przez pierwsz i
odklada wynik ponownie na stos. Liczba cyfr ulamkowych wyniku
okrelana jest przez warto dokladnoci.
% Zdejmuje ze stosu dwie wartoci, oblicza reszt z dzielenia, jakie
byloby wykonane przez / i odklada wynik na stos. Obliczona
warto jest t sam, co otrzymana z sekwencji Sd dld/ Ld*-.
~ Zdejmuje ze stosu dwie wartoci, dzieli drug zdjt przez pierwsz.
Odklada na stos iloraz, a nastpnie reszt z dzielenia. Dzielenie
wykonywane jest z liczb cyfr ulamkowych okrelon wartoci
dokladnoci. (Funkcj t moe te spelnia sekwencja SdSn lnld/
LnLd%, z nieco odmiennym sprawdzaniem bldow.)
^ Zdejmuje ze stosu dwie wartoci i wykonuje potgowanie, poslugujc
si pierwsz zdjt jako wykladnikiem, za drug jako podstaw
potgowania. Ulamkowa cz wykladnika jest ignorowana. Warto
dokladnoci okrela liczb cyfr ulamkowych wyniku.
| Zdejmuje ze stosu trzy wartoci i oblicza potgowanie modulo [od
tlum: modular exponentiation == (a^b) mod c].
Pierwsza ze zdjtych wartoci uywana jest jako dzielnik operacji
(reduction modulus). Warto ta musi by niezerowa i powinna by
liczb calkowit. Druga uywana jest jako wykladnik i musi by
liczb nieujemn, a jej cz ulamkowa zostanie zignorowana. Trzecia
z pobranych ze stosu wartoci okrela podstaw potgowania, powinna
ona by calkowita. Dla malych liczb jest to zblione do sekwencji
Sm^Lm%, ale, w odronieniu od ^, polecenie to dziala z dowolnie
duymi wykladnikami.
v Zdejmuje ze stosu pojedyncz warto, oblicza jej pierwiastek
kwadratowy i odklada go na stos. Warto dokladnoci okrela liczb
cyfr ulamkowych wyniku.
Na wikszo operacji arytmetycznych wplywa ``warto dokladnoci'', ktor
ustala si za pomoc polecenia k. Domyln wartoci dokladnoci jest zero,
co oznacza, e wszystkie dzialania arytmetyczne z wyjtkiem dodawania i
odejmowania daj wyniki calkowite.
Operacja reszty % wymaga pewnego wyjanienia: zastosowana do argumentow
``a'' i ``b'' daje w wyniku ``a - (b * (a / b))'', gdzie ``a/b''
obliczane jest z biec dokladnoci.
Kontrola stosu
c Czyci stos, powoduje, e bdzie on pusty.
d Powiela warto na wierzcholku stosu, odkladajc na stos jej kopi.
Zatem ``4d*p'' oblicza 4 podniesione do kwadratu i wypisuje
wynik.
r Zamienia miejscami dwie gorne wartoci na stosie.
Rejestry
dc udostpnia 256 rejestrow pamiciowych, kady nazwany pojedynczym
znakiem. W rejestrze mona przechowa liczb lub lacuch znakowy i poniej
je odtworzy.
sr Zdejmuje warto z wierzcholka stosu i zapisuje w rejestrze r.
lr Kopiuje warto zawart w rejestrze r i odklada j na stos. Nie
zmienia to zawartoci r.
Kady z rejestrow posiada rownie swoj wlasny stos. Biec wartoci rejestru
jest wierzcholek stosu rejestru.
Sr Zdejmuje warto z wierzcholka stosu (glownego) i odklada j na
stosie rejestru r. Poprzednia warto rejestru staje si
niedostpna.
Lr Zdejmuje warto z wierzcholka stosu rejestru r i odklada j na
glownym stosie. Poprzednia warto stosu rejestru r, jeli byla
takowa, jest teraz dostpna poprzez polecenie lr.
Parametry
dc posiada trzy parametry kontrolujce jego prac: dokladno, podstaw
systemu pozycyjnego wejcia i podstaw wyjcia. Dokladno okrela liczb
cyfr dziesitnych, jaka bdzie zachowana w wyniku wikszoci operacji
arytmetycznych. Podstawa wejcia odpowiada za interpretacj
wprowadzanych liczb; wszystkie wprowadzane liczby uywaj tej podstawy.
Podstawa wyjcia uywana jest do wypisywania liczb.
Podstawa wejcia i wyjcia s odrbnymi parametrami; mona spowodowa, e bd
rone, co moe by uyteczne lub mylce. Podstawa wejcia musi by liczb z
zakresu od 2 do 16. Podstawa wyjcia musi wynosi co najmniej 2.
Dokladno musi by rowna zeru lub wiksza. Dokladno zawsze okrelana jest
jako liczba cyfr dziesitnych, niezalenie od biecej podstawy wejcia czy
wyjcia.
i Zdejmuje warto z wierzcholka stosu i posluguje si ni do
ustawienia podstawy wejcia.
o Zdejmuje warto z wierzcholka stosu i posluguje si ni do
ustawienia podstawy wyjcia.
k Zdejmuje warto z wierzcholka stosu i posluguje si ni do
ustawienia dokladnoci.
I Odklada biec warto podstawy wejcia na stosie.
O Odklada biec warto podstawy wyjcia na stosie.
K Odklada biec dokladno na stosie.
/Lacuchy znakowe
dc oprocz pracy z liczbami moe te dziala na lacuchach znakowych.
Lacuchy mona jedynie wypisywa i wykonywa jako makra (co oznacza, e
zawarto lacucha przetwarzana jest jako polecenia dc). Stos i wszystkie
rejestry mog przechowywa lacuchy, a dc zawsze wie, czy dany obiekt jest
lacuchem czy liczb. Niektore z polece, jak np. operacje arytmetyczne,
wymagaj liczb jako swych argumentow i wywietlaj bldy, jeli dostarczono
im lacuch. Inne akceptuj zarowno liczby, jak i lacuchy znakowe. Na
przyklad, polecenie p akceptuje oba rodzaje argumentow i wypisuje
obiekt stosownie do jego typu.
[znaki]
Tworzy lacuch zawierajcy znaki (zawarte pomidzy nawiasami
kwadratowymi [ i ]) i odklada go na stos. Na przyklad, [foo]P
wypisuje znaki foo (bez zakoczenia znakiem nowej linii).
a Zdejmowany jest wierzcholek stosu. Jeeli jest to liczba, to
mlodszy bajt (low-order byte) tej liczby zamieniany jest na
lacuch i odkladany na stos. W przeciwnym przypadku, wierzcholek
stosu byl lacuchem, a z powrotem na stos odkladany jest pierwszy
znak tego lacucha.
x Zdejmuje warto ze stosu i wykonuje j jako makro. Zwykle powinien
to by lacuch znakowy. Jeeli jest to liczba, to zostanie po
prostu zwrocona na stos. Na przyklad, [1p]x wykonuje makro 1p,
ktore odklada 1 na stosie i wypisuje 1 w osobnym wierszu.
Makra s najczciej przechowywane w rejestrach: [1p]sa skladuje makro do
wypisania 1 w rejestrze a, za lax wywoluje to makro.
>r Zdejmuje dwie wartoci ze stosu i porownuje je, zakladajc, e s
one liczbami, wykonujc zawarto rejestru r jako makro, jeli
pierwotny wierzcholek stosu jest wikszy. Tak wic, 1 2>a wywola
zawarto rejestru a za 2 1>a nie wywola.
!>r Podobnie, ale wywoluje makro jeli pierwotny wierzcholek stosu
nie jest wikszy (jest mniejszy bd rowny) od liczby wystpujcej
pod nim.
<r Podobnie, ale wywoluje makro jeli pierwotny wierzcholek stosu
jest mniejszy od liczby wystpujcej pod nim. !<r Podobnie, ale
wywoluje makro jeli pierwotny wierzcholek stosu nie jest
mniejszy (jest wikszy bd rowny) od liczby wystpujcej pod nim.
=r Podobnie, ale wywoluje makro, gdy obie zdjte ze stosu liczby s
rowne.
!=r Podobnie, ale wywoluje makro, gdy obie zdjte ze stosu liczby nie
s rowne.
? Czyta wiersz z terminala i wykonuje go. Polecenie to umoliwia
makru pobieranie danych od uytkownika.
q powoduje zakoczenie pracy makra i makra, z ktorego bylo ono
wywolane. Polecenie to wywolane na najwyszym poziomie lub z
makra wywolanego bezporednio z najwyszego poziomu spowoduje
zakoczenie pracy dc.
Q Zdejmuje ze stosu warto i uywa jej jako liczby poziomow
wykonania makr, jakie maj zosta zakoczone. Tak wic, 3Q koczy
prac trzech poziomow makr. Polecenie Q nigdy nie powoduje
zakoczenia pracy dc.
Informacja o stanie
Z Zdejmuje warto ze stosu, oblicza liczb jej cyfr (lub liczb
znakow, jeli jest to lacuch) i odklada t liczb na stos.
X Zdejmuje warto ze stosu, oblicza liczb jej cyfr ulamkowych i
odklada t liczb na stos. Dla lacuchow wartoci odkladan na stos
jest 0.
z Odklada na stos biec wysoko stosu: liczb obiektow na stosie
przed wykonaniem polecenia z.
R'one
! Uruchamia reszt wiersza jako polecenie systemu. Zauwa, e
pierwszestwo w analizie skladni maj polecenia !<, != i !>, wic
jeli chcemy uruchomi polecenie systemu zaczynajce si od <, > lub
=, to po ! musimy doda odstp.
# Interpretuje reszt wiersza jako komentarz.
:r Zdejmuje ze stosu dwie gorne wartoci. Warto, ktora byla drug od
gory stosu zostanie zachowana w tablicy r, indeksowanej wartoci
bylego wierzcholka stosu.
;r Zdejmuje wierzcholek stosu i posluguje si nim jako indeksem
tablicy r. Wybrana w ten sposob warto jest nastpnie odkladana
na stos. Zauwa, e kada ze skladowanych na stosie instancji
rejestru ma swoj wlasn, skojarzon z ni tablic. Zatem, 1 0:a 0Sa
2 0:a La 0;ap wypisze 1, gdy 2 zostalo zapamitane w instancji
0:a, ktora zostala poniej odloona na stos.
UWAGI
Operacje tablicowe : oraz ; s zwykle uywane wylcznie przez tradycyjne
implementacje bc. (Program bc w wersji GNU jest samowystarczalny i nie
potrzebuje dc by dziala.)
B/LDY
Bldy prosz zglasza (w jz.angielskim) na adres bug-dc@gnu.org.
INFORMACJE O T/LUMACZENIU
Powysze tlumaczenie pochodzi z nieistniejcego ju Projektu Tlumaczenia
Manuali i moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji,
prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.