dc(1) General Commands Manual dc(1) NAZWA dc - kalkulator dowolnej precyzji SKLADNIA dc [-V] [--version] [-h] [--help] [-e wyrazenie-skryptu] [--expression=wyrazenie-skryptu] [-f wyrazenie-pliku] [--file=wyrazenie-pliku] [plik ...] OPIS dc jest kalkulatorem pracujacym w odwrotnej notacji polskiej, obslugujacym arytmetyke nieograniczonej precyzji. Pozwala rowniez na definiowanie i wywolywanie makr. Zwykle dc czyta ze standardowego wejscia. Jesli uzyto argumentow polecenia dc, to sa one traktowane jak nazwy plikow. Zawartosc tych plikow jest odczytywana i wykonywana przez dc przed odczytem standardowego wejscia. Wszystkie zwykle wyniki kierowane sa na standardowe wyjscie; wszystkie komunikaty o bledach kierowane sa na standardowe wyjscie bledow. Kalkulator odwrotnej notacji polskiej przechowuje liczby na stosie. Wprowadzenie liczby odklada ja na stos. Operacje arytmetyczne pobieraja argumenty ze stosu i odkladaja na nim wyniki. To enter a number in dc, type the digits 0 to 9 and A through F to represent the values zero through fifteen, (regardless of the current input radix), and optionally including a single radix 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. OPCJE dc mozna wywolac z nastepujacymi opcjami wiersza polecen: -V --version Wypisuje numer wersji uruchomionego dc i informacje o prawach autorskich, a nastepnie konczy dzialanie. -h --help Wypisuje komunikat o sposobie wywolania, podajac w skrocie opcje wiersza polecen i adres, na ktory nalezy zglaszac bledy, a nastepnie konczy dzialanie. -e skrypt --expression=skrypt Dodaje polecenia ze skryptu do zestawu polecen, jakie maja byc wykonane podczas przetwarzania wejscia. -f plik-skryptu --file=plik-skryptu Dodaje polecenia zawarte w pliku-skryptu do zestawu polecen, jakie maja byc wykonane podczas przetwarzania wejscia. --max-recursion=depth Limit recursion to a depth of at most depth. (Mainly useful for debugging.) Jezeli po przetworzeniu powyzszych opcji pozostana jeszcze jakies parametry wiersza polecen, to sa one interpretowane jako nazwy plikow wejsciowych, ktore nalezy wykonac. Nazwa - odnosi sie do standardowego strumienia wejsciowego. Jesli nie podano plikow skryptow ani zadnych wyrazen, to polecenia do wykonania beda czytane ze standardowego wejscia. Polecenia wypisywania p Wypisuje wartosc z wierzcholka stosu, bez jego zmiany. Po wartosci wypisywany jest znak nowej linii. n Wypisuje wartosc z wierzcholka stosu, zdejmujac ja rownoczesnie ze stosu. Nie wypisuje po niej znaku nowej linii. P Pops off the value on top of the stack. If it is 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~Ssd0qaPlxx] 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 cala zawartosc stosu nie zmieniajac niczego. Jest polecenie przydatne w sytuacji, gdy sie pogubilismy lub chcemy sie zorientowac, jaki byl efekt pewnych polecen. Arytmetyka + Zdejmuje ze stosu dwie wartosci, dodaje je i odklada wynik na stos. Dokladnosc wyniku zalezy wylacznie od wartosci argumentow i jest wystarczajaco scisla. - Zdejmuje ze stosu dwie wartosci, odejmuje pierwsza zdjeta od drugiej i sklada wynik ponownie na stos. * Zdejmuje ze stosu dwie wartosci, mnozy je i odklada wynik na stos. Liczba cyfr ulamkowych zalezy od aktualnej wartosc dokladnosci i liczby cyfr ulamkowych w obu argumentach. / Pops two values, divides the second one popped by the first one popped, and pushes the result. The number of fraction digits is specified by the precision value. % Zdejmuje ze stosu dwie wartosci, oblicza reszte z dzielenia, jakie byloby wykonane przez / i odklada wynik na stos. Obliczona wartosc jest ta sama, co otrzymana z sekwencji Sd dld/ Ld*-. ~ Pops two values, divides the second one popped by the first one popped. The quotient is pushed first, and the remainder is pushed next. The number of fraction digits used in the division is specified by the precision value. (The sequence SdSn lnld/ LnLd% could also accomplish this function, with slightly different error checking.) ^ Zdejmuje ze stosu dwie wartosci i wykonuje potegowanie, poslugujac sie pierwsza zdjeta jako wykladnikiem, zas druga jako podstawa potegowania. Ulamkowa czesc wykladnika jest ignorowana. Wartosc dokladnosci okresla liczbe cyfr ulamkowych wyniku. | Zdejmuje ze stosu trzy wartosci i oblicza potegowanie modulo [od tlum: modular exponentiation == (a^b) mod c]. Pierwsza ze zdjetych wartosci uzywana jest jako dzielnik operacji (reduction modulus). Wartosc ta musi byc niezerowa i powinna byc liczba calkowita. Druga uzywana jest jako wykladnik i musi byc liczba nieujemna, a jej czesc ulamkowa zostanie zignorowana. Trzecia z pobranych ze stosu wartosci okresla podstawe potegowania, powinna ona byc calkowita. Dla malych liczb jest to zblizone do sekwencji Sm^Lm%, ale, w odroznieniu od ^, polecenie to dziala z dowolnie duzymi wykladnikami. v Zdejmuje ze stosu pojedyncza wartosc, oblicza jej pierwiastek kwadratowy i odklada go na stos. Maksymalna wartosc dokladnosci i dokladnosci argumentu sluzy do okreslenia liczby cyfr ulamkowych wyniku. Na wiekszosc operacji arytmetycznych wplywa ,,wartosc dokladnosci", ktora ustala sie za pomoca polecenia k. Domyslna wartoscia dokladnosci jest zero, co oznacza, ze wszystkie dzialania arytmetyczne z wyjatkiem dodawania i odejmowania daja wyniki calkowite. Kontrola stosu c Czysci stos, powoduje, ze bedzie on pusty. d Powiela wartosc na wierzcholku stosu, odkladajac na stos jej kopie. Zatem ,,4d*p" oblicza 4 podniesione do kwadratu i wypisuje wynik. r Zamienia miejscami dwie gorne wartosci na stosie (mozna to uczynic rowniez sekwencja SaSbLaLb). R Zdejmuje z wierzcholka stosu liczbe n. Cyklicznie rotuje n elementow z wierzcholka stosu na zaktualizowany stos. Jesli n jest dodatnie, kierunek rotacji spowoduje, ze najwyzszy element stosu stanie sie drugim elementem, jesli n jest ujemne, to kierunek rotacji spowoduje, ze najwyzszym elementem stosu stanie sie n-ty element liczac od gory stosu. Jesli stos ma glebokosc mniejsza niz n, to caly stos jest rotowany (w odpowiednim kierunku) bez zglaszania bledu. Rejestry dc udostepnia co najmniej 256 rejestrow pamieciowych, kazdy nazwany pojedynczym znakiem. W rejestrze mozna przechowac liczbe lub lancuch znakowy i pozniej je odtworzyc. sr Zdejmuje wartosc z wierzcholka stosu i zapisuje w rejestrze r. lr Kopiuje wartosc zawarta w rejestrze r i odklada ja na stos. Jesli rejestr jest niezainicjowany, pobierana jest wartosc 0. Nie zmienia to zawartosci r. Kazdy z rejestrow posiada rowniez swoj wlasny stos. Biezaca wartoscia rejestru jest wierzcholek stosu rejestru. Sr Zdejmuje wartosc z wierzcholka stosu (glownego) i odklada ja na stosie rejestru r. Poprzednia wartosc rejestru staje sie niedostepna. Lr Zdejmuje wartosc z wierzcholka stosu rejestru r i odklada ja na glownym stosie. Poprzednia wartosc stosu rejestru r, jesli byla takowa, jest teraz dostepna poprzez polecenie lr. Parametry dc posiada trzy parametry kontrolujace jego prace: dokladnosc, podstawe systemu pozycyjnego wejscia i podstawe wyjscia. Dokladnosc okresla liczbe cyfr dziesietnych, jaka bedzie zachowana w wyniku wiekszosci operacji arytmetycznych. Podstawa wejscia odpowiada za interpretacje wprowadzanych liczb; wszystkie wprowadzane liczby uzywaja tej podstawy. Podstawa wyjscia uzywana jest do wypisywania liczb. Podstawa wejscia i wyjscia sa odrebnymi parametrami; mozna spowodowac, ze beda rozne, co moze byc uzyteczne lub mylace. Podstawa wejscia musi byc liczba z zakresu od 2 do 16. Podstawa wyjscia musi wynosic co najmniej 2. Dokladnosc musi byc rowna zeru lub wieksza. Dokladnosc zawsze okreslana jest jako liczba cyfr dziesietnych, niezaleznie od biezacej podstawy wejscia czy wyjscia. i Zdejmuje wartosc z wierzcholka stosu i posluguje sie nia do ustawienia podstawy wejscia. o Zdejmuje wartosc z wierzcholka stosu i posluguje sie nia do ustawienia podstawy wyjscia. k Zdejmuje wartosc z wierzcholka stosu i posluguje sie nia do ustawienia dokladnosci. I Odklada biezaca wartosc podstawy wejscia na stosie. O Odklada biezaca wartosc podstawy wyjscia na stosie. K Odklada biezaca dokladnosc na stosie. Lancuchy znakowe dc oprocz pracy z liczbami moze tez dzialac, w ograniczonym zakresie, na lancuchach znakowych; lancuchy mozna jedynie wypisywac i wykonywac jako makra (co oznacza, ze zawartosc lancucha przetwarzana jest jako polecenia dc. Stos i wszystkie rejestry moga przechowywac lancuchy, a dc zawsze wie, czy dany obiekt jest lancuchem czy liczba. Niektore z polecen, jak np. operacje arytmetyczne, wymagaja liczb jako swych argumentow i wyswietlaja bledy, jesli dostarczono im lancuch. Inne akceptuja zarowno liczby, jak i lancuchy znakowe. Na przyklad, polecenie p akceptuje oba rodzaje argumentow i wypisuje obiekt stosownie do jego typu. [znaki] Tworzy lancuch zawierajacy znaki (zawarte pomiedzy nawiasami kwadratowymi [ i ]) i odklada go na stos. Na przyklad, [foo]P wypisuje znaki foo (bez zakonczenia znakiem nowej linii). a Zdejmowany jest wierzcholek stosu. Jezeli jest to liczba, to mlodszy bajt (low-order byte) tej liczby zamieniany jest na lancuch i odkladany na stos. W przeciwnym przypadku, wierzcholek stosu byl lancuchem, a z powrotem na stos odkladany jest pierwszy znak tego lancucha. Note: this command is being deprecated; see dc.info for details. If you use the a command and think it should remain a part of GNU dc, file a bug report requesting its retention. x Zdejmuje wartosc ze stosu i wykonuje ja jako makro. Zwykle powinien to byc lancuch znakowy. Jezeli 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 sa najczesciej przechowywane w rejestrach: [1p]sa skladuje makro do wypisania 1 w rejestrze a, zas lax wywoluje to makro. >r Zdejmuje dwie wartosci ze stosu i porownuje je, zakladajac, ze sa one liczbami, wykonujac zawartosc rejestru r jako makro, jesli pierwotny wierzcholek stosu jest wiekszy. Tak wiec, 1 2>a wywola zawartosc rejestru a zas 2 1>a nie wywola. !>r Podobnie, ale wywoluje makro jesli pierwotny wierzcholek stosu nie jest mniejszy (jest wiekszy badz rowny) od liczby wystepujacej pod nim. ma pierwszenstwo, dlatego jesli chce sie wykonac polecenie zaczynajace sie od <, = lub >, konieczne jest dodanie spacji po znaku !. # Interpretuje reszte wiersza jako komentarz. :r Zdejmuje ze stosu dwie gorne wartosci. Wartosc, ktora byla druga od gory stosu zostanie zachowana w tablicy r, indeksowanej wartoscia bylego wierzcholka stosu. ;r Zdejmuje wierzcholek stosu i posluguje sie nim jako indeksem tablicy r. Wybrana w ten sposob wartosc jest nastepnie odkladana na stos. Note that each stacked instance of a register consists of both its simple scalar value (whether a number or a string) and an array of the same name. Thus 1 0:x 0Sx 2 0:x Lx 0;xp will print 1, because the 2 was stored at index 0 in an instance of the array x which was later popped, re-exposing the instance of x that is holding a 1 at index 0. ZMIENNE SRODOWISKOWE DC_LINE_LENGTH Determines the column at which numeric output is split; the default value is 70. If set to "0" then line-splitting is disabled and each output line will be as long as necessary to represent the number. DC_PROMPT Sets a prompt to use when dc is expecting interactive input on stdin. USTERKI Raporty o bledach mozna wysylac do ZOBACZ TAKZE More complete documentation is available in dc.info, which may (depending on your local installation) be available by invoking "info dc". TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Wojtek Kotwica i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Projekt GNU 5 stycznia 2025 r. dc(1)