dc (linux command)

Content

 

Data

License: GNU
Version number: (GNU bc 1.07.1) 1.4.1
Developer / owner: Free Software Foundation, Inc.

Short description:

Manual page and help for the dc linux command. Dc is a postfix desktop calculator for unlimited accuracy calculations that allows you to define and execute macros. It takes the input from the standard input; if you give it an argument, it interprets it as a file name and takes and executes the contents of those files, and then reads it from standard input. The output is the standard output, the errors are written to the standard error output.

 

 

Man page output

man dc
DC(1)                           General Commands Manual                           DC(1)

NÉV
       dc - tetszőleges pontosságú számológép

ÁTTEKINTÉS
       dc

LEÍRÁS
       A  dc egy korlátlan pontosságú számítások elvégzésére alkalmas fordított-lengyel
       (postfix) asztali számológép,  amely  lehetőséget  ad  makrók  definiálására  és
       végrehajtására.  A bemenetet a szabványos bemenetről veszi; ha argumentumot adsz
       meg neki, azt fájlnévként értelmezi és azon fájlok  tartalmát  veszi  és  hajtja
       végre,  majd  ezután  olvas  a  szabványos  bemenetről.  A  kimenet a szabványos
       kimenet, a hibák a szabványos hibakimenetre íródnak.

       A fordított-lengyel számológép a számokat egy veremben tárolja. Új szám bevitele
       esetén  a  szám  a  verem  tetejére kerül. A műveletek az argumentumukat a verem
       tetejéről veszik, majd az eredményt visszateszik a verembe.

       A bevitelhez a számot egyszerűen beírod, követheti opcionálisan tizedespont.   A
       hatványalak használata nem támogatott. Negatív számok beviteléhez a számot ``_''
       karakterrel kezdd. Az előjel nem  lehet  ``-'',  mivel  ez  a  kivonás  műveleti
       operátora.  Több  számot  egymástól  szóközzel  vagy új sorral elválasztva lehet
       bevinni, ezen karakterek nem parancsok.

KIÍRÓ PARANCSOK
       p      Kiírja a verem tetején levő számot a  verem  megváltoztatása  nélkül.   A
              szám után egy újsor karakter is kiíródik.

       P      Kiveszi  a  verem  tetejéről  a  számot,  kiírja,  és  nem ír utána újsor
              karaktert.

       f      Kiírja a verem teljes tartalmát anélkül, hogy bármit változtatna.   Akkor
              jó,  ha  teljesen  eltévedtél,  vagy  ki akarod találni, hogy egy parancs
              vajon mit csinált.

SZÁMÍTÁSOK
       +      Leveszi a verem két felső elemét,  összeadja  őket,  és  az  eredményt  a
              verembe helyezi. A pontosságot kizárólag az argumentumok értéke határozza
              meg.

       -      Leveszi a verem két felső elemét, az elsőt (ami  eredetileg  felül  volt)
              kivonja a másodikból, majd az eredményt a verembe helyezi.

       *      Leveszi a verem két felső elemét, összeszorozza őket, majd az eredményt a
              verembe helyezi. A tizedesjegyek számát az  aktuális  pontosságérték  (l.
              lentebb) határozza meg, és nem függ a szorzandóktól.

       /      Leveszi a verem két felső elemét, az elsőt elosztja a másodikkal, majd az
              eredményt a verembe helyezi.  A  tizedesjegyek  számát  a  pontosságérték
              határozza meg.

       %      Leveszi  a  verem  két felső elemét, a / által végzett osztás maradékát a
              verembe  helyezi.  Az  osztás  a   pontosságérték   által   meghatározott
              pontossággal  végződik  el,  és a maradék is ennek megfelelő számú jegyre
              számolódik ki.

       ~      Leveszi a verem két felső elemét, az elsőt elosztja a másodikkal. Először
              a  hányadost,  aztán a maradékot helyezi a verembe. Az osztásban használt
              tizedesjegyek értéke a pontosságértéktől függ. (A SdSn lnld/ LnLd% hatása
              hasonló, a hibakezelése más egy kicsit.)

       ^      Leveszi  a  verem  két  felső elemét, az elsőt (ami eredetilg felül volt)
              kitevőként, a másodikat alapként használva elvégzi a hatványozást.  Ha  a
              kitevőnek  van  törtrésze,  azt  figyelmen kívül hagyja. A pontosságérték
              határozza meg, hogy az eredmény hány tizedesjegyre számítódik ki.

       |      Törtkitevős hatványozást végez. Leveszi a verem felső három  elemét.   Az
              első  (ami  eredetileg  felül  volt) lesz a kitevő nevezője, ez nem lehet
              nulla, és egésznek kell lennie. A második a  kitevő  számlálója,  ez  nem
              lehet  negatív.  Ha  van  tizedesjegye,  azt  figyelmen  kívül hagyja.  A
              harmadik szám lesz a hatványozás alapja. A pontosságérték határozza  meg,
              hogy  az  eredmény  hány  tizedesjegyre  számítódik ki. Kis számok esetén
              hasonlít hozzá a Sm lble^ Lm% szekvencia,  de  a   ^-tól  eltérően  ez  a
              parancs nem alkalmazható tetszőlegesen nagy kitevőkre.

       v      Levesz  egy  elemet  a  veremről,  kiszámítja  a  négyzetgyökét,  majd az
              eredményt a verembe helyezi. A pontosságérték határozza  meg,  hogy  hány
              tizedesjegyre végződik el a számítás.

       A   legtöbb   számítás   eredményét  befolyásolja  a  k  paranccsal  beállítható
       pontosságérték. Ez alapértelmezésben nulla, ami azt jelenti, hogy  az  összeadás
       és a kivonás kivételével minden művelet erdménye egész lesz.

       A  % maradék-művelet kis magyarázatra szorul. Ha az argumentumai ``a'' és ``b'',
       akkor a művelet eredménye ``a - (b * (a / b))'', ahol  ``a  /  b''  az  aktuális
       pontosságérték szerint számítódik.

