.\" -*- coding: UTF-8 -*-
.\"
.\" dc.1 - the *roff document processor source for the dc manual
.\"
.\" This file is part of GNU dc.
.\" Copyright (C) 1994, 1997, 1998, 2000, 2001, 2005, 2006, 2008, 2013, 2016
.\" Free Software Foundation, Inc.
.\"
.\" Permission is granted to copy, distribute and/or modify this document
.\" under the terms of the GNU Free Documentation License, Version 1.2 or
.\" any later version published by the Free Software Foundation; with no
.\" Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
.\" Texts.
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH dc 1 "22 maja 2008 r." "Projekt GNU" 
.ds dc \fIdc\fP
.ds Dc \fIdc\fP
.SH NAZWA
dc \- kalkulator dowolnej precyzji
.SH SKŁADNIA
dc [\-V] [\-\-version] [\-h] [\-\-help]
   [\-e wyrażenie\-skryptu] [\-\-expression=wyrażenie\-skryptu]
   [\-f wyrażenie\-pliku] [\-\-file=wyrażenie\-pliku]
   [plik ...]
.SH OPIS
.PP
\*(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.
.PP
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.
.PP
To enter a number in \fIdc\fP, type the digits (using upper case letters \fIA\fP
through \fIF\fP 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 \*(lq_\*(rq.  \*(lq\-\*(rq 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.
.SH OPCJE
\*(Dc may be invoked with the following command\-line options:
.TP 
\fB\-V\fP
.TP 
\fB\-\-version\fP
Wypisuje numer wersji uruchomionego \*(dc i informację o prawach autorskich,
a następnie kończy działanie.
.TP 
\fB\-h\fP
.TP 
\fB\-\-help\fP
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.
.TP 
\fB\-e \fP\fIskrypt\fP
.TP 
\fB\-\-expression=\fP\fIskrypt\fP
Dodaje polecenia ze \fIskryptu\fP do zestawu poleceń, jakie mają być wykonane
podczas przetwarzania wejścia.
.TP 
\fB\-f \fP\fIplik\-skryptu\fP
.TP 
\fB\-\-file=\fP\fIplik\-skryptu\fP
Dodaje polecenia zawarte w \fIpliku\-skryptu\fP do zestawu poleceń, jakie mają
być wykonane podczas przetwarzania wejścia.
.PP
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 \fB\-\fP refers to the standard input stream.  The standard input
will processed if no script files or expressions are specified.
.PD
.SH "Polecenia wypisywania"
.TP 
\fBp\fP
Wypisuje wartość z wierzchołka stosu, bez jego zmiany. Po wartości
wypisywany jest znak nowej linii.
.TP 
\fBn\fP
Wypisuje wartość z wierzchołka stosu, zdejmując ją równocześnie ze stosu.
Nie wypisuje po niej znaku nowej linii.
.TP 
\fBP\fP
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 \fBKSK0k1/_1Ss [ls*]Sxd0>x [256~Ssd0<x]dsxxsx[q]Sq[Lsd0>qaPlxx] dsxxsx0sqLqsxLxLK+k\fP 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.)
.TP 
\fBf\fP
Wypisuje całą zawartość stosu
.ig
and the contents of all of the registers,
..
nie zmieniając niczego.  Jest polecenie przydatne w sytuacji, gdy się
pogubiliśmy lub chcemy się zorientować, jaki był efekt pewnych poleceń.
.PD
.SH Arytmetyka
.TP 
\fB+\fP
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.
.TP 
\fB\-\fP
Zdejmuje ze stosu dwie wartości, odejmuje pierwszą zdjętą od drugiej i
składa wynik ponownie na stos.
.TP 
\fB*\fP
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.
.TP 
\fB/\fP
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.
.TP 
\fB%\fP
Pops two values, computes the remainder of the division that the \fB/\fP
command would do, and pushes that.  The value computed is the same as that
computed by the sequence \fBSd dld/ Ld*\-\fP .
.TP 
\fB~\fP
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 \fBSdSn lnld/ LnLd%\fP, z nieco
odmiennym sprawdzaniem błędów.)
.TP 
\fB^\fP
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.
.TP 
\fB|\fP
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 \fBSm^Lm%\fP, but, unlike \fB^\fP, this command will work with
arbitrarily large exponents.
.TP 
\fBv\fP
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.
.PP
Na większość operacji arytmetycznych wpływa \*(lqwartość dokładności\*(rq, którą
ustala się za pomocą polecenia \fBk\fP.  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.
.SH "Kontrola stosu"
.TP 
\fBc\fP
Czyści stos, powoduje, że będzie on pusty.
.TP 
\fBd\fP
Powiela wartość na wierzchołku stosu, odkładając na stos jej kopię.  Zatem
\*(lq4d*p\*(rq oblicza 4 podniesione do kwadratu i wypisuje wynik.
.TP 
\fBr\fP
Reverses the order of (swaps) the top two values on the stack.  (This can
also be accomplished with the sequence \fBSaSbLaLb\fP.)
.TP 
\fBR\fP
Pops the top\-of\-stack as an integer \fIn\fP.  Cyclically rotates the top \fIn\fP
items on the updated stack.  If \fIn\fP is positive, then the rotation
direction will make the topmost element the second\-from top; if \fIn\fP is
negative, then the rotation will make the topmost element the \fIn\fP\-th
element from the top.  If the stack depth is less than \fIn\fP, then the entire
stack is rotated (in the appropriate direction), without any error being
reported.
.SH Rejestry
.PP
\*(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ć.
.TP 
\fBs\fP\fIr\fP
Zdejmuje wartość z wierzchołka stosu i zapisuje w rejestrze \fIr\fP.
.TP 
\fBl\fP\fIr\fP
Copy the value in register \fIr\fP and push it onto the stack.  The value 0 is
retrieved if the register is uninitialized.  This does not alter the
contents of \fIr\fP.
.PP
Każdy z rejestrów posiada również swój własny stos. Bieżącą wartością
rejestru jest wierzchołek stosu rejestru.
.TP 
\fBS\fP\fIr\fP
Zdejmuje wartość z wierzchołka stosu (głównego) i odkłada ją na stosie
rejestru \fIr\fP. Poprzednia wartość rejestru staje się niedostępna.
.TP 
\fBL\fP\fIr\fP
Zdejmuje wartość z wierzchołka stosu rejestru \fIr\fP i odkłada ją na głównym
stosie. Poprzednia wartość stosu rejestru \fIr\fP, jeśli była takowa, jest
teraz dostępna poprzez polecenie \fBl\fP\fIr\fP.
.ig
.PP
The
\fBf\fR
command prints a list of all registers that have contents stored in them,
together with their contents.
Only the current contents of each register
(the top of its stack)
is printed.
..
.SH Parametry
.PP
\*(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.
.PP
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.
.TP 
\fBi\fP
Zdejmuje wartość z wierzchołka stosu i posługuje się nią do ustawienia
podstawy wejścia.
.TP 
\fBo\fP
Zdejmuje wartość z wierzchołka stosu i posługuje się nią do ustawienia
podstawy wyjścia.
.TP 
\fBk\fP
Zdejmuje wartość z wierzchołka stosu i posługuje się nią do ustawienia
dokładności.
.TP 
\fBI\fP
Odkłada bieżącą wartość podstawy wejścia na stosie.
.TP 
\fBO\fP
Odkłada bieżącą wartość podstawy wyjścia na stosie.
.TP 
\fBK\fP
Odkłada bieżącą dokładność na stosie.
.SH "Łańcuchy znakowe"
.PP
\*(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 \fBp\fP command can accept either and prints the object according
to its type.
.TP 
\fB[\fP\fIznaki\fP\fB]\fP
Tworzy łańcuch zawierający \fIznaki\fP (zawarte pomiędzy nawiasami kwadratowymi
\fB[\fP i \fB]\fP)  i odkłada go na stos.  Na przykład, \fB[foo]P\fP wypisuje znaki
\fBfoo\fP (bez zakończenia znakiem nowej linii).
.TP 
\fBa\fP
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.
.TP 
\fBx\fP
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, \fB[1p]x\fP wykonuje makro \fB1p\fP, które odkłada \fB1\fP na
stosie i wypisuje \fB1\fP w osobnym wierszu.
.PP
Makra są najczęściej przechowywane w rejestrach: \fB[1p]sa\fP składuje makro do
wypisania \fB1\fP w rejestrze \fBa\fP, zaś \fBlax\fP wywołuje to makro.
.TP 
\fB>\fP\fIr\fP
Zdejmuje dwie wartości ze stosu i porównuje je, zakładając, że są one
liczbami, wykonując zawartość rejestru \fIr\fP jako makro, jeśli pierwotny
wierzchołek stosu jest większy.  Tak więc, \fB1 2>a\fP wywoła zawartość
rejestru \fBa\fP zaś \fB2 1>a\fP nie wywoła.
.TP 
\fB!>\fP\fIr\fP
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.
.TP 
\fB<\fP\fIr\fP
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.
.TP 
\fB!<\fP\fIr\fP
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.
.TP 
\fB=\fP\fIr\fP
Podobnie, ale wywołuje makro, gdy obie zdjęte ze stosu liczby są równe.
.TP 
\fB!=\fP\fIr\fP
Similar but invokes the macro if the two numbers popped are not equal.
.ig
This can also be validly used to compare two strings for equality.
..
.TP 
\fB?\fP
Czyta wiersz z terminala i wykonuje go. Polecenie to umożliwia makru
pobieranie danych od użytkownika.
.TP 
\fBq\fP
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.
.TP 
\fBQ\fP
Zdejmuje ze stosu wartość i używa jej jako liczby poziomów wykonania makr,
jakie mają zostać zakończone.  Tak więc, \fB3Q\fP kończy pracę trzech poziomów
makr.  Polecenie \fBQ\fP nigdy nie powoduje zakończenia pracy \*(dc.
.SH "Informacja o stanie"
.TP 
\fBZ\fP
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 \fInot\fP include any leading zeros, even if
those appear to the right of the radix point.
.TP 
\fBX\fP
.\" -1.
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.
.TP 
\fBz\fP
Odkłada na stos bieżącą wysokość stosu: liczbę obiektów na stosie przed
wykonaniem polecenia \fBz\fP.
.SH Różne
.TP 
\fB!\fP
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 !.
.TP 
\fB#\fP
Interpretuje resztę wiersza jako komentarz.
.TP 
\fB:\fP\fIr\fP
Zdejmuje ze stosu dwie górne wartości. Wartość, która była drugą od góry
stosu zostanie zachowana w tablicy \fIr\fP, indeksowanej wartością byłego
wierzchołka stosu.
.TP 
\fB;\fP\fIr\fP
Zdejmuje wierzchołek stosu i posługuje się nim jako indeksem tablicy \fIr\fP.
Wybrana w ten sposób wartość jest następnie odkładana na stos.
.P
Note that each stacked instance of a register has its own array associated
with it.  Thus \fB1 0:a 0Sa 2 0:a La 0;ap\fP will print 1, because the 2 was
stored in an instance of 0:a that was later popped.
.SH PLIKI
.TP  15
~/.dcrc
The commands in this file will be executed when \fIdc\fP is first run.
.PP
.SH USTERKI
.PP
Raporty o błędach można wysyłać do
.UR bug\-dc@gnu.org
.UE
.
.PP
.SH TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są:
Wojtek Kotwica <wkotwica@post.pl>
.
.PP
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach
licencji można uzyskać zapoznając się z
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License w wersji 3
.UE
lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
.PP
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy
dyskusyjnej
.MT manpages-pl-list@lists.sourceforge.net
.ME .
