Provided by: manpages-ro_4.28.0-2_all 

NUME
dc - un calculator cu precizie arbitrară (la alegere)
SINOPSIS
dc [-V] [--version] [-h] [--help]
[-e expresie-script] [--expression=expresie-script]
[-f fișier-script] [--file=fișier-script]
[fișier ...]
DESCRIERE
dc este un calculator de birou cu notație poloneză inversă (postfixată), care acceptă aritmetică de
precizie nelimitată. De asemenea, vă permite să definiți și să apelați macrocomenzi. În mod normal, dc
citește de la intrarea standard; dacă i se dau argumente de comandă, acestea sunt nume de fișiere, iar dc
citește și execută conținutul fișierelor înainte de a citi de la intrarea standard. Toate ieșirile
normale se trimit la ieșirea standard; toate ieșirile de eroare se trimit la ieșirea de eroare standard.
Un calculator cu notație inversă (postfixată) stochează numerele într-o stivă. Introducerea unui număr îl
împinge pe stivă. Operațiile aritmetice scot argumentele din stivă și împing rezultatele.
Pentru a introduce un număr în dc, introduceți cifrele (folosind literele majuscule de la A la F ca
„cifre” atunci când lucrați cu baze de intrare mai mari de zece), cu un punct zecimal opțional. Notația
exponențială nu este acceptată. Pentru a introduce un număr negativ, începeți numărul cu „_”. „-” nu
poate fi utilizat în acest scop, deoarece este un operator binar pentru scădere în schimb. Pentru a
introduce două numere succesive, separați-le cu spații sau linii noi. Acestea nu au nicio semnificație
drept comenzi.
OPȚIUNI
dc poate fi apelat cu următoarele opțiuni de linie de comandă:
-V
--version
Afișează versiunea de dc care este rulată și o notificare privind drepturile de autor, apoi iese.
-h
--help Afișează un mesaj de utilizare care rezumă pe scurt aceste opțiuni din linia de comandă și adresa
de raportare a erorilor, apoi iese.
-e script
--expression=script
Adaugă comenzile din script la setul de comenzi care urmează să fie executate în timpul procesării
datelor de intrare.
-f fișier-script
--file=fișier-script
Adaugă comenzile conținute în fișierul fișier-script la setul de comenzi care urmează să fie
executate în timpul procesării datelor de intrare.
Dacă după procesarea celor de mai sus rămân parametri de linie de comandă, aceștia sunt interpretați ca
fiind numele fișierelor de intrare care urmează să fie procesate. Un nume de fișier - se referă la fluxul
de intrare standard. Intrarea standard va fi procesată dacă nu sunt specificate fișiere de script sau
expresii.
Comenzi de imprimare
p Imprimă valoarea din partea de sus a stivei, fără a modifica stiva. După valoare se imprimă o
linie nouă.
n Imprimă valoarea din partea de sus a stivei, o înlătură și nu imprimă o linie nouă după.
P Afișează valoarea din partea de sus a stivei. Dacă este un șir de caractere, acesta este pur și
simplu afișat fără o linie nouă la sfârșit. În caz contrar, este un număr, iar partea întreagă a
valorii sale absolute este imprimată sub forma unui flux de octeți „base (UCHAR_MAX+1)”.
Presupunând că (UCHAR_MAX+1) este 256 (așa cum este pe majoritatea mașinilor cu octeți pe 8 biți),
secvența KSK0k1/_1Ss [ls*]Sxd0>x [256~Ssd0<x]dsxxsx[q]Sq[Lsd0>qaPlxx] dsxxsx0sqLqsxLxLxLK+k ar
putea, de asemenea, îndeplini această funcție; (o mare parte din complexitatea codului nativ-dc de
mai sus se datorează ~ calculării caracterelor în sens invers și dorinței de a se asigura că toate
registrele ajung înapoi în starea lor inițială).
f Imprimă întregul conținut al stivei fără a modifica nimic. Aceasta este o comandă bună de utilizat
dacă vă pierdeți sau doriți să vă dați seama care a fost efectul unei comenzi.
Aritmetică
+ Extrage două valori din stivă, le adună și afișează rezultatul. Precizia rezultatului este
determinată doar de valorile argumentelor și este suficientă pentru a fi exactă.
- Extrage două valori, scade prima valoare extrasă din cea de-a doua valoare extrasă și afișează
rezultatul.
* Extrage două valori, le înmulțește și afișează rezultatul. Numărul de cifre de fracție din
rezultat depinde de valoarea curentă a preciziei și de numărul de cifre de fracție din cele două
argumente.
/ Extrage două valori, împarte a doua valoare extrasă din prima valoare extrasă și afișează
rezultatul. Numărul de cifre ale fracției este specificat de valoarea preciziei.
% Extrage două valori, calculează restul împărțirii pe care ar trebui să o facă comanda / și îl
afișează. Valoarea calculată este aceeași cu cea calculată de secvența Sd dld/ Ld*- .
~ Extrage două valori, împarte a doua valoare extrasă din prima valoare extrasă. Câtul este afișat
mai întâi, iar restul este afișat în continuare. Numărul de cifre ale fracției utilizate în
împărțire este specificat de valoarea de precizie; (secvența SdSn lnld/ LnLd% ar putea, de
asemenea, îndeplini această funcție, cu o verificare a erorilor un pic diferită).
^ Extrage două valori și le multiplică prin exponenți, folosind prima valoare extrasă ca exponent și
a doua ca bază. Partea de fracție a exponentului este ignorată. Valoarea de precizie specifică
numărul de cifre de fracție din rezultat.
| Extrage trei valori și calculează o multiplicare exponențială modulară.. Prima valoare extrasă
este utilizată ca modul de reducere; această valoare trebuie să fie un număr diferit de zero și
trebuie să fie un număr întreg. A doua valoare extrasă este utilizată ca exponent; această valoare
trebuie să fie un număr nenegativ, iar orice parte fracționară a acestui exponent va fi ignorată.
A treia valoare extrasă este baza care va fi multiplicată exponențial; aceasta trebuie să fie un
număr întreg. Pentru numere întregi mici, acest lucru este ca și secvența Sm^Lm%, dar, spre
deosebire de ^, această comandă va funcționa cu exponenți oricât de mari.
v Extrage o valoare, calculează rădăcina pătrată a acesteia și o afișează. Maximul dintre valoarea
de precizie și precizia argumentului este utilizat pentru a determina numărul de cifre de fracție
din rezultat.
Majoritatea operațiilor aritmetice sunt afectate de „valoarea de precizie”, pe care o puteți stabili cu
ajutorul comenzii k. Valoarea implicită a preciziei este zero, ceea ce înseamnă că toate operațiile
aritmetice, cu excepția adunării și a scăderii, produc rezultate întregi.
Controlul stivei
c Șterge stiva, lăsând-o goală.
d Duplică valoarea din partea de sus a stivei, introducând o altă copie a acesteia. Astfel, „4d*p”
calculează 4 la pătrat și afișează rezultatul.
r Inversează ordinea (interschimbă) primele două valori din stivă; (acest lucru poate fi realizat și
cu secvența SaSbLaLb.)
R Extrage partea de sus a stivei sub forma unui număr întreg n. Rotește ciclic elementele din partea
de sus n a stivei actualizate. Dacă n este pozitiv, atunci direcția de rotație va face ca
elementul cel mai de sus să fie al doilea din vârf; dacă n este negativ, atunci rotația va face ca
elementul cel mai de sus să fie al n-lea element din vârf. Dacă adâncimea stivei este mai mică
decât n, atunci întreaga stivă este rotită (în direcția corespunzătoare), fără a fi raportată
nicio eroare.
Registre
dc oferă cel puțin 256 de registre de memorie, fiecare fiind denumit cu un singur caracter. Puteți stoca
un număr sau un șir de caractere într-un registru și îl puteți prelua ulterior.
sr Extrage valoarea din partea de sus a stivei și o stochează în registrul r.
lr Copiază valoarea din registrul r și o introduce în stivă. Valoarea 0 este recuperată dacă
registrul este neinițializat. Acest lucru nu modifică conținutul lui r.
Fiecare registru conține, de asemenea, propria sa stivă. Valoarea curentă a registrului reprezintă partea
superioară a stivei registrului.
Sr Extrage valoarea din partea de sus a stivei (principale) și o introduce în stiva registrului r.
Valoarea anterioară a registrului devine inaccesibilă.
Lr Extrage valoarea din partea de sus a stivei registrului r și o introduce în stiva principală.
Valoarea anterioară din stiva registrului r, dacă există, este acum accesibilă prin intermediul
comenzii lr.
Parametrii
dc are trei parametri care îi controlează funcționarea: precizia, baza de intrare și baza de ieșire.
Precizia specifică numărul de cifre de fracție care trebuie păstrate în rezultatul majorității
operațiilor aritmetice. Baza de intrare controlează interpretarea numerelor introduse; toate numerele
introduse utilizează această bază. Baza de ieșire este utilizată pentru imprimarea numerelor.
Bazele de intrare și de ieșire sunt parametri separați; le puteți face inegale, ceea ce poate fi util sau
confuz. Baza de intrare trebuie să fie cuprinsă între 2 și 16 inclusiv. Baza de ieșire trebuie să fie cel
puțin 2. Precizia trebuie să fie zero sau mai mare. Precizia se măsoară întotdeauna în cifre zecimale,
indiferent de baza curentă de intrare sau de ieșire.
i Extrage valoarea din partea de sus a stivei și o utilizează pentru a stabili baza de intrare.
o Extrage valoarea din partea de sus a stivei și o utilizează pentru a stabili baza de ieșire.
k Extrage valoarea din partea de sus a stivei și o utilizează pentru a stabili precizia.
I Introduce în stivă baza de intrare curentă.
O Introduce în stivă baza de ieșire curentă.
K Introduce precizia curentă în stivă.
Șiruri
dc are o capacitate limitată de a opera cu șiruri de caractere, precum și cu numere; singurele lucruri pe
care le puteți face cu șirurile de caractere sunt imprimarea lor și executarea lor ca macro-uri (ceea ce
înseamnă că conținutul șirului de caractere este procesat ca fiind comenzi dc)). Toate registrele și
stiva pot conține șiruri de caractere, iar dc știe întotdeauna dacă orice obiect dat este un șir de
caractere sau un număr. Unele comenzi, cum ar fi operațiile aritmetice, cer numere ca argumente și
afișează erori în cazul în care primesc șiruri de caractere. Alte comenzi pot accepta fie un număr, fie
un șir de caractere; de exemplu, comanda p poate accepta oricare dintre acestea și afișează obiectul în
funcție de tipul său.
[caractere]
Creează un șir de caractere care conține caractere (cuprins între caracterele pereche [ și ]) și
îl introduce în stivă. De exemplu, [foo]P imprimă caracterele foo (fără linie nouă).
a Partea de sus a stivei este extrasă. Dacă a fost un număr, atunci octetul de rang inferior al
acestui număr este convertit într-un șir de caractere și introdus în stivă. În caz contrar, partea
de sus a stivei era un șir de caractere, iar primul caracter al acelui șir este introdus înapoi.
x Scoate o valoare din stivă și o execută ca o macrocomandă. În mod normal, ar trebui să fie un șir
de caractere; dacă este un număr, acesta este pur și simplu reintrodus în stivă. De exemplu, [1p]x
execută macrocomanda 1p care introduce 1 în stivă și imprimă 1 pe o linie separată.
Macrocomenzile sunt cel mai adesea stocate în registre; [1p]sa stochează o macrocomandă pentru a imprima
1 în registrul a, iar lax invocă această macrocomandă.
>r Extrage două valori din stivă și le compară, presupunând că sunt numere, executând conținutul
registrului r ca o macrocomandă dacă valoarea inițială din partea de sus a stivei este mai mare.
Astfel, 1 2>a va invoca conținutul registrului a, iar 2 1>a nu o va face.
!>r Similar, dar invocă macrocomanda în cazul în care numărul inițial din partea de sus a stivei nu
este mai mare decât (mai mic sau egal cu) cel ce a fost al doilea în partea de sus a stivei.
<r Similar, dar invocă macrocomanda dacă numărul inițial din partea de sus a stivei este mai mic.
!<r Similar, dar invocă macrocomanda în cazul în care numărul inițial din partea de sus al stivei nu
este mai mic decât (mai mare sau egal cu) cel ce a fost al doilea în partea de sus a stivei.
=r Similar, dar invocă macrocomanda dacă cele două numere extrase sunt egale.
!=r Similar, dar invocă macrocomanda dacă cele două numere extrase nu sunt egale.
? Citește o linie din terminal și o execută. Această comandă permite unei macrocomenzi să solicite
informații de la utilizator.
q iese dintr-o macrocomandă și, de asemenea, din macrocomanda care a invocat -o. Dacă este apelată
de la nivelul superior sau de la o macrocomandă care a fost apelată direct de la nivelul superior,
comanda q va determina dc să iasă.
Q Extrage o valoare din stivă și o utilizează ca număr de niveluri de execuție a macrocomenzii care
trebuie să fie abandonate. Astfel, 3Q iese de pe trei niveluri. Comanda Q nu va determina
niciodată ieșirea lui dc.
Consultare de stare
Z Extrage o valoare din stivă, calculează numărul de cifre zecimale pe care le are (sau numărul de
caractere, dacă este un șir de caractere) și introduce acest număr. Numărătoarea cifrelor pentru
un număr nu include zerourile de început, chiar dacă acestea apar în dreapta punctului rădăcină
(virgulei).
X Extrage o valoare din stivă, calculează numărul de cifre de fracție pe care le are și introduce
acest număr. În cazul unui șir de caractere, valoarea introdusă este 0.
z Introduce adâncimea curentă a stivei: numărul de obiecte de pe stivă înainte de executarea
comenzii z.
Diverse
! Va rula restul liniei ca o comandă de sistem. Rețineți că analizarea comenzilor !<, != și !> are
prioritate, astfel încât, dacă doriți să executați o comandă care începe cu <, = sau >, va trebui
să adăugați un spațiu după !.
# Va interpreta restul liniei ca fiind un comentariu.
:r Va extrage primele două valori din stivă. A doua valoare veche din vârf va fi stocată în matricea
r, indexată cu vechea valoare din vârful stivei.
;r Extrage partea de sus a stivei și o utilizează ca index în matricea r. Valoarea selectată este
apoi introdusă în stivă.
Rețineți că fiecare instanță stivuită a unui registru are propria matrice asociată. Astfel, 1 0:a 0Sa 2
0:a La 0;ap va afișa 1, deoarece 2 a fost stocat într-o instanță a lui 0:a care a fost ulterior extrasă.
FIȘIERE
~/.dcrc Comenzile din acest fișier vor fi executate atunci când dc este rulat pentru prima dată.
ERORI
Trimiteți rapoartele de erori prin e-mail la bug-dc@gnu.org.
TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu
<remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o
versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO
RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
ro@lists.sourceforge.net.
Proiectul GNU 22 mai 2008 dc(1)