VEREMKARBANTARTÁS
       c      Kitörli a verem minden elemét, a verem üres lesz.

       d      A  verem tetején levő elemet megduplázza és a verem tetejére helyezi, így
              a ``4d*p'' eredménye 16.

       r      Megfordítja (kicseréli) a verem két felső elemét.

REGISZTEREK
       A dc 256 memóriaregisztert képes kezelni, mindegyikük neve egyetlen karakter.  A
       regiszterben   tárolható   és   később  újrafelhasználható  egy  szám  vagy  egy
       karakterlánc.

       sr     A verem tetején levő értéket leveszi és az r regiszterben eltárolja.

       lr     Az r regiszter tartalmát a verembe helyezi. Ez a művelet nem  változtatja
              meg az r regiszter tartalmát.

       Minden regiszternek megvan a saját verme, az aktuális regiszterérték van a verem
       tetején.

       Sr     A (fő) verem tetején levő értéket  leveszi  és  az  r  regiszter  vermébe
              helyezi. A regiszter előző értéke így elérhetetlen.

       Lr     Az  r regiszter verméből leveszi az elemet és a fő verembe helyezi. Ha az
              r regiszter vermében volt régebben valami  érték,  akkor  az  most  a  lr
              paranccsal elérhetővé válik.

PARAMÉTEREK
       A  dc  működését három paraméter befolyásolja: a pontosság, a beviteli alap és a
       kimeneti alap. A pontosság határozza meg, hogy  a  műveletek  eredményéből  hány
       tizedesjegy  maradjon  meg.  A beviteli alap mutatja meg, hogy a begépelt számok
       hányas számrendszerben vannak; minden  begépelt  szám  ebben  a  számrendszerben
       értelmeződik.   Számok   kiírásakor   a   számok   a   kimeneti   alap  szerinti
       számrendszerben íródnak ki.

       A beviteli és a kimeneti alapok  különböző  paraméterek,  nem  kell  feltétlenül
       egyenlőnek  lenniük; ez lehet hasznos és zavaró is.  A bemeneti alap legalább 2,
       legfeljebb  36  lehet.  A  kimeneti  alapnak  legalább  2-nek  kell  lennie.   A
       pontosságnak  nullának  vagy  nagyobbnak  kell lennie. A pontosság a beviteli és
       kimeneti alaptól függetlenül mindig tizedesjegyeket jelent.

       i      Leveszi a verem tetején levő számot és erre állítja a beviteli alapot.

       o      Leveszi a verem tetején levő számot és erre állítja a kimeneti alapot.

       k      Leveszi a verem tetején levő számot és erre állítja a pontosságot.

       I      Az aktuális beviteli alapot a verem tetejére helyezi.

       O      Az aktuális kimeneti alapot a verem tetejére helyezi.

       K      A pontosság aktuális értékét a verem tetejére helyezi.

