Provided by: manpages-fi_4.27.0-1_all bug

NIMI

       dc - laskin, jolla on rajoittamaton laskentatarkkuus

YLEISKATSAUS

       dc [-V] [--version] [-h] [--help]
          [-e scriptexpression] [--expression=scriptexpression]
          [-f scriptfile] [--file=scriptfile]
          [file ...]

KUVAUS

       dc   on  “käänteistä  puolalaista”  laskentajärjestystä  käyttävä  pöytälaskin,  jolla  on  rajoittamaton
       laskentatarkkuus.  Se sallii myös makrojen määrittelyn ja kutsun.  Normaalisti dc lukee vakiosyöttöä; jos
       sille annetaan komentoriviargumentteja, ne ovat tiedostonimiä,  ja  dc  lukee  ja  suorittaa  tiedostojen
       sisällön  ennen  kuin  se  lukee vakiosyötöstä.  Kaikki normaali tulostus menee vakiotulostimeen.  Kaikki
       virhetulostus menee virhetulostimeen.

       “Käänteistä puolalaista” käyttävä laskin  tallettaa  luvut  pinoon.   Syötetty  luku  työnnetään  pinoon.
       Laskutoimitukset ottavat argumentit pinosta ja työntävät tulokset pinoon.

       To  enter  a number in dc, type the digits (using upper case letters A through F as "digits" when working
       with input bases greater than ten),  with  an  optional  decimal  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.

VALITSIMET

       dc may be invoked with the following command-line options:

       -V

       --version
              Print out the version of dc that is being run and a copyright notice, then exit.

       -h

       --help Print  a  usage  message  briefly  summarizing  these  command-line  options and the bug-reporting
              address, then exit.

       -e skripti

       --expression=skripti
              Add the commands in script to the set of commands to be run while processing the input.

       -f skriptitiedosto

       --file=skriptitiedosto
              Add the commands contained in the file script-file  to  the  set  of  commands  to  be  run  while
              processing the input.

       If any command-line parameters remain after processing the above, these parameters are interpreted as the
       names  of  input  files  to  be  processed.   A  file name of - refers to the standard input stream.  The
       standard input will processed if no script files or expressions are specified.

Tulostuskomennot

       p      Tulostaa pinon päällimmäisen arvon muuttamatta pinoa.  Arvon jälkeen tulostetaan rivinvaihto.

       n      Prints the value on the top of the stack, popping it off, and does not print a newline after.

       P      Pops off the value on top of the stack.  If it it  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~Ssd0<x]dsxxsx[q]Sq[Lsd0>qaPlxx] 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      Tulostaa pinon koko sisällön muuttamatta mitään.  Tämä on hyvä komento, jos  olet  eksyksissä  tai
              haluat tietää, mikä jonkin komennon vaikutus oli.

Laskutoimitukset

       +      Ottaa  kaksi  arvoa  pinosta,  laskee  ne  yhteen ja työntää tuloksen pinoon.  Tuloksen tarkkuuden
              määrää vain argumenttien arvot ja se on riittävän suuri antamaan eksaktin tuloksen.

       -      Ottaa kaksi arvoa pinosta, vähentää ensin otetun toiseksi otetusta ja työntää tuloksen pinoon.

       *      Ottaa kaksi arvoa pinosta, kertoo ne keskenään ja työntää tuloksen pinoon.   Tuloksen  desimaalien
              lukumäärää kontrolloi käypä tarkkuusarvo (katso alempana), eikä se riipu kerrottavien arvoista.

       /      Ottaa  kaksi  arvoa  pinosta,  jakaa  toiseksi  otetun  ensin otetulla ja työntää tuloksen pinoon.
              Desimaalien lukumäärä riippuu tarkkuusarvosta.

       %      Ottaa kaksi arvoa pinosta, laskee jakojäännöksen  komennolla  /  suoritettavasta  jakolaskusta  ja
              työntää  sen pinoon. Jakolasku tehdään niin monella desimaalilla kuin tarkkuusarvo määrittelee, ja
              jakojäännös lasketaan yhtä monella desimaalilla.

       ~      Ottaa kaksi arvoa pinosta, jakaa toiseksi otetun arvon ensiksi otetulla. Osamäärä työnnetään ensin
              pinoon ja jakojäännös seuraavaksi.  Tarkkuusarvo määrittelee jakolaskussa käytettyjen  desimaalien
              lukumäärän.  (Jono  SdSn  lnld/ LnLd% voi myös toteuttaa tämän funktion, virhetarkistuksen ollessa
              hiukan erilainen.)

       ^      Ottaa kaksi arvoa pinosta ja tekee potenssiin korotuksen, jossa ensin otettu arvo  on  eksponentti
              ja   toiseksi  otettu  on  kantaluku.  Eksponentin  mahdollisia  desimaaleja  ei  oteta  huomioon.
              Tarkkuusarvo määrittelee pinoon työnnettävän tuloksen desimaalien lukumäärän.

       |      Ottaa kolme arvoa pinosta ja  laskee  modulaarisen  potenssiin  korotuksen.   Ensimmäinen  pinosta
              otettu  arvo on reduktiomodulus, jonka täytyy olla nollasta poikkeava ja tulisi olla kokonaisluku.
              Toista pinosta otettua arvoa käytetään eksponenttina; sen tulee olla ei-negatiivinen luku  ja  sen
              desimaaliosaa  ei  oteta  huomioon.  Kolmas  pinosta  otettu  arvo  on  kantaluku, joka korotetaan
              potenssiin. Tarkkuusarvo määrää tuloksen desimaalien lukumäärän. Pienillä luvuilla  tämä  on  kuin
              jono   Sm   lble^   Lm%,  mutta  toisin  kuin  ^,  tämä  komento  toimii  mielivaltaisen  suurilla
              eksponenteilla.

       v      Pops one value, computes its square root, and pushes that.  The maximum of the precision value and
              the precision of the argument is used to determine the number of fraction digits in the result.

       Useimpiin laskutoimituksiin vaikuttaa “tarkkuusarvo”, jonka voit asettaa komennolla k . Oletustarkkuus on
       nolla, mikä tarkoittaa sitä, että  kaikki  laskutoimitukset  yhteen-  ja  vähennyslaskua  lukuunottamatta
       antavat tulokseksi kokonaisluvun.

