dc (desk calculator) — пакунок для арифметичних обчислень із довільною точністю в UNIX-системах. Зазвичай він оперує в десятковій системі числення з цілими числами, однак можна задати системи числення для введення і виведення, а також точність обчислень. Загальна структура dc — стековий калькулятор, який використовує зворотний польський запис.
Синтаксис виклику:
dc [файл]
Якщо аргумент вказано, то спочатку введення виконується з файлу, а потім зі (стандартного вхідного потоку).
Допустимі операції
dc розпізнає такі конструкції:
число | Значення числа поміщається в стек. Число — неперервний ланцюжок цифр 0-9 або букв A-F (шістнадцяткові цифри). На початку може стояти знак підкреслення _ для введення від'ємного числа. Число може містити десяткову крапку. |
---|---|
+ — / * % ^ ~ | Верхні два числа стека додаються (+ ), віднімаються (- ), множаться (* ), ділятися (/ ), береться остача (% ), виконується піднесення до степеня (^ ) або відбувається ділення з остачею (~ ).
|
sx, Sx | Добувається вершина стека і поміщається в регістр з назвою x , де x — будь-який символ ASCII. Якщо конструкція має вигляд Sx , то x розглядається як стек, у який і поміщається добуте значення. |
lx, Lx | Значення, що зберігається в регістрі x , поміщається в стек. Регістр x не змінюється. Спочатку всі регістри ініціалізуються нулем. Якщо конструкція має вигляд Lx , то x розглядається як стек, його вершина добувається і поміщається в головний стек. |
d | Вершина стека подвоюється. |
p | Виводиться вершина стека (без видалення зі стека). |
P | Якщо вершина стека — ланцюжок символів, то вона друкується і видаляється зі стека. Якщо вершина стека є числом, то воно друкується як послідовність байтів і видаляється зі стека. |
f | Виводяться всі елементи стека (без видалення). Зручно для налагодження програм. |
q | Завершує роботу програми. При виконанні ланцюжка символів рівень рекурсії зменшується на два. |
Q | Завершує роботу програми. Вершина стека добувається і рівень рекурсії зменшується на отримане значення. |
x | Вершина стека трактується як ланцюжок символів, що містить команди dc, і виконується. |
X | Вершина стека замінюється кількістю цифр у її дробовій частини. |
[..] | Ланцюжок символів, взятий у дужки, поміщається у вершину стека. |
=x | Два верхні елементи стека добуваються і порівнюються. Якщо вони задовольняють зазначеній умові, то вміст регістра x розглядається як команда dc і виконується. Можна використовувати також знаки порівняння < і > та їх заперечення ! < і ! > . |
v | Верхній елемент стека замінюється квадратним коренем з нього. Якщо він мав дробову частину, то вона враховується; в іншому випадку точність обчислень (див.команду k) нехтується. |
! | Залишок рядка інтерпретується як команда shell. |
c | Очищення стека. |
i | Вершина стека добувається і використовується як основа системи числення при введенні. Команда I поміщає використану при введенні основу системи числення у вершину стека. |
o | Вершина стека добувається і використовується як основа системи числення при виведенні. Команда o поміщає використану при виведенні основу системи числення у вершину стека. |
k | Добувається вершина стека; вона використовується для задання точності обчислень — кількості знаків у дробовій частині при виведенні і при виконанні множення, ділення і піднесення до степеня. |
z | У стек поміщається кількість його елементів. |
Z | Число у вершині стека замінюється його довжиною (без урахування десяткової крапки, знака мінус і провідних нулів, навіть якщо вони після десяткової крапки). |
? | Зі стандартного вхідного потоку вводиться один рядок і виконується. |
;: | Використовуються для операцій із масивами. |
Приклад використання
Вивести факторіали перших 10 натуральних чисел:
[la1+dsa*pla10>y]sy 0sa1 lyx
Квайн (програма, яка виводить саму себе):
[91Pn[dx]93Pn]dx [91PP93P[dx]P]dx
Див. також
Посилання
- man про користувацькі команди (GNU/Linux) (англ.) – сторінка довідки
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
dc desk calculator pakunok dlya arifmetichnih obchislen iz dovilnoyu tochnistyu v UNIX sistemah Zazvichaj vin operuye v desyatkovij sistemi chislennya z cilimi chislami odnak mozhna zadati sistemi chislennya dlya vvedennya i vivedennya a takozh tochnist obchislen Zagalna struktura dc stekovij kalkulyator yakij vikoristovuye zvorotnij polskij zapis Sintaksis vikliku dc fajl Yaksho argument vkazano to spochatku vvedennya vikonuyetsya z fajlu a potim zi standartnogo vhidnogo potoku Dopustimi operaciyidc rozpiznaye taki konstrukciyi chislo Znachennya chisla pomishayetsya v stek Chislo neperervnij lancyuzhok cifr 0 9 abo bukv A F shistnadcyatkovi cifri Na pochatku mozhe stoyati znak pidkreslennya dlya vvedennya vid yemnogo chisla Chislo mozhe mistiti desyatkovu krapku Verhni dva chisla steka dodayutsya vidnimayutsya mnozhatsya dilyatisya beretsya ostacha vikonuyetsya pidnesennya do stepenya abo vidbuvayetsya dilennya z ostacheyu obidva operandi dobuvayutsya zi steka i rezultat pomishayetsya nazad u stek Drobova chastina pokaznika stepenya nehtuyetsya obidva operandi dobuvayutsya zi steka drugij dilitsya na pershij rezultat i ostacha vid dilennya pomishayetsya v stek operaciya SdSn lnld LnLd daye takij samij rezultat sx Sx Dobuvayetsya vershina steka i pomishayetsya v registr z nazvoyu x de x bud yakij simvol ASCII Yaksho konstrukciya maye viglyad Sx to x rozglyadayetsya yak stek u yakij i pomishayetsya dobute znachennya lx Lx Znachennya sho zberigayetsya v registri x pomishayetsya v stek Registr x ne zminyuyetsya Spochatku vsi registri inicializuyutsya nulem Yaksho konstrukciya maye viglyad Lx to x rozglyadayetsya yak stek jogo vershina dobuvayetsya i pomishayetsya v golovnij stek d Vershina steka podvoyuyetsya p Vivoditsya vershina steka bez vidalennya zi steka P Yaksho vershina steka lancyuzhok simvoliv to vona drukuyetsya i vidalyayetsya zi steka Yaksho vershina steka ye chislom to vono drukuyetsya yak poslidovnist bajtiv i vidalyayetsya zi steka f Vivodyatsya vsi elementi steka bez vidalennya Zruchno dlya nalagodzhennya program q Zavershuye robotu programi Pri vikonanni lancyuzhka simvoliv riven rekursiyi zmenshuyetsya na dva Q Zavershuye robotu programi Vershina steka dobuvayetsya i riven rekursiyi zmenshuyetsya na otrimane znachennya x Vershina steka traktuyetsya yak lancyuzhok simvoliv sho mistit komandi dc i vikonuyetsya X Vershina steka zaminyuyetsya kilkistyu cifr u yiyi drobovij chastini Lancyuzhok simvoliv vzyatij u duzhki pomishayetsya u vershinu steka x Dva verhni elementi steka dobuvayutsya i porivnyuyutsya Yaksho voni zadovolnyayut zaznachenij umovi to vmist registra x rozglyadayetsya yak komanda dc i vikonuyetsya Mozhna vikoristovuvati takozh znaki porivnyannya lt i gt ta yih zaperechennya lt i gt v Verhnij element steka zaminyuyetsya kvadratnim korenem z nogo Yaksho vin mav drobovu chastinu to vona vrahovuyetsya v inshomu vipadku tochnist obchislen div komandu k nehtuyetsya Zalishok ryadka interpretuyetsya yak komanda shell c Ochishennya steka i Vershina steka dobuvayetsya i vikoristovuyetsya yak osnova sistemi chislennya pri vvedenni Komanda I pomishaye vikoristanu pri vvedenni osnovu sistemi chislennya u vershinu steka o Vershina steka dobuvayetsya i vikoristovuyetsya yak osnova sistemi chislennya pri vivedenni Komanda o pomishaye vikoristanu pri vivedenni osnovu sistemi chislennya u vershinu steka k Dobuvayetsya vershina steka vona vikoristovuyetsya dlya zadannya tochnosti obchislen kilkosti znakiv u drobovij chastini pri vivedenni i pri vikonanni mnozhennya dilennya i pidnesennya do stepenya z U stek pomishayetsya kilkist jogo elementiv Z Chislo u vershini steka zaminyuyetsya jogo dovzhinoyu bez urahuvannya desyatkovoyi krapki znaka minus i providnih nuliv navit yaksho voni pislya desyatkovoyi krapki Zi standartnogo vhidnogo potoku vvoditsya odin ryadok i vikonuyetsya Vikoristovuyutsya dlya operacij iz masivami Priklad vikoristannyaVivesti faktoriali pershih 10 naturalnih chisel la1 dsa pla10 gt y sy 0sa1 lyx Kvajn programa yaka vivodit samu sebe 91Pn dx 93Pn dx 91PP93P dx P dxDiv takozhbc Stekova mova programuvannyaPosilannya a rel nofollow class external text href http linux die net man 1 dc dc 1 a storinka dovidki man pro koristuvacki komandi GNU Linux angl