bc
Section: User Commands (1) Updated: . Index
Return to Main Contents
̾¾Î
bc - Ǥ°ÕÀºÅ٤η׻»¸À¸ì
½ñ¼°
bc [ -hlwsqv ] [long-options] [ file ... ]
¥Ð¡¼¥¸¥ç¥ó
¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ï GNU bc version 1.06 ¤Ë¤Ä¤¤¤Æµ½Ò¤·¤Æ¤¢¤ê¤Þ¤¹¡£
²òÀâ
bc ¤Ï¡¢Ç¤°Õ¤ÎÀºÅ٤οôÃͤò°·¤¦»ö¤¬¤Ç¤¡¢¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì C ¤Îʸˡ¤Ë
¤è¤¯»÷¤¿·Á¤ÎÆþÎϤòÂÐÏÃŪ¤Ë¼Â¹Ô¤¹¤ë¸À¸ì¤Ç¤¹¡£
¥³¥Þ¥ó¥É¥é¥¤¥ó¤Î¥ª¥×¥·¥ç¥ó¤Î»ØÄê¤Ë¤è¤ê¡¢É¸½à¿ô³Ø¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤ¹¤ë¤³¤È¤â
¤Ç¤¤Þ¤¹¡£¤³¤ì¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢¤É¤Î¥Õ¥¡¥¤¥ë¤ò½èÍý¤¹¤ë¤è¤ê¤âÁ°¤Ë
¿ô³Ø¥é¥¤¥Ö¥é¥ê¤¬ÄêµÁ¤µ¤ì¤Þ¤¹¡£
bc ¤Ïưºî¤ò³«»Ï¤¹¤ë¤È¤Þ¤ººÇ½é¤Ë¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤ò
½ç¤Ë½èÍý¤·¤Þ¤¹¡£¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤ò½èÍý¤·¤¿¸å¤Ï¡¢bc ¤Ï
ɸ½àÆþÎϤ«¤é¤ÎÆÉ¤ß¹þ¤ß¤ò¹Ô¤¤¤Þ¤¹¡£¤¹¤Ù¤Æ¤Î¥³¡¼¥É¤Ï¡¢¤½¤ì¤¬ÆÉ¤ß¹þ¤Þ
¤ì¤¿»þÅÀ¤Ç¼Â¹Ô¤µ¤ì¤Æ¤¤¤¤Þ¤¹¡£(¤â¤·¡¢¥Õ¥¡¥¤¥ëÃæ¤Ë¥×¥í¥»¥Ã¥µ¤ò»ß¤á¤ë
¥³¥Þ¥ó¥É¤¬´Þ¤Þ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ï¡¢É¸½àÆþÎϤ«¤é¤ÎÆÉ¤ß¹þ¤ß¤Ï¹Ô¤ï¤ì¤Þ¤»¤ó¡£)
ËܥС¼¥¸¥ç¥ó¤Î bc ¤Ï¡¢ÅÁÅýŪ¤Ê bc ¤Î¼ÂÁõ¤ª¤è¤Ó
POSIX ¤Î¥É¥é¥Õ¥Èµ¬³Ê¤è¤ê¤â³ÈÄ¥¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤Ë¤è¤ê¡¢
¤³¤ì¤é¤Î³ÈÄ¥¤ËÂФ·¤Æ·Ù¹ð¤òɽ¼¨¤·¤¿¤êµñÀ䤷¤¿¤ê¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£
Ëܥɥ¥å¥á¥ó¥È¤Ç¤Ï¡¢¤³¤Î¥×¥í¥»¥Ã¥µ¤¬¼õÍý¤¹¤ë¸À¸ì¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£
³ÈÄ¥µ¡Ç½¤Ë¤Ä¤¤¤Æ¤Ï¤½¤Î»ÝÌÀµ¤·¤Þ¤¹¡£
¥ª¥×¥·¥ç¥ó
- -h, --help
-
»ÈÍÑÊýË¡¤òɽ¼¨¤·¡¢½ªÎ»¤·¤Þ¤¹¡£
- -i, --interactive
-
ÂÐÏå⡼¥É¤ò¶¯À©¤·¤Þ¤¹¡£
- -l, --mathlib
-
ɸ½à¿ô³Ø¥é¥¤¥Ö¥é¥ê¤òÄêµÁ¤·¤Þ¤¹¡£
- -w, --warn
-
POSIX bc ¤ËÂФ¹¤ë³ÈÄ¥µ¡Ç½¤¬ÆþÎϤµ¤ì¤¿¾ì¹ç¤Ï·Ù¹ð¤ò½Ð¤·¤Þ¤¹¡£
- -s, --standard
-
POSIX bc ¤Î¸À¸ì»ÅÍͤ˸·Ì©¤Ë½¾¤Ã¤Æ½èÍý¤·¤Þ¤¹¡£
- -q, --quiet
-
GNU bc ƳÆþ¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Þ¤»¤ó¡£
- -v, --version
-
¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤ÈÃøºî¸¢¤òɽ¼¨¤·¤Æ½ªÎ»¤·¤Þ¤¹¡£
¿ô
bc ¤Ë¤ª¤±¤ëºÇ¤â´ðËÜŪ¤ÊÍ×ÁÇ¤Ï `¿ô' ¤Ç¤¹¡£¿ô¤Ï¡¢À°¿ôÉô¤È¾®¿ôÉô¤¬¤¢¤ê¡¢
Ǥ°Õ¤ÎÀºÅÙ¤ò¤È¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤¹¤Ù¤Æ¤Î¿ô¤Ï¡¢ÆâÉô¤Ç¤Ï 10 ¿Ê¿ô¤Çɽ¸½¤µ¤ì¤Æ¤ª¤ê¡¢
·×»»¤â 10 ¿Ê¿ô¤Ç¹Ô¤ï¤ì¤Þ¤¹¡£(ËܥС¼¥¸¥ç¥ó¤Ç¤Ï¡¢½ü»»¤È¾è»»¤Ç·ë²Ì¤ËÀڼΤƤ¬
µ¯¤³¤ê¤Þ¤¹¡£) ¿ô¤Ë¤Ï length ¤È scale ¤È¤¤¤¦ 2 ¤Ä¤Î°À¤¬¤¢¤ê¤Þ¤¹¡£
length ¤Ï 10 ¿Ê¤Ç¤Î͸ú·å¿ô¤Ç¡¢scale ¤Ï¾®¿ôÅÀ°Ê²¼¤Î 10 ¿Ê¤Ç¤Î͸ú·å¿ô¤Ç¤¹¡£
Î㤨¤Ð¡¢
- .000001 ¤Ï¡¢length¤¬ 6 ¤Ç¡¢scale ¤â 6 ¤Ç¤¹¡£
1935.000 ¤Ï¡¢length¤¬ 7 ¤Ç¡¢scale ¤¬ 3 ¤Ç¤¹¡£
ÊÑ¿ô
¿ô¤Ï¡¢Ã±½ãÊÑ¿ô¤ÈÇÛÎó¤Î 2 ¼ïÎà¤ÎÊÑ¿ô¤ËÊݸ¤µ¤ì¤Þ¤¹¡£Ã±½ãÊÑ¿ô¤ÈÇÛÎóÊÑ¿ô¤Ë¤Ï¶¦¤Ë
̾Á°¤¬ÉÕ¤±¤é¤ì¤Þ¤¹¡£¤³¤Î̾Á°¤Ï¡¢ºÇ½é¤Î 1 ʸ»úÌܤ¬¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Ç¡¢¸å¤Ï¡¢
¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¡¢¿ô»ú¤ª¤è¤Ó¥¢¥ó¥À¥¹¥³¥¢¤òǤ°Õ¤Îʸ»ú¿ôÁȤ߹ç¤ï¤»¤Æ
»È¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤¹¤Ù¤Æ¤Î¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Ï¾®Ê¸»ú¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
(¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤È¿ô»ú¤ò»È¤Ã¤¿Ì¾Á°¤Îµ¡Ç½¤Ï³ÈÄ¥µ¡Ç½¤Ç¤¹¡£
POSIX bc ¤Ç¤Ï¡¢ÊÑ¿ô¤Ë±Ñ¾®Ê¸»ú 1 ʸ»ú¤·¤«µö¤µ¤ì¤Þ¤»¤ó¡£)
ÇÛÎóÊÑ¿ô¤Î̾Á°¤Ë¤Ïɬ¤º¥Ö¥é¥±¥Ã¥È ([]) ¤¬¤Ä¤¯¤Î¤Ç¡¢ÊÑ¿ô¤Î·¿¤Ïʸ̮¤Ë¤ª¤¤¤Æ
¤Ï¤Ã¤¤ê¤·¤Æ¤¤¤Þ¤¹¡£
ÆÃ¼ì¤ÊÊÑ¿ô¤È¤·¤Æ scale, ibase, obase, last ¤Î 4 ¤Ä¤ÎÊÑ¿ô¤¬¤¢¤ê¤Þ¤¹¡£
scale ¤Ç·×»»»þ¤Î¾®¿ôÅÀ°Ê²¼¤Î͸ú·å¿ô¤ò»ØÄꤷ¤Þ¤¹¡£
scale ¤Î¥Ç¥Õ¥©¥ë¥È¤Ï 0 ¤Ç¤¹¡£
ibase ¤È obase ¤ÇÆþÎϤª¤è¤Ó½ÐÎϤÎÊÑ´¹´ð¿ô¤ò»ØÄꤷ¤Þ¤¹¡£
¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ÆþÎÏ¡¢½ÐÎϤδð¿ô¤Ï¶¦¤Ë 10 ¤Ç¤¹¡£
last ¤Ï¡¢ºÇ¸å¤Ë bc ¤¬½ÐÎϤ·¤¿¿ô¤òÊÝ»ý¤·¤Æ¤¤¤Þ¤¹
(¤³¤ì¤Ï³ÈÄ¥µ¡Ç½¤Ç¤¹)¡£¤³¤ì¤é¤Ë¤Ä¤¤¤Æ¤Ï¡¢¸å¤ÇŬÀڤʤȤ³¤í¤Ç¾Ü¤·¤¯ÀâÌÀ¤·¤Þ¤¹¡£
¤³¤ì¤é¤ÎÊÑ¿ô¤Ë¤Ï¡¢¼°¤Ç»È¤ï¤ì¤ëÂåÆþ¤ÈƱÍͤÎÂåÆþ¤ò¹Ô¤¦¤³¤È¤¬²Äǽ¤Ç¤¹¡£
¥³¥á¥ó¥È
bc ¤Ï¡¢/* ¤«¤é */ ¤Î´Ö¤ò¥³¥á¥ó¥È¤È¤·¤Æ°·¤¤¤Þ¤¹¡£
¥³¥á¥ó¥È¤Ï¤É¤³¤«¤é»Ï¤Þ¤Ã¤Æ¤¤¤Æ¤â¤è¤¯¡¢1 ʸ»ú¤Î¶õÇò¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£
(¤³¤ì¤Ë¤è¤ê¡¢¥³¥á¥ó¥È¤Ï¤½¤ÎÁ°¸å¤ÎÆþÎÏ¥¢¥¤¥Æ¥à¤òÀÚ¤êÎ¥¤·¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢
ÊÑ¿ô̾¤ÎÅÓÃæ¤Ë¥³¥á¥ó¥È¤òÃÖ¤¯¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£)
¥³¥á¥ó¥È¤ÎÃæ¤Ë¤Ï¤¤¤¯¤Ä²þ¹Ô¤¬¤¢¤Ã¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£
bc ¤ò¥¹¥¯¥ê¥×¥È¤È¤·¤Æ¤â»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¡¢1 ¹Ô¥³¥á¥ó¥È¤¬
³ÈÄ¥µ¡Ç½¤È¤·¤ÆÄɲ䵤ì¤Þ¤·¤¿¡£1 ¹Ô¥³¥á¥ó¥È¤Ï # ¤Ç»Ï¤Þ¤ê¡¢
¼¡¤Î²þ¹Ô¤Þ¤Ç͸ú¤Ç¤¹¡£¤½¤Î²þ¹Ôʸ»ú¼«ÂΤϥ³¥á¥ó¥È¤Î°ìÉô¤È¤Ï¤ß¤Ê¤µ¤ì¤º¡¢
ÉáÄ̤˽èÍý¤µ¤ì¤Þ¤¹¡£
¼°
`¿ô' ¤Ï¡¢¼°¤ª¤è¤Óʸ¤Ë¤è¤Ã¤ÆÁàºî¤µ¤ì¤Þ¤¹¡£
¤³¤Î¸À¸ì¤ÏÂÐÏÃŪ¤Ë¤Ê¤ë¤è¤¦¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¤¿¤á¡¢
ʸ¤ª¤è¤Ó¼°¤Ï²Äǽ¤Ê¸Â¤ê¨ºÂ¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
"main" ¥×¥í¥°¥é¥à¤È¤¤¤Ã¤¿¤â¤Î¤Ï¤Ê¤¯¡¢¤½¤Î¤«¤ï¤ê¡¢¥³¡¼¥É¤Ï
¤½¤ì¤Ë½Ð¤¯¤ï¤·¤¿»þÅÀ¤Ç¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
(¸å¤Ç½Ò¤Ù¤ë`´Ø¿ô'¤Ï¡¢¤½¤ì¤Ë½Ð¤¯¤ï¤·¤¿»þÅÀ¤ÇÄêµÁ¤µ¤ì¤Þ¤¹¡£)
¼°¤ÎºÇ¤âñ½ã¤Ê¤â¤Î¤Ï¡¢¤¿¤À¤ÎÄê¿ô¤Ç¤¹¡£bc ¤Ï¡¢ÆþÎϤµ¤ì¤¿
Äê¿ô¤ò¡¢ÊÑ¿ô ibase ¤Ç»ØÄꤵ¤ì¤ë¸½ºß¤Î´ð¿ô¤ò¸µ¤Ë¡¢ÆâÉôŪ¤Ë¤Ï 10 ¿Êɽ¸½¤Î
¿ô¤ËÊÑ´¹¤·¤Þ¤¹¡£(´Ø¿ô¤Î¾ì¹ç¤Ë¤ÏÎã³°¤¬¤¢¤ê¤Þ¤¹¡£)
ibase ¤Ë¤Ï¡¢2 ¤«¤é 16 ¤Þ¤Ç¤¬»ÈÍѤǤ¤Þ¤¹¡£
¤³¤ÎÈϰϤò±Û¤¨¤ëÃͤò ibase ¤ËÂåÆþ¤·¤è¤¦¤È¤¹¤ë¤È¡¢
2 ¤¢¤ë¤¤¤Ï 16 ¤ò»ØÄꤷ¤¿¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¿ô¤ÎÆþÎϤˤϡ¢0-9 ¤ª¤è¤Ó A-F ¤Îʸ»ú¤¬ÍøÍѤǤ¤Þ¤¹¡£(Ãí°Õ:
¤³¤ì¤ÏÂçʸ»ú¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¾®Ê¸»ú¤ÏÊÑ¿ô̾¤Ç¤¹¡£)
1 ·å¤Î¿ô¤Ï ibase ¤ÎÃͤ˴ط¸¤Ê¤¯¤½¤ÎÃͤò»ý¤Á¤Þ¤¹ (¤¹¤Ê¤ï¤Á A=10)¡£
Ê£¿ô·å¤Î¿ô¤Î¾ì¹ç¡¢bc ¤Ï ibase °Ê¾å¤ÎÃͤò¤â¤Ä¤¹¤Ù¤Æ¤ÎÆþÎÏ·å¤ò
ibase-1¤ËÊѹ¹¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢¿ô FFF ¤Ï¾ï¤Ë¡¢
¤½¤ÎÆþÎÏ´ð¿ô¤ò»È¤Ã¤Æ 3 ·å¤Çɽ¸½²Äǽ¤ÊºÇÂç¤ÎÃͤòɽ¤·¤Þ¤¹¡£
¤¹¤Ù¤Æ¤Î±é»»¼°¤¬¡¢Â¾¤Î¿¤¯¤Î¹âµé¸À¸ì¤Ë»÷¤¿¤â¤Î¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¿ô¤Î·¿¤Ï 1 ¼ïÎष¤«¤Ê¤¤¤¿¤á¡¢·¿ÊÑ´¹¤Îµ¬Â§¤Ï¤¢¤ê¤Þ¤»¤ó¡£
¤½¤Î¤«¤ï¤ê¡¢¼°¤Î͸ú·å¿ô¤Ë´Ø¤¹¤ëµ¬Â§¤¬¤¢¤ê¤Þ¤¹¡£
¤¹¤Ù¤Æ¤Î¼°¤Ë͸ú·å¿ô¤¬¤¢¤ê¡¢¤³¤ì¤Ï¤½¤ÎÈï±é»»¿ô¤Î͸ú·å¿ô¤È
»Ü¤µ¤ì¤ë±é»»¡¢¤½¤ì¤Ë¿¤¯¤Î¾ì¹ç¡¢
ÊÑ¿ô scale ¤«¤é·èÄꤵ¤ì¤Þ¤¹¡£scale ¤Ë¤Ï¡¢0 ¤«¤é
C ¤ÎÀ°¿ô¤Çɽ¸½¤Ç¤¤ëºÇÂç¤ÎÃͤޤǤ¬»ØÄê²Äǽ¤Ç¤¹¡£
°Ê²¼¡¢bc ¤Ç»ÈÍѲÄǽ¤Ê±é»»»Ò¤òÀâÌÀ¤·¤Þ¤¹¡£¤Ê¤ª¡¢´°Á´·Á¤Î¼°¤ò "expr"¡¢
ñ½ãÊÑ¿ô¤Þ¤¿¤ÏÇÛÎóÊÑ¿ô¤ò "var" ¤Èɽµ¤·¤Þ¤¹¡£
ñ½ãÊÑ¿ô¤Ïñ¤Ë
-
name
¤Èɽ¤·¡¢ÇÛÎóÊÑ¿ô¤Ï
-
name[expr]
¤Èɽ¤·¤Þ¤¹¡£ÆÃ¤Ë¸ÀµÚ¤·¤Ê¤¤¸Â¤ê¡¢·ë²Ì¤Î͸ú·å¿ô¤Ï¡¢ÃíÌܤ·¤Æ¤¤¤ë¼°¤Î
ºÇÂç͸ú·å¿ô¤Ë¤Ê¤ê¤Þ¤¹¡£
- - expr
-
·ë²Ì¤Ï¤½¤Î¼°¤ÎÉ乿¤òȿž¤·¤¿¤â¤Î¤È¤Ê¤ê¤Þ¤¹¡£
- ++ var
-
ÊÑ¿ô¤ò 1 ¤À¤±¥¤¥ó¥¯¥ê¥á¥ó¥È¤·¡¢¤½¤Î¿·¤·¤¤Ãͤ¬¼°¤Î·ë²Ì¤È¤Ê¤ê¤Þ¤¹¡£
- -- var
-
ÊÑ¿ô¤ò 1 ¤À¤±¥Ç¥¯¥ê¥á¥ó¥È¤·¡¢¤½¤Î¿·¤·¤¤Ãͤ¬¼°¤Î·ë²Ì¤È¤Ê¤ê¤Þ¤¹¡£
- var ++
-
¼°¤Î·ë²Ì¤Ï¤½¤ÎÊÑ¿ô¤ÎÃͤȤʤꡢ¤½¤ì¤«¤é¤½¤ÎÊÑ¿ô¤ò 1 ¤À¤±
¥¤¥ó¥¯¥ê¥á¥ó¥È¤·¤Þ¤¹¡£
- var --
-
¼°¤Î·ë²Ì¤Ï¤½¤ÎÊÑ¿ô¤ÎÃͤȤʤꡢ¤½¤ì¤«¤é¤½¤ÎÊÑ¿ô¤ò 1 ¤À¤±
¥Ç¥¯¥ê¥á¥ó¥È¤·¤Þ¤¹¡£
- expr + expr
-
¼°¤Î·ë²Ì¤Ï 2 ¤Ä¤Î¼°¤ÎϤȤʤê¤Þ¤¹¡£
- expr - expr
-
¼°¤Î·ë²Ì¤Ï 2 ¤Ä¤Î¼°¤Îº¹¤È¤Ê¤ê¤Þ¤¹¡£
- expr * expr
-
¼°¤Î·ë²Ì¤Ï 2 ¤Ä¤Î¼°¤ÎÀѤȤʤê¤Þ¤¹¡£
- expr / expr
-
¼°¤Î·ë²Ì¤Ï 2 ¤Ä¤Î¼°¤Î¾¦¤È¤Ê¤ê¤Þ¤¹¡£
·ë²Ì¤Î scale ¤ÏÊÑ¿ô scale ¤ÎÃͤȤʤê¤Þ¤¹¡£
- expr % expr
-
·ë²Ì¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æµá¤á¤é¤ì¤ë¾ê;¤Ç¤¹¡£a%b ¤òµá¤á¤ë¤¿¤á¤Ë¡¢¤Þ¤º a/b ¤ò
scale ¤Î͸ú·å¿ô¤Ç·×»»¤·¤Þ¤¹¡£¤³¤Î·ë²Ì¤òÍѤ¤¤Æ¡¢a-(a/b)*b ¤ò¡¢
scale+scale(b) ¤È scale(a) ¤ÎÂ礤¤Êý¤Î͸ú·å¿ô¤Ç·×»»¤·¤Þ¤¹¡£
¤â¤· scale ¤Ë 0 ¤¬¥»¥Ã¥È¤µ¤ì¡¢Î¾Êý¤Î¼°¤¬À°¿ô¤Ç¤¢¤ì¤Ð¡¢
À°¿ô¤Î¾ê;¤¬µá¤á¤é¤ì¤Þ¤¹¡£
- expr ^ expr
-
¼°¤Î·ë²Ì¤Ï¡¢1 ÈÖÌܤμ°¤ÎÃͤò 2 ÈÖÌܤβó¿ô¤À¤±¾è¤¸¤¿¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡£
2 ÈÖÌܤμ°¤Ï¡¢À°¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
(2 ÈÖÌܤμ°¤¬À°¿ô¤Ç¤Ê¤¤¾ì¹ç¤Ï·Ù¹ð¤¬É½¼¨¤µ¤ì¡¢
À°¿ô¤ËÀÚ¤êµÍ¤á¤¿Ãͤ¬»ÈÍѤµ¤ì¤Þ¤¹¡£) ·ë²Ì¤Î scale ¤Ï¡¢¤Ù¤»Ø¿ô¤¬
Éé¤Ê¤é scale ¤Ë¤Ê¤ê¤Þ¤¹¡£¤Ù¤»Ø¿ô¤¬Àµ¤Ê¤é¡¢
"1 ÈÖÌܤμ°¤Î scale ¤È¤Ù¤»Ø¿ô¤È¤ÎÀÑ" ¤ª¤è¤Ó
"scale ¤È 1 ÈÖÌܤμ°¤Î scale ¤ÎÂ礤¤Êý" ¤Î¤¦¤Á¤Î¾®¤µ¤¤Êý
(¤Ä¤Þ¤ê¡¢scale(a^b) = min(scale(a)*b, max( scale, scale(a))))
¤È¤Ê¤ê¤Þ¤¹¡£
expr^0 ¤Ï¾ï¤Ë 1 ¤òÊÖ¤·¤Þ¤¹¡£
- ( expr )
-
ɸ½à¤ÎÍ¥ÀèÅÙ¤ò»È¤ï¤º¤Ë¡¢¤³¤Î¼°¤Îɾ²Á¤òÍ¥À褷¤Þ¤¹¡£
- var = expr
-
¼°¤ÎÃͤ¬ÊÑ¿ô¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡£
- var <op>= expr
-
"var" ¤¬°ìÅÙ¤·¤«É¾²Á¤µ¤ì¤Ê¤¤¤³¤È°Ê³°¤Ï "var = var <op> expr" ¤ÈƱ¤¸¤Ç¤¹¡£
"var" ¤¬ÇÛÎó¤Î¾ì¹ç¤Ïưºî¤¬°ã¤¦¤³¤È¤¬¤¢¤êÆÀ¤Þ¤¹¡£
´Ø·¸±é»»¤ÏÆÃ¼ì¤Ê±é»»¤Ç¡¢·ë²Ì¤Ï¾ï¤Ë 0 ¤« 1 ¤Ë¤Ê¤ê¤Þ¤¹¡£´Ø·¸¤¬µ¶¤Î»þ 0¡¢
¿¿¤Î»þ 1 ¤Ë¤Ê¤ê¤Þ¤¹¡£´Ø·¸±é»»¤Ï¡¢±é»»¼°¤Î¤É¤³¤Ç¤â»È¤¦»ö¤¬¤Ç¤¤Þ¤¹¡£
(POSIX bc¤Ç¤Ï¡¢´Ø·¸±é»»¤Ï¡¢if, while, for ʸ¤ÎÃæ¤À¤±¤Ç¡¢¤·¤«¤â
1 ¤Ä¤Î´Ø·¸¼°¤·¤«»ÈÍѤǤ¤Þ¤»¤ó¡£)
´Ø·¸±é»»»Ò¤Ï°Ê²¼¤ÎÄ̤ꡣ
- expr1 < expr2
-
expr1 ¤¬ expr2 ¤è¤ê¾®¤µ¤¤¾ì¹ç 1 ¤Ë¤Ê¤ê¤Þ¤¹¡£
- expr1 <= expr2
-
expr1 ¤¬ expr2 ¤è¤ê¾®¤µ¤¤¤«Åù¤·¤¤¾ì¹ç 1 ¤Ë¤Ê¤ê¤Þ¤¹¡£
- expr1 > expr2
-
expr1 ¤¬ expr2 ¤è¤êÂ礤¤¾ì¹ç 1 ¤Ë¤Ê¤ê¤Þ¤¹¡£
- expr1 >= expr2
-
expr1 ¤¬ expr2 ¤è¤êÂ礤¤¤«Åù¤·¤¤¾ì¹ç 1 ¤Ë¤Ê¤ê¤Þ¤¹¡£
- expr1 == expr2
-
expr1 ¤È expr2 ¤¬Åù¤·¤¤¾ì¹ç 1 ¤Ë¤Ê¤ê¤Þ¤¹¡£
- expr1 != expr2
-
expr1 ¤È expr2 ¤¬Åù¤·¤¯¤Ê¤¤¾ì¹ç 1 ¤Ë¤Ê¤ê¤Þ¤¹¡£
ÏÀÍý±é»»¤â»È¤¨¤Þ¤¹¡£(POSIX bc ¤Ë¤ÏÏÀÍý±é»»¤Ï¤¢¤ê¤Þ¤»¤ó¡£)
ÏÀÍý±é»»¤â´Ø·¸±é»»¤ÈƱÍÍ¡¢·ë²Ì¤Ï 0 ¤« 1 (³Æ¡¹µ¶¤ª¤è¤Ó¿¿) ¤Ë¤Ê¤ê¤Þ¤¹¡£
ÏÀÍý±é»»»Ò¤Ï°Ê²¼¤ÎÄ̤ꡣ
- !expr
-
expr ¤¬ 0 ¤Ê¤é 1 ¤Ë¤Ê¤ê¤Þ¤¹¡£
- expr && expr
-
expr1 ¤È expr2 ¤¬Î¾Êý¤È¤â 0 ¤Ç¤Ê¤¤¤Ê¤é¡¢1 ¤Ë¤Ê¤ê¤Þ¤¹¡£
- expr || expr
-
expr1 ¤È expr2 ¤Î¤É¤Á¤é¤«°ìÊý¤¬ 0 ¤Ç¤Ê¤¤¤Ê¤é¡¢1 ¤Ë¤Ê¤ê¤Þ¤¹¡£
³Æ±é»»»Ò¤ÎÍ¥Àè½ç°Ì¤È·ë¹çµ¬Â§¤Ï¼¡¤ÎÄ̤ê¤Ç¤¹¡£
(ºÇ½é¤Î¤â¤Î¤Û¤ÉÄ㤯¡¢¸å¤Ë¤¤¤¯¤Û¤É¹â¤¤Í¥Àè½ç°Ì¤ÇÀè¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¡£)
- || (º¸¤«¤é·ë¹ç)
&& (º¸¤«¤é·ë¹ç)
! (·ë¹ç¤»¤º)
´Ø·¸±é»» (º¸¤«¤é·ë¹ç)
ÂåÆþ±é»» (±¦¤«¤é·ë¹ç)
+ - (º¸¤«¤é·ë¹ç)
* / % (º¸¤«¤é·ë¹ç)
^ (±¦¤«¤é·ë¹ç)
- (ñ¹à¥Þ¥¤¥Ê¥¹) (·ë¹ç¤»¤º)
++ -- (·ë¹ç¤»¤º)
¤³¤ÎÍ¥Àè½ç°Ì¤Ï¡¢POSIX bc ¤Î¥×¥í¥°¥é¥à¤¬¤½¤Î¤Þ¤ÞÀµ¤·¤¯Æ°¤¯¤è¤¦¤Ë
ÇÛθ¤·¤Æ·è¤á¤é¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢´Ø·¸±é»»¤ÈÏÀÍý±é»»¤ò
ÂåÆþʸ¤È¶¦¤ËÍѤ¤¤¿¾ì¹ç¡¢Ä̾ï¤È¤Ï°Û¤Ê¤ë¿¶¤ëÉñ¤¤¤ò¤·¤Þ¤¹¡£
¼¡¤ÎÎã¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦:
-
a = 3 < 5
C ¥×¥í¥°¥é¥Þ¤Î¤Û¤È¤ó¤É¤Ï¡¢
``3 < 5'' ¤Î´Ø·¸±é»»¤¬¼Â¹Ô¤µ¤ì¤¿·ë²Ì (¤Ä¤Þ¤ê 1) ¤¬ÊÑ¿ô ``a'' ¤ËÂåÆþ¤µ¤ì¤ë¡¢
¤È¹Í¤¨¤ë¤Ç¤·¤ç¤¦¡£
¤È¤³¤í¤¬ bc ¤Ç¤Ï¡¢¤Þ¤º 3 ¤¬ÊÑ¿ô ``a'' ¤ËÂåÆþ¤µ¤ì¡¢
¤½¤ì¤«¤é 3 ¤È 5 ¤ÎÈæ³Ó¤¬¹Ô¤ï¤ì¤ë¤Î¤Ç¤¹¡£
¤³¤Î´Ö°ã¤¤¤òÈò¤±¤ë¤¿¤á¤Ë¡¢
´Ø·¸±é»»¤äÏÀÍý±é»»¤òÂåÆþ±é»»¤È¶¦¤ËÍѤ¤¤ë¾ì¹ç¤Ï¡¢
³ç¸Ì¤ò»È¤¦¤Î¤¬ºÇÎɤǤ¹¡£
bc ¤Ë¤ÏÆÃÊ̤ʼ°¤¬¤µ¤é¤Ë¤¤¤¯¤Ä¤«È÷¤ï¤Ã¤Æ¤¤¤Þ¤¹¡£
¤½¤ì¤Ï¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤Èɸ½à´Ø¿ô¤Ë´Ø¤¹¤ë¤â¤Î¤Ç¡¢
¤¹¤Ù¤Æ "name(parameters)" ¤È¤¤¤¦·Á¤ò¤·¤Æ¤¤¤Þ¤¹¡£
¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Ï´Ø¿ô¤Î¾Ï¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£
ɸ½à´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹:
- length ( expression )
-
expression ¤Î͸ú·å¿ô¤òÊÖ¤·¤Þ¤¹¡£
- read ( )
-
(³ÈÄ¥µ¡Ç½) ´Ø¿ô¤Î½Ð¸½°ÌÃ֤˴ط¸¤Ê¤¯¡¢É¸½àÆþÎϤ«¤é¿ô¤òÆÉ¤ß¼è¤ê¤Þ¤¹¡£
¥Ç¡¼¥¿¤È¥×¥í¥°¥é¥à¤ÎξÊý¤òɸ½àÆþÎϤ«¤éÍ¿¤¨¤ë¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¢
ÌäÂê¤òÀ¸¤¸¤¦¤ë¤³¤È¤ËÃí°Õ¤·¤Æ²¼¤µ¤¤¡£
ºÇÎɤÎÊýË¡¤Ï¡¢
¥æ¡¼¥¶¤«¤é¥Ç¡¼¥¿¤ÎÆþÎϤÎɬÍפ¬¤¢¤ë¤Ê¤é¡¢¥×¥í¥°¥é¥à¤Ï¤¢¤é¤«¤¸¤áºî¤Ã¤Æ¤ª¤¡¢
ɸ½àÆþÎϤ«¤é¥×¥í¥°¥é¥à¤òÆþÎϤ·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç¤¹¡£
read ´Ø¿ô¤ÎÃͤÏɸ½àÆþÎϤ«¤éÆÉ¤ß¹þ¤ó¤À¿ô¤Ç¤¹¡£
¤½¤ÎºÝ¡¢ÊÑ´¹´ð¿ô¤È¤·¤ÆÊÑ¿ô ibase ¤Î¸½ºß¤ÎÃͤ¬ÍѤ¤¤é¤ì¤Þ¤¹¡£
- scale ( expression )
-
expression ¤Î¾®¿ôÅÀ°Ê²¼¤Î͸ú·å¿ô¤òÊÖ¤·¤Þ¤¹¡£
- sqrt ( expression )
-
expression ¤ÎÊ¿Êýº¬¤òÊÖ¤·¤Þ¤¹¡£
expression ¤ËÉé¤ÎÃͤò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢¥é¥ó¥¿¥¤¥à¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹¡£
ʸ
ʸ¤Ï (¤Û¤È¤ó¤É¤Î»»½Ñ¸À¸ì¤¬¤½¤¦¤Ç¤¢¤ë¤è¤¦¤Ë)¡¢½èÍý¤ò½çÈ֤˼¹Ԥ·¤Æ¤¤¤¯Ã±°Ì¤Ç¤¹¡£
bc ¤Ç¤Ïʸ¤Ï¡Ö¤Ç¤¤ë¤À¤±ÁᤤÃʳ¬¤Ç¡×¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
²þ¹Ô¤¬ÆþÎϤµ¤ì¤¿»þÅÀ¤Ç¡¢¼Â¹Ô²Äǽ¤Êʸ¤¬Â¸ºß¤·¤Æ¤¤¤ì¤Ð¡¢Â¨ºÂ¤Ë¼Â¹Ô¤·¤Þ¤¹¡£
¤³¤Î¤¿¤á bc ¤Ç¤Ï²þ¹Ô¤¬½ÅÍפÊÌò³ä¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£
¼ÂºÝ¡¢¥»¥ß¥³¥í¥ó¤È²þ¹Ô¤¬Ê¸¤Î¶èÀÚ¤ê¤È¤·¤Æ»ÈÍѤµ¤ì¤Þ¤¹¡£
ÉÔŬÅö¤Ê¾ì½ê¤Ç²þ¹Ô¤òÆþÎϤ¹¤ë¤È¡¢Ê¸Ë¡¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹¡£
²þ¹Ô¤Ïʸ¤Î¶èÀÚ¤ê¤Ç¤¹¤¬¡¢¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤òÍѤ¤¤Æ²þ¹Ô¤ò±£¤¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
bc ¤Ë¤È¤Ã¤Æ¡¢"\<nl>" (<nl>¤Ï²þ¹Ô) ¤Ï²þ¹Ô¤Ç¤Ï¤Ê¤¯¶õÇò¤Ë¸«¤¨¤Þ¤¹¡£
ʸ¤Î¥ê¥¹¥È¤Ï¡¢¥»¥ß¥³¥í¥ó¤È²þ¹Ô¤Ç¶èÀÚ¤é¤ì¤¿Ê¸¤ÎʤӤǤ¹¡£
°Ê²¼¡¢bc ¤Îʸ¤Î¼ïÎà¤È¤½¤Îưºî¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£
(¤Ê¤ª¡¢°Ê²¼¤ÎÀâÌÀ¤Ç ([]) ¤Ç³ç¤Ã¤¿Éôʬ¤Ï¾Êά²Äǽ¤Ê¹à¤Ç¤¹¡£)
- ±é»»¼°
-
±é»»¼°¤Ë¤Ï¼¡¤Î 2 ¤Ä¤Î¼ïÎब¤¢¤ê¤Þ¤¹¡£
±é»»¼°¤¬ "<variable> <assignment> ..." ¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤ì¤Ð¡¢
¤½¤ì¤ÏÂåÆþʸ¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£
¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¡¢±é»»¼°¤Ïɾ²Á¤µ¤ì¤Æ½ÐÎϤËɽ¼¨¤µ¤ì¤Þ¤¹¡£
·ë²Ì¤¬É½¼¨¤µ¤ì¤¿¸å¡¢²þ¹Ô¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
Î㤨¤Ð¡¢"a=1" ¤ÏÂåÆþʸ¤Ç¤¢¤ê¡¢
"(a=1)" ¤ÏÂåÆþʸ¤¬Ëä¤á¹þ¤Þ¤ì¤¿±é»»¼°¤Ç¤¹¡£
ɽ¼¨¤µ¤ì¤ë¿ôÃͤϤ¹¤Ù¤Æ¡¢ÊÑ¿ô obase ¤Ç·è¤Þ¤ë´ð¿ô¤Çɽ¼¨¤µ¤ì¤Þ¤¹¡£
obase ¤Ë»ØÄê¤Ç¤¤ëÃÍ¤Ï 2 ¤«¤é BC_BASE_MAX ¤Þ¤Ç¤Ç¤¹¡£
(¡ÖÀ©¸Â¡×¤Î¾Ï¤ò»²¾È¡£)
´ð¿ô 2 ¤«¤é 16 ¤Þ¤Ç¤Ç¤Ï¡¢Ä̾ï¤Î¿ôɽµË¡¤¬ÍѤ¤¤é¤ì¤Þ¤¹¡£
´ð¿ô¤¬ 16 ¤è¤êÂ礤¤¾ì¹ç¡¢bc ¤Ï¡¢
³Æ·å¤ò 10 ¿Êɽµ¤¹¤ëÊ£¿ô·åʸ»úɽµË¡¤Çɽ¼¨¤·¤Þ¤¹¡£
Ê£¿ô·åʸ»úɽµË¡¤Ç¤Ï¡¢³Æ·å¤Ï¶õÇò¤Ç¶èÀÚ¤é¤ì¤Þ¤¹¡£
³Æ·å¤Ï "obase-1" ¤ò 10 ¿Ê¤Çɽµ¤¹¤ë¤Î¤ËɬÍפʷå¿ô¤Î¿ô»ú¤«¤éÀ®¤ê¤Þ¤¹¡£
¿ô¤ÎÀºÅÙ¤ÏǤ°Õ¤ËÁª¤Ù¤ë¤¿¤á¡¢¿ô¤Ë¤è¤Ã¤Æ¤Ï 1 ¹Ô¤Ëɽ¼¨¤Ç¤¤Ê¤¤¾ì¹ç¤â¤¢¤ê¤Þ¤¹¡£
¤½¤Î¤è¤¦¤ÊŤ¤¿ô¤Ï¡¢¹ÔËö¤Ë "\" ¤òÉÕ¤±¤Æ¼¡¹Ô¤Ë·Ñ³¤·¤Þ¤¹¡£
1 ¹Ô¤Ëɽ¼¨¤Ç¤¤ëʸ»ú¿ô¤Ï 70 ¤Ç¤¹¡£
bc ¤ÎÂÐÏÃŪÀ¼Á¤Ë¤è¤ê¡¢¤¢¤ë¿ô¤òɽ¼¨¤¹¤ë¤È¡¢
ɽ¼¨¤·¤¿Ãͤ¬ÆÃ¼ìÊÑ¿ô last ¤ËÂåÆþ¤µ¤ì¤ë¤È¤¤¤¦ÉûºîÍѤ¬À¸¤¸¤Þ¤¹¡£
¥æ¡¼¥¶¤Ï¥¿¥¤¥×¤·Ä¾¤¹¤³¤È¤Ê¤¯ºÇ¸å¤Ëɽ¼¨¤µ¤ì¤¿ÃͤòºÆÍøÍѤǤ¤Þ¤¹¡£
last ¤ËÃͤòÂåÆþ¤¹¤ë¤³¤È¤â²Äǽ¤Ç¡¢
¤½¤Î¾ì¹ç¡¢Á°²óɽ¼¨¤µ¤ì¤¿Ãͤ¬ÂåÆþÃͤǾå½ñ¤¤µ¤ì¤Þ¤¹¡£
¿·¤·¤¯ÂåÆþ¤·¤¿Ãͤϡ¢¼¡¤Ë¿ô¤¬É½¼¨¤µ¤ì¤ë¤«Ê̤ÎÃͤ¬ last ¤ËÂåÆþ¤µ¤ì¤ë
¤Þ¤Ç͸ú¤Ç¤¹¡£(bc ¤Î¼ÂÁõ¤Ë¤è¤Ã¤Æ¤Ï¡¢
¿ô¤Î°ìÉô¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤Ã±°ì¤Î¥Ô¥ê¥ª¥É (.) ¤ò last ¤Îû½Ìɽµ¤È¤·¤Æ
ÍѤ¤¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£)
- string
-
ʸ»úÎó string ¤¬½ÐÎϤËɽ¼¨¤µ¤ì¤Þ¤¹¡£
ʸ»úÎó¤ÏÆó½Å°úÍÑÉä¤Ç»Ï¤Þ¤ê¡¢¼¡¤ÎÆó½Å°úÍÑÉä¤Þ¤Ç¤Î¤¹¤Ù¤Æ¤Îʸ»ú¤ò´Þ¤ß¤Þ¤¹¡£
²þ¹Ô¤ò´Þ¤á¡¢¤¹¤Ù¤Æ¤Îʸ»ú¤Ïʸ»úÄ̤ê¤Ë²ò¼á¤µ¤ì¤Þ¤¹¡£
ʸ»úÎó¤Î¸å¤Ë²þ¹Ô¤Ï½ÐÎϤµ¤ì¤Þ¤»¤ó¡£
- print list
-
print ʸ (¤³¤ì¤Ï³ÈÄ¥µ¡Ç½¤Ç¤¹) ¤Ï¡¢¤â¤¦¤Ò¤È¤Ä¤Î½ÐÎÏÊýË¡¤Ç¤¹¡£
"list" ¤Ï¥³¥ó¥Þ¤Ç¶èÀڤä¿Ê¸»úÎ󤪤è¤Ó±é»»¼°¤Î¥ê¥¹¥È¤Ç¤¢¤ê¡¢
³ÆÊ¸»úÎ󤢤뤤¤Ï±é»»¼°¤¬¥ê¥¹¥È¤Î½ç¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
ºÇ¸å¤Ë²þ¹Ô¤Ï½ÐÎϤµ¤ì¤Þ¤»¤ó¡£
±é»»¼°¤Ïɾ²Á¤µ¤ì¡¢¤½¤ÎÃͤ¬É½¼¨¤µ¤ì¤ë¤È¤È¤â¤Ë¡¢
ÊÑ¿ô last ¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡£
print Ê¸Ãæ¤Îʸ»úÎó¤Ï½ÐÎϤËɽ¼¨¤µ¤ì¤Þ¤¹¤¬¡¢ÆÃ¼ìʸ»ú¤ò´Þ¤á¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
ÆÃ¼ìʸ»ú¤Ï¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å (\) ¤Ç»Ï¤Þ¤ê¤Þ¤¹¡£
bc ¤Ç»È¤¨¤ëÆÃ¼ìʸ»ú¤Ï¡¢
"a" (¥Ù¥ë)¡¢"b" (¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹)¡¢
"f" (¥Õ¥©¡¼¥à¥Õ¥£¡¼¥É)¡¢"n" (²þ¹Ô)¡¢"r" (Éüµ¢)¡¢"q" (Æó½Å°úÍÑÉä)¡¢
"t" (¥¿¥Ö)¡¢"\" (¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å) ¤Ç¤¹¡£
¤³¤ì°Ê³°¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£
- { statement_list }
-
ʣʸ¤Ç¤¹¡£Ê£¿ô¤Îʸ¤ò 1 ¤Ä¤Î¥°¥ë¡¼¥×¤Ë¤Þ¤È¤á¤Æ¼Â¹Ô¤·¤Þ¤¹¡£
- if ( expression ) statement1 [else statement2]
-
if ʸ¤Ï±é»»¼° expression ¤òɾ²Á¤·¡¢¤½¤ÎÃͤ˱þ¤¸¤Æ
ʸ statement1 ¤Þ¤¿¤Ïʸ statement2 ¤ò¼Â¹Ô¤·¤Þ¤¹¡£
expression ¤ÎÃͤ¬ 0 ¤Ç¤Ê¤±¤ì¤Ð statement1 ¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
statement2 ¤¬Â¸ºß¤·¡¢expression ¤ÎÃͤ¬ 0 ¤Ê¤é¤Ð¡¢statement2 ¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
(else Àá¤Ï³ÈÄ¥µ¡Ç½¤Ç¤¹¡£)
- while ( expression ) statement
-
while ʸ¤Ï expression ¤¬ 0 ¤Ç¤Ê¤¤´Ö¡¢·«¤êÊÖ¤· statement ¤ò¼Â¹Ô¤·¤Þ¤¹¡£
statement ¤Î¼Â¹ÔÁ°¤ËËè²ó expression ¤òɾ²Á¤·¤Þ¤¹¡£
expression ¤ÎÃͤ¬ 0 ¤Ë¤Ê¤ë¤«¡¢break ʸ¤ò¼Â¹Ô¤¹¤ë¤È¡¢
¥ë¡¼¥×¤¬½ªÎ»¤·¤Þ¤¹¡£
- for ( [expression1] ; [expression2] ; [expression3] ) statement
-
for ʸ¤Ï statement ¤Î·«¤êÊÖ¤·¼Â¹Ô¤òÀ©¸æ¤·¤Þ¤¹¡£
expression1 ¤Ï¥ë¡¼¥×¼Â¹Ô¤ÎÁ°¤Ëɾ²Á¤µ¤ì¤Þ¤¹¡£
expression2 ¤Ï statement ¤Î¼Â¹ÔÁ°¤ËËè²óɾ²Á¤µ¤ì¡¢
¤½¤ÎÃͤ¬ 0 ¤Ç¤Ê¤±¤ì¤Ð statement ¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
expression2 ¤ÎÃͤ¬ 0 ¤Ë¤Ê¤ë¤È¡¢¥ë¡¼¥×¤Ï½ªÎ»¤·¤Þ¤¹¡£
³Æ statement ¼Â¹Ô¤Î¸å¡¢ºÆ¤Ó expression2 ¤¬É¾²Á¤µ¤ì¤ëÁ°¤Ë expression3 ¤¬
ɾ²Á¤µ¤ì¤Þ¤¹¡£
expression1 ¤¢¤ë¤¤¤Ï expression3 ¤¬¾Êά¤µ¤ì¤Æ¤¤¤ë¤È¡¢
¤½¤³¤Ç¤Ï²¿¤âɾ²Á¤µ¤ì¤Þ¤»¤ó¡£
expression2 ¤¬¾Êά¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢expression2 ¤¬ 1 ¤Ç¤¢¤ë¤Î¤È
ƱÍͤ˰·¤ï¤ì¤Þ¤¹¡£
(³Æ expression ¤¬¾Êά²Äǽ¤Ê¤Î¤Ï³ÈÄ¥µ¡Ç½¤Ç¤¹¡£
POSIX bc ¤Ç¤Ï¡¢3 ¤Ä¤Î expression ¤Ï¤É¤ì¤â¾Êά¤Ç¤¤Þ¤»¤ó¡£)
°Ê²¼¤Ï for ʸ¤ÈÅù²Á¤Ê¥³¡¼¥É¤Ç¤¹:
- expression1;
while (expression2) {
statement;
expression3;
}
- break
-
¤½¤ì¤ò´Þ¤àºÇ¤âÆâ¦¤Î while ¤â¤·¤¯¤Ï for ʸ¤Ë¤è¤ë·«¤êÊÖ¤·¤ò¶¯À©Åª¤ËÃæÃǤ·¤Þ¤¹¡£
- continue
-
¤½¤ì¤ò´Þ¤àºÇ¤âÆâ¦¤Î for ʸ¤Ë¤ª¤±¤ë¼¡¤Î·«¤êÊÖ¤·¤Ë¿Ê¤ß¤Þ¤¹¡£
(continue ʸ¤Ï³ÈÄ¥µ¡Ç½¤Ç¤¹)
- halt
-
¼Â¹Ô¤µ¤ì¤ë¤È bc ¥×¥í¥»¥Ã¥µ¤ò½ªÎ»¤µ¤»¤Þ¤¹(³ÈÄ¥µ¡Ç½)¡£
Î㤨¤Ð "if (0 == 1) halt" ¤Î¾ì¹ç¤Ï bc ¤Ï½ªÎ»¤·¤Þ¤»¤ó¡£
halt ʸ¤¬¼Â¹Ô¤µ¤ì¤Ê¤¤¤«¤é¤Ç¤¹¡£
- return
-
´Ø¿ô¤«¤éÌá¤ê¤Þ¤¹¡£´Ø¿ô¤Î·ë²Ì¤Ï 0 ¤Ë¤Ê¤ê¤Þ¤¹¡£(´Ø¿ô¤Î¾Ï¤ò»²¾È)
- return ( expression )
-
´Ø¿ô¤«¤éÌá¤ê¤Þ¤¹¡£´Ø¿ô¤Î·ë²Ì¤Ï expression ¤Ë¤Ê¤ê¤Þ¤¹¡£(´Ø¿ô¤Î¾Ï¤ò»²¾È)
³ÈÄ¥µ¡Ç½¤Ç¤¹¤¬¡¢³ç¸Ì¤Ïɬ¿Ü¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
µ¿»÷ʸ
¤³¤ì¤é¤Ïº£¤Þ¤Ç¤Îʸ¤È¤Ïưºî¤¬°Û¤Ê¤ê¤Þ¤¹¡£
µ¿»÷ʸ¤Ï¼Â¹Ôʸ¤Ç¤Ï¤Ê¤¯¡¢¡Ö¥³¥ó¥Ñ¥¤¥ë¡×»þÅÀ¤Ç½èÍý¤µ¤ì¤Þ¤¹¡£
- limits
-
bc ¤Î¥í¡¼¥«¥ë¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤êÀ©¸Â¤µ¤ì¤ë¸Â³¦Ãͤòɽ¼¨¤·¤Þ¤¹¡£
(limits ¤Ï³ÈÄ¥µ¡Ç½¤Ç¤¹)
- quit
-
bc ¤ò½ªÎ»¤·¤Þ¤¹¡£¤É¤ó¤Ê¾ì½ê¤Ë¤¢¤Ã¤Æ¤â¡¢quit ʸ¤Ï
ÆþÎϤµ¤ì¤¿»þÅÀ¤Ç¼Â¹Ô¤µ¤ì¤Þ¤¹¡£Î㤨¤Ð¡¢
"if (0 == 1) quit"
¤È¤¤¤¦µ½Ò¤Ç¤¢¤Ã¤Æ¤â¡¢bc ¤Ï½ªÎ»¤·¤Þ¤¹¡£
- warranty
-
Êݾڤ˴ؤ¹¤ëÃí°Õ¤òŤá¤Ëɽ¼¨¤·¤Þ¤¹¡£
(warranty ¤Ï³ÈÄ¥µ¡Ç½¤Ç¤¹)
´Ø¿ô
´Ø¿ô¤Ï¡¢¸å¤Ç¼Â¹Ô¤µ¤ì¤ë¤Ù¤·×»»¼ê½ç¤òÄêµÁ¤¹¤ëµ¡Ç½¤Ç¤¹¡£
bc
¤Î´Ø¿ô¤Ï¾ï¤ËÃͤò·×»»¤·¡¢¤½¤ì¤ò¸Æ¤Ó¤À¤·Â¦¤ËÊÖ¤·¤Þ¤¹¡£
´Ø¿ôÄêµÁ¤Ï¡¢¤½¤ì¤¬ÆþÎϤ«¤éÆÉ¤ß¹þ¤Þ¤ì¤¿»þÅÀ¤ÇÄêµÁ¤¬¹Ô¤ï¤ì¤ë¤È¤¤¤¦ÅÀ¤Ç
¡Ö¥À¥¤¥Ê¥ß¥Ã¥¯(ưŪ)¡×¤Ç¤¹¡£
°ìÅÙÄêµÁ¤µ¤ì¤¿´Ø¿ô¤Ï¡¢Æ±¤¸Ì¾Á°¤ÇÊ̤δؿô¤¬ÄêµÁ¤µ¤ì¤ë¤Þ¤Ç»ÈÍѲÄǽ¤Ç¡¢
¿·¤·¤¤´Ø¿ô¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ï¡¢Á°¤Î´Ø¿ô¤¬ÃÖ¤´¹¤¨¤é¤ì¤Þ¤¹¡£
´Ø¿ô¤ÎÄêµÁ¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¹Ô¤¤¤Þ¤¹:
- define name ( parameters ) { newline
auto_list statement_list }
´Ø¿ô¸Æ¤Ó½Ð¤·¤Ï¡¢
"name(parameters)"
¤È¤¤¤¦·Á¼°¤Î±é»»¼°¤Ç¤¹¡£
¥Ñ¥é¥á¡¼¥¿ parameters ¤Ï¿ô¤¢¤ë¤¤¤ÏÇÛÎó (³ÈÄ¥µ¡Ç½) ¤Ç¤¹¡£
´Ø¿ôÄêµÁ¤Ç¤Ï¡¢0 ¤¢¤ë¤¤¤Ï 1 ¸Ä°Ê¾å¤Î¥Ñ¥é¥á¡¼¥¿Ì¾¤ò
¥³¥ó¥Þ¤Ç¶èÀڤäÆÊ¤٤뤳¤È¤ÇÄêµÁ¤·¤Þ¤¹¡£
¿ô¤ÏÃÍÅϤ·(call by value)¤Ç¤Î¤ßÅϤµ¤ì¡¢ÇÛÎó¤ÏÊÑ¿ôÅϤ·(call by variable)¤Ç
¤Î¤ßÅϤµ¤ì¤Þ¤¹¡£
ÇÛÎó¤Ï¥Ñ¥é¥á¡¼¥¿ÄêµÁÃæ¤Ç "name[]" ¤Î¤è¤¦¤Ëɽµ¤·¤Æ»ØÄꤷ¤Þ¤¹¡£
´Ø¿ô¸Æ¤Ó½Ð¤·¤Ç¤Ï¡¢¿ô¤Î¥Ñ¥é¥á¡¼¥¿¤ËÂФ·¤Æ´°Á´¤Ê±é»»¼°¤Î¼Â¥Ñ¥é¥á¡¼¥¿¤ò
µ½Ò¤·¤Þ¤¹¡£
ÇÛÎó¤òÅϤ¹É½µ¤ÏÇÛÎó¥Ñ¥é¥á¡¼¥¿ÄêµÁ¤ÈƱÍͤǤ¹¡£
̾Á°ÉÕ¤ÇÛÎó¤ÏÊÑ¿ô(variable)¤Ë¤è¤Ã¤Æ´Ø¿ô¤ËÅϤµ¤ì¤Þ¤¹¡£
´Ø¿ôÄêµÁ¤Ï¥À¥¤¥Ê¥ß¥Ã¥¯¤æ¤¨¡¢
¥Ñ¥é¥á¡¼¥¿¤Î¿ô¤È·¿¤Ï´Ø¿ô¸Æ¤Ó½Ð¤·¤ÎºÝ¤Ë¥Á¥§¥Ã¥¯¤µ¤ì¤Þ¤¹¡£
¥Ñ¥é¥á¡¼¥¿¤Î¿ô¤¢¤ë¤¤¤Ï·¿¤Ë²¿¤é¤«¤ÎÉÔÀ°¹ç¤¬¤¢¤ë¤È¡¢
¥é¥ó¥¿¥¤¥à¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤¹¡£
̤ÄêµÁ´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤â¥é¥ó¥¿¥¤¥à¥¨¥é¡¼¤È¤Ê¤ê¤Þ¤¹¡£
auto_list ¤Ï¾Êά²Äǽ¤Ç¡¢¥í¡¼¥«¥ëÊÑ¿ô¤È¤·¤Æ»ÈÍѤ¹¤ëÊÑ¿ô¤Î¥ê¥¹¥È
¤Ç¤¹¡£auto_list ¤¬Â¸ºß¤¹¤ë¤Ê¤é¡¢¤½¤Îʸˡ¤Ï
"auto name, ... ;"
¤È¤Ê¤ê¤Þ¤¹¡£(¥»¥ß¥³¥í¥ó¤Ï¾Êά²Äǽ¤Ç¤¹¡£)
³Æ name ¤¬¥í¡¼¥«¥ëÊÑ¿ô¤Î̾Á°¤È¤Ê¤ê¤Þ¤¹¡£
ÇÛÎó¤Ï¥Ñ¥é¥á¡¼¥¿¤ÈƱÍͤÎɽµ¤Ç»ØÄê¤Ç¤¤Þ¤¹¡£
¤³¤ì¤é¤ÎÊÑ¿ô¤Ï¡¢´Ø¿ô¤ÎºÇ½é¤Ç¤½¤ÎÃͤ¬¥¹¥¿¥Ã¥¯¤Ë¥×¥Ã¥·¥å¤µ¤ì¤¿¤Î¤Á
ÃÍ 0 ¤Ë½é´ü²½¤µ¤ì¡¢´Ø¿ô¤Î¼Â¹ÔÃæ¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£
¤³¤ì¤é¤ÎÊÑ¿ô¤Ï´Ø¿ô½Ð¸ý¤Ë¤Æ¥Ý¥Ã¥×¤µ¤ì¡¢
(´Ø¿ô¸Æ¤Ó½Ð¤·»þ¤Î)¸µ¤ÎÃͤ¬Éü¸µ¤µ¤ì¤Þ¤¹¡£
¥Ñ¥é¥á¡¼¥¿¤Ï¼ÂºÝ¤Ë¤Ï¥í¡¼¥«¥ëÊÑ¿ô¤Ç¤¢¤ê¡¢
´Ø¿ô¸Æ¤Ó½Ð¤·¤ÇÍ¿¤¨¤é¤ì¤¿Ãͤ˽é´ü²½¤µ¤ì¤Þ¤¹¡£
bc ¤Î¥í¡¼¥«¥ëÊÑ¿ô¤ÏÅÁÅýŪ¤Ê°ÕÌ£¤Ç¤Î¥í¡¼¥«¥ëÊÑ¿ô¤È°Û¤Ê¤ê¡¢
´Ø¿ô A ¤¬´Ø¿ô B ¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë¤è¤¦¤Ê¾ì¹ç¡¢´Ø¿ô B ¤ÎÃæ¤Ë
´Ø¿ô A ¤Î¥í¡¼¥«¥ëÊÑ¿ô¤ÈƱ¤¸Ì¾Á°¤Î¥í¡¼¥«¥ëÊÑ¿ô¤¬¤Ê¤¤¸Â¤ê¡¢
´Ø¿ô A ¤Î¥í¡¼¥«¥ëÊÑ¿ô̾¤ò¤½¤Î¤Þ¤Þ»È¤Ã¤Æ¡¢
´Ø¿ô B ¤«¤é´Ø¿ô A ¤Î¥í¡¼¥«¥ëÊÑ¿ô¤ò¥¢¥¯¥»¥¹¤Ç¤¤Þ¤¹¡£
¥í¡¼¥«¥ëÊÑ¿ô¤È¥Ñ¥é¥á¡¼¥¿¤Ï¥¹¥¿¥Ã¥¯¤Ë¥×¥Ã¥·¥å¤µ¤ì¤ë¤¿¤á¡¢
bc ¤ÏºÆµ¢Åª¤Ê´Ø¿ô¸Æ¤Ó½Ð¤·¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£
´Ø¿ôËÜÂÎ¤Ï bc ¤Îʸ¤Î¥ê¥¹¥È¤Ç¤¹¡£
·«¤êÊÖ¤·½Ò¤Ù¤Þ¤¹¤È¡¢Ê¸¤Ï¥»¥ß¥³¥í¥ó¤«²þ¹Ô¤Ç¶èÀÚ¤é¤ì¤Æ¤¤¤Þ¤¹¡£
return ʸ¤Ë¤è¤ê´Ø¿ô¤Ï½ªÎ»¤·¡¢ÃͤòÊÖ¤·¤Þ¤¹¡£
return ʸ¤Ë¤Ï 2 ¤Ä¤Î·Á¼°¤¬¤¢¤ê¡¢
¤Ò¤È¤Ä¤á¤Î·Á¼° "return" ¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤ËÃÍ 0 ¤òÊÖ¤·¤Þ¤¹¡£
¤â¤¦¤Ò¤È¤Ä¤Î·Á¼° "return ( expression )" ¤Ï¡¢
expression ¤ÎÃͤò·×»»¤·¡¢¤½¤ì¤ò¸Æ¤Ó½Ð¤·¸µ¤ËÊÖ¤·¤Þ¤¹¡£
³Æ´Ø¿ô¤ÎºÇ¸å¤Ë¤Ï "return (0)" ¤¬¤¢¤ë¤â¤Î¤È²ò¼á¤µ¤ì¤Þ¤¹¡£
¤³¤ì¤Ë¤è¤ê¡¢ÌÀ¼¨Åª¤Ë return ʸ¤òÃÖ¤«¤Ê¤¯¤Æ¤â¡¢
´Ø¿ô¤Ï½ªÎ»¤·¤ÆÃÍ 0 ¤òÊÖ¤·¤Þ¤¹¡£
´Ø¿ô¤ÎÃæ¤Ç¤Ï¡¢ÊÑ¿ô ibase ¤Îưºî¤¬ÊѤï¤ê¤Þ¤¹¡£´Ø¿ô¤ÎÃæ¤Ç»È¤ï¤ì¤Æ
¤¤¤ëÄê¿ô¤Ï¡¢´Ø¿ô¤Î¸Æ¤Ó¤À¤·»þÅÀ¤Î ibase ¤ò¸µ¤ËÊÑ´¹¤¬¹Ô¤ï¤ì¤Þ¤¹¡£
¤³¤Î¤¿¤á¡¢´Ø¿ôÆâÉô¤Ç ibase ¤òÊѹ¹¤·¤Æ¤â̵»ë¤µ¤ì¤Þ¤¹¡£¤¿¤À¤·¡¢É¸
½à´Ø¿ô read ¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤ÏÎã³°¤Ç¡¢¤³¤ì¤Ï¾ï¤Ë¸½ºß¤Î
ibase ¤ÎÃͤò¤â¤È¤ËÊÑ´¹¤¬¹Ô¤ï¤ì¤Þ¤¹¡£
³ÈÄ¥µ¡Ç½¤Ç¤¹¤¬¡¢ÄêµÁ¤Î½ñ¼°¤¬¼ã´³´Ë¤ä¤«¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
ɸ½à¤Ç¤Ï¡¢³«¤¯¥Ö¥ì¡¼¥¹¤¬ define ¥¡¼¥ï¡¼¥É¤ÈƱ¤¸¹Ô¤Ë¤¢¤ë¤³¤È¤È¡¢
¾¤ÎÉôʬ¤¬°ú¤Â³¤¯¹Ô¤Ë¤¢¤ë¤³¤È¤¬É¬¿Ü¤Ç¤¹¡£
ËܥС¼¥¸¥ç¥ó¤Î bc ¤Ç¤Ï¡¢´Ø¿ô¤Î³«¤¯¥Ö¥ì¡¼¥¹¤ÎÁ°¸å¤Î²þ¹Ô¿ô¤ÏǤ°Õ¤Ç¤¹¡£
Î㤨¤Ð¡¢¼¡¤ÎÄêµÁ¤Ï¹çË¡¤Ç¤¹¡£
-
define d (n) { return (2*n); }
define d (n)
{ return (2*n); }
¿ô³Ø¥é¥¤¥Ö¥é¥ê
bc ¤Ë -l ¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤Æµ¯Æ°¤·¤¿¾ì¹ç¤Ï¡¢¿ô³Ø¥é¥¤¥Ö¥é¥ê¤¬
ÆÉ¤ß¹þ¤Þ¤ì¡¢¥Ç¥Õ¥©¥ë¥È¤Î scale ¤¬ 20 ¤ËÀßÄꤵ¤ì¤Þ¤¹¡£
¿ô³Ø´Ø¿ô¤Ï¡¢¤½¤ì¤ò¸Æ¤Ó½Ð¤·¤¿»þÅÀ¤Î scale ¤ÎÃͤ˽¾¤Ã¤Æ·×»»¤ò¹Ô¤¤¤Þ¤¹¡£
¿ô³Ø¥é¥¤¥Ö¥é¥ê¤Ë¤è¤Ã¤Æ»ÈÍѲÄǽ¤Ë¤Ê¤ë´Ø¿ô¤Ï¡¢¼¡¤ÎÄ̤ê¤Ç¤¹:
- s (x)
-
sin (x ¤Îñ°Ì¤Ï¥é¥¸¥¢¥ó)
- c (x)
-
cos (x ¤Îñ°Ì¤Ï¥é¥¸¥¢¥ó)
- a (x)
-
atan (ÊÖ¤êÃͤÎñ°Ì¤Ï¥é¥¸¥¢¥ó)
- l (x)
-
log (¼«Á³Âпô)
- e (x)
-
exp (»Ø¿ô´Ø¿ô)
- j (n,x)
-
À°¿ô n ¼¡¤Î¥Ù¥Ã¥»¥ë´Ø¿ô
»ÈÍÑÎã
¼¡¤ÎÎã¤Ï¡¢/bin/sh ¤Ç¥·¥§¥ëÊÑ¿ô pi ¤Ë ``¥Ñ¥¤'' ¤ÎÃͤòÂåÆþ¤·¤Þ¤¹¡£
-
pi=$(echo "scale=10; 4*a(1)" | bc -l)
¼¡¤ÎÎã¤Ï¡¢¿ô³Ø¥é¥¤¥Ö¥é¥ê¤Ç»È¤ï¤ì¤Æ¤¤¤ë ``e (x)'' ¤ÎÄêµÁ¤Ç¤¹¡£
¤³¤Î´Ø¿ô¤Ï POSIX bc ¤Çµ½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
-
scale = 20
/* Uses the fact that e^x = (e^(x/2))^2
When x is small enough, we use the series:
e^x = 1 + x + x^2/2! + x^3/3! + ...
*/
define e(x) {
auto a, d, e, f, i, m, v, z
/* Check the sign of x. */
if (x<0) {
m = 1
x = -x
}
/* Precondition x. */
z = scale;
scale = 4 + z + .44*x;
while (x > 1) {
f += 1;
x /= 2;
}
/* Initialize the variables. */
v = 1+x
a = x
d = 1
for (i=2; 1; i++) {
e = (a *= x) / (d *= i)
if (e == 0) {
if (f>0) while (f--) v = v*v;
scale = z
if (m) return (1/v);
return (v/1);
}
v += e
}
}
¼¡¤ÎÎã¤Ï¡¢bc ¤Î³ÈÄ¥µ¡Ç½¤ò»È¤Ã¤Æ¡¢``checkbook balances''
(¾®ÀÚ¼êÄ¢»Ä¹â) ¤ò·×»»¤¹¤ë´Êñ¤Ê¥×¥í¥°¥é¥à¤Ç¤¹¡£
¤³¤Î¥×¥í¥°¥é¥à¤ò¥Õ¥¡¥¤¥ë¤Ë¤·¤Æ¤ª¤¯¤È¡¢
Ëè²ó¥¿¥¤¥×¤·¤Ê¤ª¤µ¤º¤Ë²¿ÅÙ¤â»È¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
-
scale=2
print "\nCheck book program!\n"
print " Remember, deposits are negative transactions.\n"
print " Exit by a 0 transaction.\n\n"
print "Initial balance? "; bal = read()
bal /= 1
print "\n"
while (1) {
"current balance = "; bal
"transaction? "; trans = read()
if (trans == 0) break;
bal -= trans
bal /= 1
}
quit
¼¡¤ÎÎã¤Ï¡¢ºÆµ¢¸Æ¤Ó½Ð¤·¤Ë¤è¤ê³¬¾è¤ò·×»»¤¹¤ë´Ø¿ô¤Ç¤¹¡£
-
define f (x) {
if (x <= 1) return (1);
return (f(x-1) * x);
}
readline ¤È libedit ¤Î¥ª¥×¥·¥ç¥ó
GNU bc ¤Ï (configure ¤Î¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤Æ) GNU readline
ÆþÎÏ¥¨¥Ç¥£¥¿¥é¥¤¥Ö¥é¥ê¤Þ¤¿¤Ï BSD libedit ¥é¥¤¥Ö¥é¥ê
¤ò»È¤¦¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤Ç¤¤Þ¤¹¡£
¤³¤ì¤Ï¡¢bc ¤ËÆþÎϤ¹¤ëÁ°¤Ë¡¢¹Ô¤ÎÊÔ½¸¤ò²Äǽ¤Ë¤·¤Þ¤¹¡£
°ÊÁ°¤ËÆþÎϤ·¤¿¹Ô¤Î¥Ò¥¹¥È¥ê¤âÍøÍѲÄǽ¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç
¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ bc ¤Ç¤Ï¡¢¤µ¤é¤Ë 1 ¤Ä¤ÎÆÃ¼ì¤ÊÊÑ¿ô
history ¤¬Äɲ䵤졢¥Ò¥¹¥È¥ê¤ËÊݸ¤µ¤ì¤ë¹Ô¤Î¿ô¤ò»ØÄꤷ¤Þ¤¹¡£
readline ¤Ç¤Ï¡¢
¤½¤ÎÃͤ¬ -1 (¥Ç¥Õ¥©¥ë¥ÈÃÍ)¤Ê¤é¡¢¥Ò¥¹¥È¥ê¹Ô¤ÏÀ©¸Â¤Ê¤¯Êݸ¤µ¤ì¤Þ¤¹¡£
Àµ¤Î¿ô¤ò»ØÄꤹ¤ë¤È¡¢¥Ò¥¹¥È¥ê¹Ô¤¬¤½¤Î¿ô¤ËÀ©¸Â¤µ¤ì¤Þ¤¹¡£
0 ¤Ê¤é¥Ò¥¹¥È¥êµ¡Ç½¤¬Ìµ¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£
¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 100 ¤Ç¤¹¡£
¾Ü¤·¤¯¤Ï¡¢¥æ¡¼¥¶¥Þ¥Ë¥å¥¢¥ë¤Î
GNU readline ¤È history ¥é¥¤¥Ö¥é¥ê¤È
BSD libedit ¤ò¤´Í÷²¼¤µ¤¤¡£
readline ¤È libedit ¤ÎξÊý¤òƱ»þ¤Ë͸ú²½¤Ç¤¤Þ¤»¤ó¡£
Áê°ãÅÀ
¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î
bc
¤Ï POSIX P1003.2/D11 ¥É¥é¥Õ¥È¤«¤é¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¡¢
¤½¤Î¥É¥é¥Õ¥È¤ä°ÊÁ°¤Î¼ÂÁõ¤ËÈæ¤Ù¤Æ¤¤¤¯¤Ä¤«¤ÎÁê°ãÅÀ¤ä³ÈÄ¥ÅÀ¤¬¤¢¤ê¤Þ¤¹¡£
ÅÁÅýŪ¤Ë¹Ô¤ï¤ì¤Æ¤¤¤¿¤è¤¦¤Ê
dc(1)
¤òÍѤ¤¤¿¼ÂÁõ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Ïñ°ì¥×¥í¥»¥¹¤Ç¤¢¤ê¡¢
¥×¥í¥°¥é¥à¤ò¥Ð¥¤¥È¥³¡¼¥É¤ËÊÑ´¹¤·¤¿¤â¤Î¤ò²òÀϤ·¤Æ¼Â¹Ô¤·¤Þ¤¹¡£
¡Ö¥É¥¥å¥á¥ó¥È¤ËµºÜ¤µ¤ì¤Æ¤¤¤Ê¤¤¡×¥ª¥×¥·¥ç¥ó (-c) ¤¬¤¢¤ê¡¢
¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ëÂå¤ï¤ê¤Ë¡¢¤½¤ì¤ò¥Ð¥¤¥È¥³¡¼¥É¤ËÊÑ´¹¤·¤¿·ë²Ì¤ò
ɸ½à½ÐÎϤ˽ÐÎϤ·¤Þ¤¹¡£
¤³¤ì¤Ï¼ç¤È¤·¤Æ¡¢¥Ñ¡¼¥¶¤Î¥Ç¥Ð¥Ã¥°¤È¿ô³Ø¥é¥¤¥Ö¥é¥ê¤Î½àÈ÷¤ËÍѤ¤¤é¤ì¤Þ¤·¤¿¡£
¼ç¤ÊÁê°ãÅÀ¤Ï³ÈÄ¥µ¡Ç½¤Ë¤è¤ë¤â¤Î¤Ç¤¹¡£
µ¡Ç½¤ò¹â¤á¤¿¤êÄɲä·¤¿¤ê¤¹¤ë¤¿¤á¤Ëµ¡Ç½¤¬³ÈÄ¥¤µ¤ì¤¿¤ê¡¢
¿·µ¡Ç½¤¬Äɲ䵤줿¤ê¤·¤Æ¤¤¤Þ¤¹¡£
Áê°ãÅÀ¤È³ÈÄ¥ÅÀ¤Î¥ê¥¹¥È¤ò°Ê²¼¤Ë¼¨¤·¤Þ¤¹¡£
- LANG
-
¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢
´Ä¶ÊÑ¿ô LANG ¤ª¤è¤Ó LC_ ¤Ç»Ï¤Þ¤ë¤¹¤Ù¤Æ¤Î´Ä¶ÊÑ¿ô¤Î½èÍý¤Ë´Ø¤·¤Æ POSIX ɸ½à¤Ë
½àµò¤·¤Æ¤¤¤Þ¤»¤ó¡£
- ̾Á°
-
ÅÁÅýŪ¤Ê
bc
¤ª¤è¤Ó POSIX
bc
¤Ï¡¢´Ø¿ô¡¢ÊÑ¿ô¡¢ÇÛÎó¤Î̾Á°¤È¤·¤ÆÃ±°ì¤Îʸ»ú¤ò»È¤¤¤Þ¤¹¡£
¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢
ÀèÆ¬¤¬Ê¸»ú¤Ç»Ï¤Þ¤ê¡¢Ê¸»ú¤È¿ô»ú¤È¥¢¥ó¥À¡¼¥¹¥³¥¢¤Ç
¹½À®¤µ¤ì¤ë 2 ʸ»ú°Ê¾å¤Î̾Á°¤¬»È¤¨¤ë¤è¤¦¤Ë³ÈÄ¥¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
- ʸ»úÎó
-
ʸ»úÎó¤Ë¤Ï NUL ʸ»ú¤ò´Þ¤à¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£
POSIX ¤Ç¤Ï¡¢Ê¸»úÎó¤Ë¤Ï¤¢¤é¤æ¤ëʸ»ú¤ò´Þ¤á¤ë¤³¤È¤¬¤Ç¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡¢
¤È¤·¤Æ¤¤¤Þ¤¹¡£
- last
-
POSIX bc ¤Ë¤ÏÊÑ¿ô last ¤Ï¤¢¤ê¤Þ¤»¤ó¡£
bc ¤Î¼ÂÁõ¤Ë¤è¤Ã¤Æ¤Ï¡¢last ¤ÈƱ¤¸°ÕÌ£¤Ç
¥Ô¥ê¥ª¥É (.) ¤òÍѤ¤¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£
- Èæ³Ó
-
POSIX bc ¤Ç¤Ï¡¢Èæ³Ó¤Ï if ʸ¡¢while ʸ¡¢for ʸ¤ÎÂè 2 ¼°¤ÎÃæ¤Ç¤Î¤ß
ÍѤ¤¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤Þ¤¿¡¢¤³¤ì¤é¤Îʸ¤ÎÃæ¤Ç¤Ï¤¿¤À 1 ¤Ä¤Î´Ø·¸±é»»¤·¤«»È¤¨¤Þ¤»¤ó¡£
- if ʸ, else Àá
-
POSIX bc ¤Ë¤Ï else Àá¤Ï¤¢¤ê¤Þ¤»¤ó¡£
- for ʸ
-
POSIX bc ¤Ç¤Ï for ʸ¤Î³Æ±é»»¼°¤Ï¾Êά¤Ç¤¤Þ¤»¤ó¡£
- &&, ||, !
-
POSIX bc ¤Ë¤ÏÏÀÍý±é»»»Ò¤Ï¤¢¤ê¤Þ¤»¤ó¡£
- read ´Ø¿ô
-
POSIX bc ¤Ë¤Ï read ´Ø¿ô¤Ï¤¢¤ê¤Þ¤»¤ó¡£
- print ʸ
-
POSIX bc ¤Ë¤Ï print ʸ¤Ï¤¢¤ê¤Þ¤»¤ó¡£
- continue ʸ
-
POSIX bc ¤Ë¤Ï continue ʸ¤Ï¤¢¤ê¤Þ¤»¤ó¡£
- return ʸ
-
POSIX bc ¤Ç¤Ï¡¢return ʸ¤Î¼þ¤ê¤Ë³ç¸Ì¤¬É¬ÍפǤ¹¡£
- ÇÛÎó¥Ñ¥é¥á¡¼¥¿
-
POSIX bc ¤Ç¤Ï (¸½ºß¤Î¤È¤³¤í) ÇÛÎó¥Ñ¥é¥á¡¼¥¿¤Ï´°Á´¤Ë¤Ï»È¤¨¤Þ¤»¤ó¡£
POSIX ¤Îʸˡ¤Ç¤Ï¡¢´Ø¿ôÄêµÁ¤Ç¤ÏÇÛÎó¤ò»È¤¨¤Þ¤¹¤¬¡¢¼ÂºÝ¤Ë¸Æ¤Ó½Ð¤¹¤È¤¤Î
¥Ñ¥é¥á¡¼¥¿¤ËÇÛÎó¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£(¤³¤ì¤Ï¤ª¤½¤é¤¯¡¢Ê¸Ë¡¾å¤Î
¸«Íî¤È¤·¤Ç¤·¤ç¤¦¡£) ÅÁÅýŪ¤Ê bc ¤Î¼ÂÁõ¤Ç¤Ï¡¢ÇÛÎó¥Ñ¥é¥á¡¼¥¿¤ÏÃÍÅϤ·
¤Î¤ß¤Ç¤·¤¿¡£
- function format
-
POSIX bc ¤Ç¤Ï¡¢³«¤¯¥Ö¥ì¡¼¥¹¤¬ define ¥¡¼¥ï¡¼¥É¤ÈƱ¤¸¹Ô¤Ë¤¢¤ê¡¢
auto ʸ¤¬¼¡¤Î¹Ô¤Ë¤¢¤ë¤³¤È¤¬É¬ÍפǤ¹¡£
- =+, =-, =*, =/, =%, =^
-
POSIX bc ¤Ç¤Ï¤³¤ì¤é¤Î¡Öµì¼°¡×¤ÎÂåÆþ±é»»»Ò¤òÄêµÁ¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£
¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¤³¤ì¤é¤Î¡Öµì¼°¡×ÂåÆþ±é»»»Ò¤¬»È¤¨¤ë¤«¤âÃΤì¤Þ¤»¤ó¡£
limits ʸ¤ò»È¤Ã¤Æ¡¢¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥Ð¡¼¥¸¥ç¥ó¤¬¤³¤ì¤é¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤«
¤É¤¦¤«¡¢³Î¤«¤á¤Æ¤ß¤Æ²¼¤µ¤¤¡£
¤â¤·¤½¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¡Öµì¼°¡×ÂåÆþ±é»»»Ò¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ì¤Ð¡¢
ʸ "a =- 1" ¤Ï a ¤ËÃÍ -1 ¤òÂåÆþ¤¹¤ëÂå¤ï¤ê¤Ë a ¤ò 1 ¸º¤¸¤Þ¤¹¡£
- ¿ô»úɽµÃæ¤Î¶õÇò
-
¾¤Î bc ¼ÂÁõ¤Ç¤Ï¡¢¿ô»úɽµ¤ÎÃæ¤Ë¶õÇò¤ò´Þ¤á¤ë¤³¤È¤¬µö¤µ¤ì¤Þ¤¹¡£
Î㤨¤Ð¡¢"x=1 3" ¤ÏÊÑ¿ô x ¤ËÃÍ 13 ¤òÂåÆþ¤·¤Þ¤¹¡£
¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î bc ¤Ç¤Ï¡¢Àè¤Îʸ¤Ïʸˡ¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹¡£
- ¥¨¥é¡¼¤È¼Â¹Ô
-
¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î bc ¤Ï¡¢
¥×¥í¥°¥é¥à¤Ëʸˡ¾å¤Î¥¨¥é¡¼¤ä¾¤Î¥¨¥é¡¼¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ë
¤É¤¦¤¤¤¦¥³¡¼¥É¤¬¼Â¹Ô¤µ¤ì¤ë¤«¡¢
¤È¤¤¤¦ÅÀ¤Ç¡¢Â¾¤Î¼ÂÁõ¤È°Û¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¤¢¤ë´Ø¿ôÄêµÁÃæ¤Çʸˡ¥¨¥é¡¼¤¬¸«¤Ä¤«¤ë¤È¡¢
¥¨¥é¡¼²óÉüµ¡¹½¤Ïʸ¤ÎÀèÆ¬¤ò¸«¤Ä¤±¤Æ´Ø¿ô¤Î¥Ñ¡¼¥º¤ò³¤±¤è¤¦¤ÈÅØÎϤ·¤Þ¤¹¡£
¤Ò¤È¤¿¤Ó´Ø¿ô¤ÎÃæ¤Çʸˡ¥¨¥é¡¼¤¬¸«¤Ä¤«¤ë¤È¡¢
¤½¤Î´Ø¿ô¤Ï¸Æ¤Ó½Ð¤»¤Ê¤¯¤Ê¤ê¡¢Ì¤ÄêµÁ¾õÂ֤Ȥʤê¤Þ¤¹¡£
ÂÐÏÃŪ¼Â¹Ô¥³¡¼¥É¤Çʸˡ¥¨¥é¡¼¤¬¤¢¤ë¤È¡¢
¸½ºß¤Î¼Â¹Ô¥Ö¥í¥Ã¥¯¤¬Ìµ¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£
¼Â¹Ô¥Ö¥í¥Ã¥¯¤È¤Ï¡¢¤Ò¤È³¤¤Î´°Á´¤Êʸ¤Î¤¢¤È¤Î¹ÔËö¤Þ¤Ç¤Î¤³¤È¤Ç¤¹¡£
Î㤨¤Ð¡¢¼¡¤Î¥³¡¼¥É
- a = 1
b = 2
¤Ë¤Ï 2 ¤Ä¤Î¼Â¹Ô¥Ö¥í¥Ã¥¯¤¬¤¢¤ê¡¢
- { a = 1
b = 2 }
¤Ë¤Ï 1 ¤Ä¤Î¼Â¹Ô¥Ö¥í¥Ã¥¯¤¬¤¢¤ê¤Þ¤¹¡£
¥é¥ó¥¿¥¤¥à¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È¡¢¸½ºß¤Î¼Â¹Ô¥Ö¥í¥Ã¥¯¤Î¼Â¹Ô¤¬½ªÎ»¤·¤Þ¤¹¡£
¥é¥ó¥¿¥¤¥à¤Î·Ù¹ð¤¬È¯À¸¤·¤Æ¤â¡¢¸½ºß¤Î¼Â¹Ô¥Ö¥í¥Ã¥¯¤Ï½ªÎ»¤·¤Þ¤»¤ó¡£
- ³ä¤ê¹þ¤ß
-
ÂÐÏÃ¥»¥Ã¥·¥ç¥ó¤Î´Ö¡¢SIGINT ¥·¥°¥Ê¥ë (Ä̾üËö¤«¤é¤Î Control-C ÆþÎϤÇ
ȯÀ¸¤·¤Þ¤¹) ¤Ë¤è¤Ã¤Æ¸½ºß¤Î¼Â¹Ô¥Ö¥í¥Ã¥¯¤Î¼Â¹Ô¤¬ÃæÃǤµ¤ì¡¢
¤É¤Î´Ø¿ô¤¬ÃæÃǤµ¤ì¤¿¤«¤ò¼¨¤¹¡Ö¥é¥ó¥¿¥¤¥à¡×¥¨¥é¡¼¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
¥é¥ó¥¿¥¤¥à¤Î¥Ç¡¼¥¿¹½Â¤¤ò¤¹¤Ù¤Æ¥¯¥ê¥¢¤·¤¿¸å¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¡¢
bc ¤Ï¼¡¤ÎÆþÎϤò¼õ¤±ÉÕ¤±¤ë¾õÂ֤ˤʤ俤³¤È¤ò¼¨¤·¤Þ¤¹¡£
¤³¤ì¤Þ¤Ç¤ËÄêµÁ¤·¤¿´Ø¿ô¤Ï¤¹¤Ù¤ÆÄêµÁ¤µ¤ì¤Æ»Ä¤Ã¤Æ¤ª¤ê¡¢
¥í¡¼¥«¥ë¤Ç¤Ê¤¤ÊÑ¿ô¤ÎÃͤϳä¤ê¹þ¤ßȯÀ¸»þÅÀ¤ÎÃͤΤޤޤˤʤäƤ¤¤Þ¤¹¡£
¥í¡¼¥«¥ëÊÑ¿ô¤È´Ø¿ô¥Ñ¥é¥á¡¼¥¿¤Ï¤¹¤Ù¤Æ¡¢¥¯¥ê¥¢½èÍý¤Ë¤è¤Ã¤Æ¾Ãµî¤µ¤ì¤Þ¤¹¡£
ÈóÂÐÏÃ¥»¥Ã¥·¥ç¥ó¤Ç¤Ï¡¢SIGINT ¥·¥°¥Ê¥ë¤Ç bc ¤Î¼Â¹ÔÁ´ÂΤ¬½ªÎ»¤·¤Þ¤¹¡£
¸Â³¦
°Ê²¼¤Î¹àÌܤ¬¸½ºß¤Î
bc
¥×¥í¥»¥Ã¥µ¤Î¸Â³¦ÃͤȤʤäƤ¤¤Þ¤¹¡£
¤³¤Î¤¦¤Á¤¤¤¯¤Ä¤«¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ë»þ¤ËÊѹ¹¤Ç¤¤Þ¤¹¡£
¼ÂºÝ¤ÎÃͤòÆÀ¤ë¤Ë¤Ï limits ʸ¤ò»È¤Ã¤Æ²¼¤µ¤¤¡£
- BC_BASE_MAX
-
¸½ºß¤Î¤È¤³¤í¡¢½ÐÎϤδð¿ô¤ÎºÇÂçÃÍ¤Ï 999 ¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£
ÆþÎϦ¤Î´ð¿ô¤ÎºÇÂçÃÍ¤Ï 16 ¤Ç¤¹¡£
- BC_DIM_MAX
-
¸½ºß¤Î¤È¤³¤í 65535 ¤È¤·¤ÆÇÛÉÛ¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢
¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï°Û¤Ê¤Ã¤Æ¤¤¤ë¤«¤âÃΤì¤Þ¤»¤ó¡£
- BC_SCALE_MAX
-
¾®¿ôÅÀ°Ê²¼¤Î·å¿ô¤Ï INT_MAX ·å¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤Þ¤¿¡¢¾®¿ôÅÀ¤è¤ê¾å¤Î·å¿ô¤â INT_MAX ·å¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
- BC_STRING_MAX
-
ʸ»úÎóÃæ¤Îʸ»ú¿ô¤Ï INT_MAX ʸ»ú¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
- »Ø¿ô
-
Îß¾è±é»» (^) ¤Î»Ø¿ô¤ÎÃÍ¤Ï LONG_MAX ¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
- ÊÑ¿ô̾
-
ñ½ãÊÑ¿ô¡¢ÇÛÎó¡¢´Ø¿ô³Æ¡¹¤Ë¤Ä¤¤¤Æ¡¢°ì°Õ¤Ë¼±Ê̤µ¤ì¤ë̾Á°¤Ï 32767 ¸Ä¤Ë
À©¸Â¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
´Ä¶ÊÑ¿ô
bc ¤Ï°Ê²¼¤Î´Ä¶ÊÑ¿ô¤ò²ò¼á¤·¤Þ¤¹¡£
- POSIXLY_CORRECT
-
-s ¥ª¥×¥·¥ç¥ó¤ÈƱ¤¸¤Ç¤¹¡£
- BC_ENV_ARGS
-
¤³¤ì¤Ï bc ¤Ë°ú¿ô¤òÅϤ¹Ê̤ÎÊýË¡¤Ç¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤¿ô¤È
Ʊ¤¸½ñ¼°¤Ç¤¹¡£¤³¤Î°ú¿ô¤¬ºÇ½é¤Ë½èÍý¤µ¤ì¤ë¤Î¤Ç¡¢¤³¤Î´Ä¶ÊÑ¿ô¤Ç
»
|