Pinon hallinta

       c      Clears the stack, rendering it empty.

       d      Tekee  pinon  päällimmäisestä arvosta kaksoiskappaleen ja työntää sen pinoon.  Siten “4d*p” laskee
              luvun 4 neliön ja tulostaa sen.

       r      Reverses the order of (swaps) the top two values on the stack.  (This  can  also  be  accomplished
              with the sequence SaSbLaLb.)

       R      Pops  the  top-of-stack as an integer n.  Cyclically rotates the top n items on the updated stack.
              If n is positive, then the rotation direction will make the topmost element the  second-from  top;
              if  n  is negative, then the rotation will make the topmost element the n-th element from the top.
              If the stack depth is less  than  n,  then  the  entire  stack  is  rotated  (in  the  appropriate
              direction), without any error being reported.

Rekisterit

       dc  antaa  käytettäväksi  256  muistirekisteriä, joilla jokaisella on yksimerkkinen nimi.  Voit tallettaa
       luvun tai merkkijonon rekisteriin ja hakea sen myöhemmin.

       sr     Ottaa pinon päällimmäisen arvon ja tallettaa sen rekisteriin r.

       lr     Copy the value in register r and push it onto the stack.  The value 0 is retrieved if the register
              is uninitialized.  This does not alter the contents of r.

       Jokaisella rekisterillä on myös oma pinonsa. Rekisterin käypä arvo on sen pinon päällimmäinen arvo.

       Sr     Ota (pää)pinon päällimmäinen arvo ja työnnä se rekisterin r pinoon. Rekisterin  edelliseen  arvoon
              ei pääse käsiksi.

       Lr     Ota  rekisterin  r pinon päällimmäinen arvo ja työnnä se pääpinoon.  Rekisterin r pinon edelliseen
              arvoon, jos sellainen on, voidaan nyt päästä käsiksi komennolla lr.

Parametrit

       dc :llä on kolme parametria, jotka hallitsevat  sen  toimintaa:has  three  parameters  that  control  its
       operation:    tarkkuus,   syöttökantaluku   ja   tulostuskantaluku.    Tarkkuus   määrittelee   useimpien
       laskutoimitusten tuloksen  edellyttämän  desimaalien  lukumäärän.   Syöttökantaluku  valvoo  syötettävien
       lukujen tulkintaa.  Tulostuskantalukua käytetään lukuja kirjoitettaessa.

       Syöttö-  ja  tulostuskantaluvut  ovat  erillisiä  parametreja; voit asettaa ne erisuuriksi, mikä voi olla
       hyödyllistä tai häiritsevää.   Syöttökantaluvun  tulee  olla  välillä  2  --  16  (mainitut  arvot  ml.).
       Tulostuskantaluvun  tulee olla vähintään 2.  Tarkkuuden tulee olla nolla tai suurempi.  Tarkkuus mitataan
       aina desimaalilukuna riippumatta käytetystä syöttö- tai tulostuskantaluvun arvosta.

       i      Ottaa pinon päällimmäisen arvon ja asettaa sen syöttökantaluvun arvoksi.

       o      Ottaa pinon päällimmäisen arvon ja asettaa sen tulostuskantaluvun arvoksi.

       k      Ottaa pinon päällimmäisen arvon ja asettaa sen tarkkuuden arvoksi.

       I      Työntää käytössä olevan syöttökantaluvun arvon pinoon.

       O      Työntää käytössä olevan tulostuskantaluvun arvon pinoon.

       K      Työntää käytössä olevan tarkkuusarvon pinoon.

