Provided by: manpages-pl_0.6-2_all bug

NAZWA

       dc - kalkulator dowolnej precyzji

SKŁADNIA

       dc [-V] [--version] [-h] [--help] [-e wyraż-skryptowe] [--expression= wyraż-skryptowe] [-f
       plik-skryptu] [--file= plik-skryptu] [plik...]

OPIS

        Uwaga! To tłumaczenie może być nieaktualne!

       Dokument ten opisuje dc w wersji 1.06, z listopada 2000.

       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.

       W  celu wprowadzenia liczby do dc wpisujemy cyfry z opcjonalną kropką dziesiętną. Nie jest
       rozpoznawana notacja wykładnicza.  Liczbę ujemną poprzedzamy znakiem  podkreślenia  ``_''.
       Nie  można  posłużyć  się  w  tym  celu znakiem ``-'' (minus), gdyż jest to dwuargumentowy
       operator odejmowania.  Dwie kolejne liczby wprowadzamy oddzielając je spacjami lub znakami
       nowej linii.  Nie mają one znaczenia jako polecenia.

OPCJE

       Dc można wywoływać z następującymi opcjami wiersza poleceń:

       -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.

       Jeżeli  po  przetworzeniu  powyższych  opcji  pozostaną  jeszcze  jakieś parametry wiersza
       poleceń, to są one interpretowane jako nazwy plików  wejściowych,  które  należy  wykonać.
       Nazwa - odnosi się do standardowego strumienia wejściowego.  Jeśli nie podano ani opcji -e
       ani żadnych plików, to polecenia do wykonania będą czytane ze standardowego wejścia.

Polecenia wypisywania

       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 Zdejmuje wartość z wierzchołka stosu.  Jeśli
              jest to łańcuch, to jest on po prostu wypisywany bez końcowego znaku nowej linii. W
              przeciwnym razie jest to  liczba,  a  część  całkowita  jej  wartości  bezwzględnej
              wypisywana  jest  jako  strumień bajtów "o podstawie (UCHAR_MAX+1)". Zakładając, że
              (UCHAR_MAX+1) wynosi 256 (jak to jest w większości maszyn  o  8-bitowych  bajtach),
              funkcję  tę realizuje także sekwencja KSK 0k1/ [_1*]sx d0>x [256~aPd0<x]dsxx sxLKk,
              z wyjątkiem skutku ubocznego, jakim jest nadpisanie wartości z rejestru x.

       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ń.

Arytmetyka

       +      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.

       *      Zdejmuje ze stosu dwie wartości, mnoży je i odkłada wynik  na  stos.   Liczba  cyfr
              ułamkowych  wyniku  jest  kontrolowana  przez  aktualną  wartość dokładności (patrz
              niżej) i liczby cyfr ułamkowych mnożonych wartości.

       /      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.

       %      Zdejmuje ze stosu dwie wartości, oblicza resztę z dzielenia, jakie byłoby  wykonane
              przez  /  i  odkłada wynik na stos.  Obliczona wartość jest tą samą, co otrzymana z
              sekwencji 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.

       |      Zdejmuje ze stosu trzy wartości i oblicza  potęgowanie  modulo  [od  tłum:  modular
              exponentiation == (a^b) mod c].
              Pierwsza  ze  zdjętych  wartości  używana  jest  jako  dzielnik operacji (reduction
              modulus).  Wartość ta musi być niezerowa i powinna  być  liczbą  całkowitą.   Druga
              używana  jest  jako  wykładnik  i  musi  być liczbą nieujemną, a jej część ułamkowa
              zostanie zignorowana.  Trzecia z  pobranych  ze  stosu  wartości  określa  podstawę
              potęgowania,  powinna  ona  być  całkowita.   Dla  małych liczb jest to zbliżone do
              sekwencji Sm^Lm%, ale, w odróżnieniu od ^, polecenie to działa  z  dowolnie  dużymi
              wykładnikami.

       v      Zdejmuje  ze stosu pojedynczą wartość, oblicza jej pierwiastek kwadratowy i odkłada
              go na stos.  Wartość dokładności określa liczbę cyfr ułamkowych wyniku.

       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.

       Operacja reszty % wymaga pewnego wyjaśnienia: zastosowana do  argumentów   ``a''  i  ``b''
       daje w wyniku ``a - (b * (a / b))'', gdzie ``a/b'' obliczane jest z bieżącą dokładnością.

