Provided by: manpages-pl_20060617-3_all bug

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.