Merkkijonot

       dc has a limited ability to operate on strings as well as on numbers; the only things  you  can  do  with
       strings  are  print  them  and  execute  them  as macros (which means that the contents of the string are
       processed as dc commands).  All registers and the stack can hold strings, and dc always knows whether any
       given object is a string or a number.  Some commands such as  arithmetic  operations  demand  numbers  as
       arguments  and print errors if given strings.  Other commands can accept either a number or a string; for
       example, the p command can accept either and prints the object according to its type.

       [characters]
              Tekee merkkijonoon, joka sisältää characters (sijoitettuna merkkien [ ja ] väliin), ja työntää sen
              pinoon.  Esimerkiksi [foo]P tulostaa merkit foo (ei rivinvaihtoa).

       a      Ottaa pinon päällimmäisen kohteen. Jos se oli luku, sen alin tavu konvertoidaan  merkkijonoksi  ja
              työnnetään  pinoon.   Muutoin  pinon päällimmäinen kohde oli merkkijono, ja sen ensimmäinen merkki
              työnnetään pinoon.

       x      Ottaa arvon pinosta ja suorittaa sen makrona.  Normaalisti sen pitäisi olla merkkijono; jos se  on
              luku,  se yksinkertaisesti työnnetään takaisin pinoon.  Esimerkiksi [1p]x suorittaa makron 1p joka
              työntää 1 pinon ja tulostaa 1 erilliselle riville.

       Makrot talletetaan useimmiten rekistereihin; [1p]sa tallettaa makron, joka kirjoittaa 1 rekisteriin a, ja
       lax kutsuu tämän makron.

       >r     Ottaa kaksi arvoa pinosta ja vertaa niitä olettaen, että ne ovat lukuja, toteuttaen  rekisterin  r
              sisällön  makrona,  jos  alkuperäinen  pinon  päällimmäinen  arvo on suurempi.  Siten 1 2>a kutsuu
              rekisterin a sisällön, mutta 2 1>a ei kutsu.

       !>r    Kuten edellinen, mutta kutsuu makron, jos alkuperäinen pinon päällimmäinen arvo on pienempi.

       <r     Kuten edelliset, mutta kutsuu makron, jos pinosta haetut luvut ovat yhtäsuuret.

       !<r    Similar but invokes the macro if the original top-of-stack is not less than (greater than or equal
              to) what was the second-to-top.

       =r     Similar but invokes the macro if the two numbers popped are equal.

       !=r    Similar but invokes the macro if the two numbers popped are not equal.

       ?      Lukee rivin päätteeltä ja suorittaa sen.  Tämä komento sallii makron pyytää tietoa käyttäjältä.

       q      poistuu makrosta ja myös sitä kutsuneesta makrosta.  Kutsuttuna ylimmältä  tasolta  tai  makrosta,
              jota on kutsuttu suoraan ylimmältä tasolta, komento q saa aikaan poistumisen ohjelmasta dc .

       Q      Ottaa  arvon  pinosta  ja  käyttää  sitä poistuttavien makrosuoritustasojen lukumääränä.  Siten 3Q
              poistuu kolmelta makrotasolta.  Komento Q ei koskaan aiheuta poistumista ohjelmasta dc .

Tilakysely

       Z      Pops a value off the stack, calculates  the  number  of  decimal  digits  it  has  (or  number  of
              characters,  if  it  is  a string)  and pushes that number.  The digit count for a number does not
              include any leading zeros, even if those appear to the right of the radix point.

       X      Ottaa arvon pinosta, laskee sen desimaalien lukumäärän ja työntää tämän luvun pinoon.  Merkkijonon
              kysymyksessä ollessa pinoon työnnettävä arvo on 0.

       z      Työntää pinoon pinon syvyystiedon; pinossa olleiden kohteiden lukumäärä ennen komentoa z.

Sekalaista

       !      Will run the rest of the line as a system command.  Note that  parsing  of  the  !<,  !=,  and  !>
              commands  take  precedence, so if you want to run a command starting with <, =, or > you will need
              to add a space after the !.

       #      Tulkitsee loput rivistä kommentiksi.

       :r     Ottaa pinon kaksi  päällimmäistä  arvoa.  Vanha  toiseksi  päällimmäinen  pinon  arvo  talletetaan
              sääntiöön r, joka indeksoidaan vanhalla päällimmäisellä pinon arvolla.

       ;r     Ottaa  pinon  päällimmäisen  arvon ja käyttää sitä indeksinä sääntiöön r.  Valittu arvo työnnetään
              pinoon.

       Note that each stacked instance of a register has its own array associated with it.  Thus 1 0:a 0Sa 2 0:a
       La 0;ap will print 1, because the 2 was stored in an instance of 0:a that was later popped.

TIEDOSTOT

       ~/.dcrc        The commands in this file will be executed when dc is first run.

BUGIT

       Ilmoita ohjelmistovioista (englanniksi) osoitteeseen bug-dc@gnu.org.

KÄÄNNÖS

       Tämän käsikirjan suomenkielisen käännöksen tekivät Tuukka Forssell <taf@jytol.fi>

       Tämä käännös on ilmainen dokumentaatio; katso tekijänoikeusehdot  GNU General Public License -versiosta 3
       tai uudemmasta. Emme ota vastuuta.

GNU Project                                    22. toukokuuta 2008                                         dc(1)