Kontrola stosu

       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      Zamienia miejscami dwie górne wartości na stosie.

Rejestry

       dc udostępnia 256 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     Kopiuje  wartość  zawartą  w  rejestrze  r  i  odkłada  ją na stos.  Nie zmienia to
              zawartości 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.

Parametry

       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 oprócz pracy z liczbami może też  działać  na  łańcuchach  znakowych.   Łańcuchy  można
       jedynie  wypisywać  i wykonywać jako makra (co oznacza, że zawartość łańcucha przetwarzana
       jest jako polecenia dc).  Stos i wszystkie  rejestry  mogą  przechowywać  łańcuchy,  a  dc
       zawsze  wie,  czy  dany  obiekt  jest  łańcuchem  czy liczbą.  Niektóre z poleceń, jak np.
       operacje arytmetyczne, wymagają liczb jako swych argumentów  i  wyświetlają  błędy,  jeśli
       dostarczono  im  łańcuch.   Inne  akceptują  zarówno  liczby,  jak  i łańcuchy znakowe. Na
       przykład, polecenie p akceptuje oba rodzaje argumentów i wypisuje obiekt stosownie do jego
       typu.

       [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    Podobnie, ale wywołuje makro jeśli pierwotny wierzchołek  stosu  nie  jest  większy
              (jest mniejszy bądź równy) od liczby występującej pod nim.

       <r     Podobnie,  ale  wywołuje  makro  jeśli pierwotny wierzchołek stosu jest mniejszy od
              liczby występującej pod nim.  !<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     Podobnie, ale wywołuje makro, gdy obie zdjęte ze stosu liczby są równe.

       !=r    Podobnie, ale wywołuje makro, gdy obie zdjęte ze stosu liczby nie są równe.

       ?      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.

Informacja o stanie

       Z      Zdejmuje  wartość  ze stosu, oblicza liczbę jej cyfr (lub liczbę znaków, jeśli jest
              to łańcuch) i odkłada tę liczbę na stos.

       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.

Różne

       !      Uruchamia resztę wiersza  jako  polecenie  systemu.   Zauważ,  że  pierwszeństwo  w
              analizie  składni mają polecenia !<, != i !>, więc jeśli chcemy uruchomić polecenie
              systemu zaczynające się od <, > lub =, to po ! musimy dodać odstęp.

       #      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.   Zauważ,  że  każda  ze
              składowanych  na  stosie  instancji  rejestru  ma  swoją  własną,  skojarzoną z nią
              tablicę.  Zatem, 1 0:a 0Sa 2 0:a La 0;ap wypisze 1, gdyż 2  zostało  zapamiętane  w
              instancji 0:a, która została później odłożona na stos.

UWAGI

       Operacje tablicowe : oraz ; są zwykle używane wyłącznie przez tradycyjne implementacje bc.
       (Program bc w wersji GNU jest samowystarczalny i nie potrzebuje dc by działać.)

BŁĘDY

       Błędy proszę zgłaszać (w jęz.angielskim) na adres bug-dc@gnu.org.

INFORMACJE O TŁUMACZENIU

       Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia  Manuali  i  może
       nie  być  aktualne.  W  razie  zauważenia  różnic  między  powyższym opisem a rzeczywistym
       zachowaniem opisywanego programu lub  funkcji,  prosimy  o  zapoznanie  się  z  oryginalną
       (angielską) wersją strony podręcznika za pomocą polecenia:

              man --locale=C 1 dc

       Prosimy  o  pomoc  w  aktualizacji stron man - więcej informacji można znaleźć pod adresem
       http://sourceforge.net/projects/manpages-pl/.