KARAKTERLÁNCOK
       A dc képes karakterláncokat is kezelni. A  karakterláncokat  csak  tárolni  vagy
       makróként  végrehajtani  (azaz  a  tartalmuk dc parancsként értelmeződik) lehet.
       Karakterláncok tárolására minden regiszter és a verem is képes. Néhány  parancs,
       mint  például  az aritmetikai műveletek számokat várnak argumentumként, és hibát
       jeleznek,  ha  karakterláncot  találnak  helyette.  Más  parancsok   számot   és
       karakterláncot  is  elfogadnak;  ilyen  például  a  p  parancs,  ami mindegyiket
       elfogadja és a típusának megfelelő módon írja ki.

       [karakterek]
              A karakterek -et tartalmazó karakterláncot (azokat a karaktereket, amik [
              és  ]  karakterek  között  vannak)  tartalmazó  karakterláncot képez és a
              veremre helyezi. Például a [foo]P kiírja a foo szöveget és nem  ír  utána
              újsor karaktert.

       a      Leveszi   a  verem  legfelső  elemét.  Ha  ez  szám,  akkor  az  alacsony
              helyiértékű bájtját karakterré konvertálja és a verembe helyezi.   Ha  ez
              karakterlánc, akkor ennek első karakterét helyezi vissza a verembe.

       x      Leveszi  a  verem  legfelső  elemét  és  makróként  végrehajtja. Normális
              esetben ez az elem egy  karakterlánc;  ha  szám,  akkor  visszahelyezi  a
              verembe.  Például  a  [1p]x végrhajtja a 1p makrót, ami egy 1 -est tesz a
              verembe és új sorban kiírja az 1 -et.

       A makrókat leggyakrabban regiszterekben tároljuk; a [1p]sa az a regiszterbe tesz
       egy olyan makrót, ami egy 1 -est ír ki. A lax parancs hajtja végre ezt a makrót.

       >r     Leveszi  a  verem  két  felső  elemét,  feltételezi,  hogy  ezek  számok,
              összehasonlítja őket, és végrehajtja az r regiszterben lévő makrót, ha az
              eredetileg   a  verem  tetején  levő  szám  nagyobb.  Az  1  2>a  parancs
              végrehajtja az a regiszterben tárolt makrót, míg a 2 1>a parancs nem.

       <r     Hasonló, de akkor hajtja végre a makrót, ha az eredetileg a verem tetején
              levő szám kisebb.

       =r     Hasonló, de akkor hajtja végre a makrót, ha a két levett elem egyenlő.

       ?      Beolvas  egy  sort a terminálról és végrehajtja. Ezzel a paranccsal lehet
              felhasználói bevitelt kérni.

       q      Kilép a makróból és az azt hívó makróból is. Ha a legfelső szinten hajtod
              végre, a q parancs kilép a dc -ből.

       Q      Leveszi a verem legfelső elemét és ennyi szintet lép ki a makrókból.  A Q
              parancs soha nem lép ki a dc -ből.

ÁLLAPOTLEKÉRDEZÉS
       Z      Leveszi a verem tetején levő elemet, megszámolja  hány  jegyű  (ha  szám)
              vagy  hány  karakterből  áll  (ha  karakterlánc), és ezt a számot teszi a
              verembe.

       X      Leveszi a verem tetején levő elemet, megszámolja, hány tizedesjegye  van,
              majd ezt a számot teszi a verembe. Ha a levett elem karakterlánc, akkor 0
              -t tesz a verembe.

       z      A verembe teszi a  verem  aktuális  mélységét;  azt,  hogy  a  z  parancs
              végrehajtása előtt hány elem volt a veremben.

EGYÉB
       !      A sor többi részét mint rendszerparancsot futtatja.

       #      A sor többi részét megjegyzésként kezeli.

       :r     A  verem  két felső elemét leveszi. A második elemet az r tömbbe helyezi,
              amit az első elemmel indexel.

       ;r     Leveszi a verem felső  elemét  és  az  r  tömb  indexeként  használja.  A
              kiválasztott elem a verembe kerül.

MEGJEGYZÉSEK
       A  :  és  a  ;  tömbműveteket  általában  csak  a  bc hagyományos implementációi
       használják. (A GNU bc ezt tartalmazza, nem szükséges a futásához a dc. )

HIBÁK
       A hibákat e-mail-ben jelentsd a  bug-gnu-utils@prep.ai.mit.edu  címen.  A  levél
       tárgyában valahol legyen benne a ``dc'' szó.

MAGYAR FORDÍTÁS
       Tevesz Tamás <ice@rulez.org>

GNU Project                            1997-03-25                                 DC(1)

 

 

Help output

dc --help
Usage: dc [OPTION] [file ...]
  -e, --expression=EXPR    evaluate expression
  -f, --file=FILE          evaluate contents of file
  -h, --help               display this help and exit
  -V, --version            output version information and exit

Email bug reports to:  bug-dc@gnu.org .

 

Related Content

 

Tags