dc - kalkulator dowolnej precyzji
dc [-V] [--version] [-h] [--help]
[-e wyrażenie-skryptu] [--expression=wyrażenie-skryptu]
[-f wyrażenie-pliku] [--file=wyrażenie-pliku]
[plik ...]
dc jest kalkulatorem pracującym w odwrotnej notacji
polskiej, obsługującym arytmetykę nieograniczonej
precyzji. Pozwala również na definiowanie i wywoływanie
makr. Zwykle dc czyta ze standardowego wejścia. Jeśli
użyto argumentów polecenia dc, to są one
traktowane jak nazwy plików. Zawartość tych
plików jest odczytywana i wykonywana przez dc przed odczytem
standardowego wejścia. Wszystkie zwykłe wyniki kierowane
są na standardowe wyjście; wszystkie komunikaty o
błędach kierowane są na standardowe wyjście
błędów.
Kalkulator odwrotnej notacji polskiej przechowuje liczby na
stosie. Wprowadzenie liczby odkłada ją na stos. Operacje
arytmetyczne pobierają argumenty ze stosu i odkładają
na nim wyniki.
To enter a number in dc, type the digits (using upper case
letters A through F as "digits" when working with
input bases greater than ten), with an optional decimal point. Exponential
notation is not supported. To enter a negative number, begin the number with
“_”. “-” cannot be used for this, as it is a
binary operator for subtraction instead. To enter two numbers in succession,
separate them with spaces or newlines. These have no meaning as
commands.
dc may be invoked with the following command-line
options:
- -V
- --version
- Wypisuje numer wersji uruchomionego dc i informację o
prawach autorskich, a następnie kończy
działanie.
- -h
- --help
- Wypisuje komunikat o sposobie wywołania, podając w
skrócie opcje wiersza poleceń i adres, na który
należy zgłaszać błędy, a
następnie kończy działanie.
- -e skrypt
- --expression=skrypt
- Dodaje polecenia ze skryptu do zestawu poleceń, jakie
mają być wykonane podczas przetwarzania wejścia.
- -f
plik-skryptu
- --file=plik-skryptu
- Dodaje polecenia zawarte w pliku-skryptu do zestawu poleceń,
jakie mają być wykonane podczas przetwarzania
wejścia.
If any command-line parameters remain after processing the above,
these parameters are interpreted as the names of input files to be
processed. A file name of - refers to the standard input stream. The
standard input will processed if no script files or expressions are
specified.
- p
- Wypisuje wartość z wierzchołka stosu, bez jego
zmiany. Po wartości wypisywany jest znak nowej linii.
- n
- Wypisuje wartość z wierzchołka stosu,
zdejmując ją równocześnie ze stosu. Nie
wypisuje po niej znaku nowej linii.
- P
- Pops off the value on top of the stack. If it it a string, it is simply
printed without a trailing newline. Otherwise it is a number, and the
integer portion of its absolute value is printed out as a "base
(UCHAR_MAX+1)" byte stream. Assuming that (UCHAR_MAX+1) is 256 (as it
is on most machines with 8-bit bytes), the sequence KSK0k1/_1Ss
[ls*]Sxd0>x [256~Ssd0<x]dsxxsx[q]Sq[Lsd0>qaPlxx]
dsxxsx0sqLqsxLxLK+k could also accomplish this function. (Much of the
complexity of the above native-dc code is due to the ~ computing the
characters backwards, and the desire to ensure that all registers wind up
back in their original states.)
- f
- Wypisuje całą zawartość stosu nie
zmieniając niczego. Jest polecenie przydatne w sytuacji, gdy
się pogubiliśmy lub chcemy się zorientować,
jaki był efekt pewnych poleceń.
- +
- Zdejmuje ze stosu dwie wartości, dodaje je i odkłada wynik
na stos. Dokładność wyniku zależy
wyłącznie od wartości argumentów i jest
wystarczająco ścisła.
- -
- Zdejmuje ze stosu dwie wartości, odejmuje pierwszą
zdjętą od drugiej i składa wynik ponownie na
stos.
- *
- Pops two values, multiplies them, and pushes the result. The number of
fraction digits in the result depends on the current precision value and
the number of fraction digits in the two arguments.
- /
- Zdejmuje ze stosu dwie wartości, dzieli drugą
zdjętą przez pierwszą i odkłada wynik ponownie
na stos. Liczba cyfr ułamkowych wyniku określana jest przez
wartość dokładności.
- %
- Pops two values, computes the remainder of the division that the /
command would do, and pushes that. The value computed is the same as that
computed by the sequence Sd dld/ Ld*- .
- ~
- Zdejmuje ze stosu dwie wartości, dzieli drugą
zdjętą przez pierwszą. Odkłada na stos iloraz,
a następnie resztę z dzielenia. Dzielenie wykonywane jest z
liczbą cyfr ułamkowych określoną
wartością dokładności. (Funkcję
tę może też spełniać sekwencja SdSn
lnld/ LnLd%, z nieco odmiennym sprawdzaniem
błędów.)
- ^
- Zdejmuje ze stosu dwie wartości i wykonuje potęgowanie,
posługując się pierwszą zdjętą
jako wykładnikiem, zaś drugą jako podstawą
potęgowania. Ułamkowa część
wykładnika jest ignorowana. Wartość
dokładności określa liczbę cyfr
ułamkowych wyniku.
- |
- Pops three values and computes a modular exponentiation. The first value
popped is used as the reduction modulus; this value must be a non-zero
number, and should be an integer. The second popped is used as the
exponent; this value must be a non-negative number, and any fractional
part of this exponent will be ignored. The third value popped is the base
which gets exponentiated, which should be an integer. For small integers
this is like the sequence Sm^Lm%, but, unlike ^, this
command will work with arbitrarily large exponents.
- v
- Pops one value, computes its square root, and pushes that. The maximum of
the precision value and the precision of the argument is used to determine
the number of fraction digits in the result.
Na większość operacji arytmetycznych
wpływa “wartość
dokładności”, którą ustala się za
pomocą polecenia k. Domyślną
wartością dokładności jest zero, co oznacza,
że wszystkie działania arytmetyczne z wyjątkiem
dodawania i odejmowania dają wyniki całkowite.
- c
- Czyści stos, powoduje, że będzie on pusty.
- d
- Powiela wartość na wierzchołku stosu,
odkładając na stos jej kopię. Zatem
“4d*p” oblicza 4 podniesione do kwadratu i wypisuje
wynik.
- r
- Reverses the order of (swaps) the top two values on the stack. (This can
also be accomplished with the sequence SaSbLaLb.)
- R
- Pops the top-of-stack as an integer n. Cyclically rotates the top
n items on the updated stack. If n is positive, then the
rotation direction will make the topmost element the second-from top; if
n is negative, then the rotation will make the topmost element the
n-th element from the top. If the stack depth is less than
n, then the entire stack is rotated (in the appropriate direction),
without any error being reported.
dc udostępnia co najmniej 256256 rejestrów
pamięciowych, każdy nazwany pojedynczym znakiem. W rejestrze
można przechować liczbę lub łańcuch
znakowy i później je odtworzyć.
- sr
- Zdejmuje wartość z wierzchołka stosu i zapisuje w
rejestrze r.
- lr
- Copy the value in register r and push it onto the stack. The value
0 is retrieved if the register is uninitialized. This does not alter the
contents of r.
Każdy z rejestrów posiada również
swój własny stos. Bieżącą
wartością rejestru jest wierzchołek stosu rejestru.
- Sr
- Zdejmuje wartość z wierzchołka stosu
(głównego) i odkłada ją na stosie rejestru
r. Poprzednia wartość rejestru staje się
niedostępna.
- Lr
- Zdejmuje wartość z wierzchołka stosu rejestru
r i odkłada ją na głównym stosie.
Poprzednia wartość stosu rejestru r, jeśli
była takowa, jest teraz dostępna poprzez polecenie
lr.
dc posiada trzy parametry kontrolujące jego
pracę: dokładność, podstawę systemu
pozycyjnego wejścia i podstawę wyjścia.
Dokładność określa liczbę cyfr
dziesiętnych, jaka będzie zachowana w wyniku
większości operacji arytmetycznych. Podstawa wejścia
odpowiada za interpretację wprowadzanych liczb; wszystkie wprowadzane
liczby używają tej podstawy. Podstawa wyjścia
używana jest do wypisywania liczb.
Podstawa wejścia i wyjścia są
odrębnymi parametrami; można spowodować, że
będą różne, co może być
użyteczne lub mylące. Podstawa wejścia musi być
liczbą z zakresu od 2 do 16. Podstawa wyjścia musi
wynosić co najmniej 2. Dokładność musi
być równa zeru lub większa.
Dokładność zawsze określana jest jako liczba
cyfr dziesiętnych, niezależnie od bieżącej
podstawy wejścia czy wyjścia.
- i
- Zdejmuje wartość z wierzchołka stosu i
posługuje się nią do ustawienia podstawy
wejścia.
- o
- Zdejmuje wartość z wierzchołka stosu i
posługuje się nią do ustawienia podstawy
wyjścia.
- k
- Zdejmuje wartość z wierzchołka stosu i
posługuje się nią do ustawienia
dokładności.
- I
- Odkłada bieżącą wartość podstawy
wejścia na stosie.
- O
- Odkłada bieżącą wartość podstawy
wyjścia na stosie.
- K
- Odkłada bieżącą
dokładność na stosie.
Łańcuchy znakowe
dc has a limited ability to operate on strings as well as
on numbers; the only things you can do with strings are print them and
execute them as macros (which means that the contents of the string are
processed as dc commands). All registers and the stack can hold
strings, and dc always knows whether any given object is a string or
a number. Some commands such as arithmetic operations demand numbers as
arguments and print errors if given strings. Other commands can accept
either a number or a string; for example, the p command can accept
either and prints the object according to its type.
- [znaki]
- Tworzy łańcuch zawierający znaki (zawarte
pomiędzy nawiasami kwadratowymi [ i ]) i
odkłada go na stos. Na przykład, [foo]P wypisuje
znaki foo (bez zakończenia znakiem nowej linii).
- a
- Zdejmowany jest wierzchołek stosu. Jeżeli jest to liczba, to
młodszy bajt (low-order byte) tej liczby zamieniany jest na
łańcuch i odkładany na stos. W przeciwnym przypadku,
wierzchołek stosu był łańcuchem, a z powrotem
na stos odkładany jest pierwszy znak tego
łańcucha.
- x
- Zdejmuje wartość ze stosu i wykonuje ją jako makro.
Zwykle powinien to być łańcuch znakowy. Jeżeli
jest to liczba, to zostanie po prostu zwrócona na stos. Na
przykład, [1p]x wykonuje makro 1p, które
odkłada 1 na stosie i wypisuje 1 w osobnym
wierszu.
Makra są najczęściej przechowywane w
rejestrach: [1p]sa składuje makro do wypisania 1 w
rejestrze a, zaś lax wywołuje to makro.
- >r
- Zdejmuje dwie wartości ze stosu i porównuje je,
zakładając, że są one liczbami,
wykonując zawartość rejestru r jako makro,
jeśli pierwotny wierzchołek stosu jest większy. Tak
więc, 1 2>a wywoła zawartość
rejestru a zaś 2 1>a nie wywoła.
- !>r
- Similar but invokes the macro if the original top-of-stack is not greater
than (less than or equal to) what was the second-to-top.
- <r
- Podobnie, ale wywołuje makro jeśli pierwotny
wierzchołek stosu nie jest mniejszy (jest większy
bądź równy) od liczby występującej pod
nim.
- !<r
- Similar but invokes the macro if the original top-of-stack is not less
than (greater than or equal to) what was the second-to-top.
- =r
- Podobnie, ale wywołuje makro, gdy obie zdjęte ze stosu
liczby są równe.
- !=r
- Similar but invokes the macro if the two numbers popped are not
equal.
- ?
- Czyta wiersz z terminala i wykonuje go. Polecenie to umożliwia
makru pobieranie danych od użytkownika.
- q
- powoduje zakończenie pracy makra i makra, z którego
było ono wywołane. Polecenie to wywołane na
najwyższym poziomie lub z makra wywołanego
bezpośrednio z najwyższego poziomu spowoduje
zakończenie pracy dc.
- Q
- Zdejmuje ze stosu wartość i używa jej jako liczby
poziomów wykonania makr, jakie mają zostać
zakończone. Tak więc, 3Q kończy pracę
trzech poziomów makr. Polecenie Q nigdy nie powoduje
zakończenia pracy dc.
- Z
- Pops a value off the stack, calculates the number of decimal digits it has
(or number of characters, if it is a string) and pushes that number. The
digit count for a number does not include any leading zeros, even
if those appear to the right of the radix point.
- X
- Zdejmuje wartość ze stosu, oblicza liczbę jej cyfr
ułamkowych i odkłada tę liczbę na stos. Dla
łańcuchów wartością
odkładaną na stos jest 0.
- z
- Odkłada na stos bieżącą wysokość
stosu: liczbę obiektów na stosie przed wykonaniem polecenia
z.
- !
- Will run the rest of the line as a system command. Note that parsing of
the !<, !=, and !> commands take precedence, so if you want to run a
command starting with <, =, or > you will need to add a space after
the !.
- #
- Interpretuje resztę wiersza jako komentarz.
- :r
- Zdejmuje ze stosu dwie górne wartości.
Wartość, która była drugą od
góry stosu zostanie zachowana w tablicy r, indeksowanej
wartością byłego wierzchołka stosu.
- ;r
- Zdejmuje wierzchołek stosu i posługuje się nim jako
indeksem tablicy r. Wybrana w ten sposób
wartość jest następnie odkładana na stos.
Note that each stacked instance of a register has its own array
associated with it. Thus 1 0:a 0Sa 2 0:a La 0;ap will print 1,
because the 2 was stored in an instance of 0:a that was later popped.
- ~/.dcrc
- The commands in this file will be executed when dc is first
run.
Autorami polskiego tłumaczenia niniejszej strony
podręcznika są: Wojtek Kotwica <wkotwica@post.pl>
Niniejsze tłumaczenie jest wolną
dokumentacją. Bliższe informacje o warunkach licencji
można uzyskać zapoznając się z
GNU General
Public License w wersji 3 lub nowszej. Nie przyjmuje się
ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika
prosimy zgłaszać na adres listy dyskusyjnej
manpages-pl-list@lists.sourceforge.net.