File: dc.1

package info (click to toggle)
manpages-pl 1%3A0.7-1
  • links: PTS, VCS
  • area: main
  • in suites: buster, stretch
  • size: 22,276 kB
  • ctags: 7
  • sloc: sh: 112; makefile: 59; perl: 32
file content (450 lines) | stat: -rw-r--r-- 16,060 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
.\" {PTM/WK/0.1 /21-08-1999/"kalkulator dowolnej precyzji"}
.\" wersja 1.06, z listopada 2000.
.\"
.\" dc.1 - the *roff document processor source for the dc manual
.\"
.\" This file is part of GNU dc.
.\" Copyright (C) 1994, 1997, 1998, 2000 Free Software Foundation, Inc.
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; either version 2 of the License , or
.\" (at your option) any later version.
.\"
.\" This program is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with this program; see the file COPYING.  If not, write to:
.\"   The Free Software Foundation, Inc.
.\"   59 Temple Place, Suite 330
.\"   Boston, MA 02111 USA
.\"
.TH DC 1 "1997-03-25" "Projekt GNU"
.ds dc \fBdc\fP
.ds Dc \fBDc\fP
.SH NAZWA
dc - kalkulator dowolnej precyzji
.SH SKŁADNIA
.B dc
.RB [ -V ]
.RB [ --version ]
.RB [ -h ]
.RB [ --help ]
.RB [ -e
.IR wyraż-skryptowe ]
.RB [ --expression=
.IR wyraż-skryptowe ]
.RB [ -f
.IR plik-skryptu ]
.RI [ --file=
.RB plik-skryptu ]
.RI [ plik ...]
.SH OPIS
\fI Uwaga! To tłumaczenie może być nieaktualne!\fP
.PP
Dokument ten opisuje \fBdc\fR w wersji 1.06, z listopada 2000.
.PP
\fBdc\fR jest kalkulatorem pracującym w odwrotnej notacji polskiej,
obsługującym arytmetykę nieograniczonej precyzji.
Pozwala również na definiowanie i wywoływanie makr.
Zwykle \fBdc\fR czyta ze standardowego wejścia. Jeśli użyto argumentów
polecenia \fBdc\fR, to są one traktowane jak nazwy plików. Zawartość tych
plików jest odczytywana i wykonywana przez \fBdc\fR 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
W celu wprowadzenia liczby do \fBdc\fR 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.
.SH OPCJE
\*(Dc można wywoływać z następującymi opcjami wiersza poleceń:
.TP
.B -V
.TP
.B --version
Wypisuje numer wersji uruchomionego \*(dc i informację o prawach autorskich,
a następnie kończy działanie.
.TP
.B -h
.TP
.B --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.
.TP
.B -e \fIskrypt\fP
.TP
.BI --expression= skrypt
Dodaje polecenia ze
.I skryptu
do zestawu poleceń, jakie mają być wykonane podczas przetwarzania wejścia.
.TP
.B -f \fIplik-skryptu\fP
.TP
.BI --file= plik-skryptu
Dodaje polecenia zawarte w
.I pliku-skryptu
do zestawu poleceń, jakie mają być wykonane podczas przetwarzania wejścia.
.PP
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 \fB-\fP odnosi się do standardowego strumienia
wejściowego.  Jeśli nie podano ani opcji \fB-e\fP ani żadnych plików, to
polecenia do wykonania będą czytane ze standardowego wejścia.
.PD
.SH Polecenia wypisywania
.TP
.B p
Wypisuje wartość z wierzchołka stosu, bez jego zmiany. Po wartości wypisywany
jest znak nowej linii.
.TP
.B n
Wypisuje wartość z wierzchołka stosu, zdejmując ją równocześnie ze stosu.
Nie wypisuje po niej znaku nowej linii.
.B 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 \fBKSK 0k1/ [_1*]sx d0>x [256~aPd0<x]dsxx sxLKk\fP, z wyjątkiem
skutku ubocznego, jakim jest nadpisanie wartości z rejestru x.
.TP
.B f
Wypisuje całą zawartość stosu
.ig
i zawartość wszystkich rejestrów,
..
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
.B +
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
.B -
Zdejmuje ze stosu dwie wartości, odejmuje pierwszą zdjętą od drugiej
i składa wynik ponownie na stos.
.TP
.B *
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.
.TP
.B /
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
.B %
Zdejmuje ze stosu dwie wartości, oblicza resztę z dzielenia, jakie byłoby
wykonane przez \fB/\fR i odkłada wynik na stos.
Obliczona wartość jest tą samą, co otrzymana z sekwencji \fBSd dld/ Ld*-\fP.
.TP
.B ~
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
.B ^
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
.B |
Zdejmuje ze stosu trzy wartości i oblicza potęgowanie modulo
[od tłum: modular exponentiation == (a^b) mod c].
.br
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 \fBSm^Lm%\fP, ale,
w odróżnieniu od \fB^\fP, polecenie to działa z dowolnie dużymi wykładnikami.
.TP
.B 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.
.PP
Na większość operacji arytmetycznych wpływa ``wartość dokładności'', którą
ustala się za pomocą polecenia \fBk\fR.
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.
.PP
Operacja reszty
.B %
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ą.
.SH Kontrola stosu
.TP
.B c
Czyści stos, powoduje, że będzie on pusty.
.TP
.B 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.
.TP
.B r
Zamienia miejscami dwie górne wartości na stosie.
.SH Rejestry
\fBdc\fR 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ć.
.TP
.BI s r
Zdejmuje wartość z wierzchołka stosu i zapisuje w rejestrze \fIr\fR.
.TP
.BI l r
Kopiuje wartość zawartą w rejestrze \fIr\fR i odkłada ją na stos.
Nie zmienia to zawartości \fIr\fR.
.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
.BI S r
Zdejmuje wartość z wierzchołka stosu (głównego) i odkłada ją na stosie
rejestru \fIr\fR. Poprzednia wartość rejestru staje się niedostępna.
.TP
.BI L r
Zdejmuje wartość z wierzchołka stosu rejestru \fIr\fR i odkłada ją
na głównym stosie. Poprzednia wartość stosu rejestru \fIr\fR,
jeśli była takowa, jest teraz dostępna poprzez polecenie \fBl\fIr\fR.
.ig
.PP
Polecenie
.B f
wypisuje listę wszystkich rejestrów zawierających przechowywane wartości,
razem z tymi zawartościami. Wypisywana jest tylko bieżąca zawartość każdego
z rejestrów (wierzchołek jego stosu).
..
.SH Parametry
\fBdc\fR 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
.B i
Zdejmuje wartość z wierzchołka stosu i posługuje się nią do ustawienia
podstawy wejścia.
.TP
.B o
Zdejmuje wartość z wierzchołka stosu i posługuje się nią do ustawienia
podstawy wyjścia.
.TP
.B k
Zdejmuje wartość z wierzchołka stosu i posługuje się nią do ustawienia
dokładności.
.TP
.B I
Odkłada bieżącą wartość podstawy wejścia na stosie.
.TP
.B O
Odkłada bieżącą wartość podstawy wyjścia na stosie.
.TP
.B K
Odkłada bieżącą dokładność na stosie.
.SH Łańcuchy znakowe
.PP
\fBdc\fR 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 \fBdc\fR).
Stos i wszystkie rejestry mogą przechowywać łańcuchy, a \fBdc\fR 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
.B p
akceptuje oba rodzaje argumentów i wypisuje obiekt stosownie do jego typu.
.TP
.BI [ znaki ]
Tworzy łańcuch zawierający
.I znaki
(zawarte pomiędzy nawiasami kwadratowymi \fB[\fR i \fB]\fR)
i odkłada go na stos.
Na przykład,
.B [foo]P
wypisuje znaki
.B foo
(bez zakończenia znakiem nowej linii).
.TP
.B 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.
.TP
.B 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,
.B [1p]x
wykonuje makro
.BR 1p ,
które odkłada
.B 1
na stosie i wypisuje
.B 1
w osobnym wierszu.
.PP
Makra są najczęściej przechowywane w rejestrach:
.B [1p]sa
składuje makro do wypisania
.B 1
w rejestrze
.BR a ,
zaś
.B lax
wywołuje to makro.
.TP
.BI > r
Zdejmuje dwie wartości ze stosu i porównuje je, zakładając, że są one liczbami,
wykonując zawartość rejestru
.I r
jako makro, jeśli pierwotny wierzchołek stosu jest większy.
Tak więc,
.B 1 2>a
wywoła zawartość rejestru
.B a
zaś
.B 2 1>a
nie wywoła.
.TP
.BI !> 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.
.TP
.BI < r
Podobnie, ale wywołuje makro jeśli pierwotny wierzchołek stosu jest mniejszy
od liczby występującej pod nim.
.BI !< 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.
.TP
.BI = r
Podobnie, ale wywołuje makro, gdy obie zdjęte ze stosu liczby są równe.
.TP
.BI != r
Podobnie, ale wywołuje makro, gdy obie zdjęte ze stosu liczby nie są równe.
.ig
Jest to również poprawna forma sprawdzenia równości dwu łańcuchów.
..
.TP
.B ?
Czyta wiersz z terminala i wykonuje go. Polecenie to umożliwia makru
pobieranie danych od użytkownika.
.TP
.B 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 \fBdc\fR.
.TP
.B Q
Zdejmuje ze stosu wartość i używa jej jako liczby poziomów wykonania makr,
jakie mają zostać zakończone.
Tak więc,
.B 3Q
kończy pracę trzech poziomów makr.
Polecenie
.B Q
nigdy nie powoduje zakończenia pracy \fBdc\fR.
.SH Informacja o stanie
.TP
.B 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.
.TP
.B 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
.\" -1.
0.
.TP
.B z
Odkłada na stos bieżącą wysokość stosu: liczbę obiektów na stosie przed
wykonaniem polecenia \fBz\fR.
.SH Różne
.TP
.B !
Uruchamia resztę wiersza jako polecenie systemu.
Zauważ, że pierwszeństwo w analizie składni mają polecenia \fB!<\fP,
\fB!=\fP i \fB!>\fP, więc jeśli chcemy uruchomić polecenie systemu
zaczynające się od \fB<\fP, \fB>\fP lub \fB=\fP, to po \fB!\fP musimy
dodać odstęp.
.TP
.B #
Interpretuje resztę wiersza jako komentarz.
.TP
.BI : r
Zdejmuje ze stosu dwie górne wartości. Wartość, która była drugą od góry
stosu zostanie zachowana w tablicy
.IR r ,
indeksowanej wartością byłego wierzchołka stosu.
.TP
.BI ; r
Zdejmuje wierzchołek stosu i posługuje się nim jako indeksem tablicy
.IR 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, \fB1 0:a 0Sa 2 0:a La 0;ap\fP wypisze 1, gdyż 2 zostało zapamiętane
w instancji 0:a, która została później odłożona na stos.
.SH UWAGI
Operacje tablicowe
.B :
oraz
.B ;
są zwykle używane wyłącznie przez tradycyjne implementacje \fBbc\fR.
(Program
.B bc
w wersji GNU jest samowystarczalny i nie potrzebuje \fBdc\fR by działać.)
.SH BŁĘDY
Błędy proszę zgłaszać (w jęz.angielskim) na adres
.BR bug-dc@gnu.org .
.SH "INFORMACJE O TŁUMACZENIU"
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i 
\fImoże nie być aktualne\fR. 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:
.IP
man \-\-locale=C 1 dc
.PP
Prosimy o pomoc w aktualizacji stron man \- więcej informacji można znaleźć pod
adresem http://sourceforge.net/projects/manpages\-pl/.