ภาษาอังกฤษภาษาฝรั่งเศสสเปน

Ad


ไอคอน Fav ของ OnWorks

bc - ออนไลน์ในคลาวด์

เรียกใช้ bc ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง bc ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


bc - ภาษาเครื่องคิดเลขความแม่นยำตามอำเภอใจ

ซิงค์


bc [ -hlwsqv ] [ตัวเลือกยาว] [ ไฟล์ ... ]

DESCRIPTION


bc เป็นภาษาที่รองรับตัวเลขที่แม่นยำโดยพลการพร้อมการดำเนินการโต้ตอบของ
งบ. มีความคล้ายคลึงกันบางอย่างในไวยากรณ์ภาษาซี อา
ไลบรารีคณิตศาสตร์มาตรฐานพร้อมใช้งานโดยตัวเลือกบรรทัดคำสั่ง หากได้รับการร้องขอ ห้องสมุดคณิตศาสตร์
ถูกกำหนดไว้ก่อนประมวลผลไฟล์ใดๆ bc เริ่มด้วยการประมวลผลโค้ดจากไฟล์ทั้งหมด
ระบุไว้ในบรรทัดคำสั่งตามลำดับที่แสดง หลังจากประมวลผลไฟล์ทั้งหมดแล้ว bc
อ่านจากอินพุตมาตรฐาน รหัสทั้งหมดจะถูกดำเนินการตามที่อ่าน (หากไฟล์มี a
คำสั่งให้หยุดโปรเซสเซอร์ bc จะไม่อ่านจากอินพุตมาตรฐาน)

รุ่นนี้ bc มีส่วนขยายหลายอย่างที่นอกเหนือจากแบบดั้งเดิม bc การใช้งานและ
ร่างมาตรฐาน POSIX ตัวเลือกบรรทัดคำสั่งอาจทำให้ส่วนขยายเหล่านี้พิมพ์ a
เตือนหรือปฏิเสธ เอกสารนี้อธิบายภาษาที่ยอมรับโดยสิ่งนี้
โปรเซสเซอร์ ส่วนขยายจะถูกระบุเช่นนั้น

OPTIONS
-h, --ช่วยด้วย
พิมพ์การใช้งานและออก

-i, --โต้ตอบ
บังคับโหมดโต้ตอบ

-l, --mathlib
กำหนดห้องสมุดคณิตศาสตร์มาตรฐาน

-w, -- เตือน
ให้คำเตือนสำหรับส่วนขยายของ POSIX bc.

-s, --มาตรฐาน
ประมวลผล POSIX . อย่างแม่นยำ bc ภาษา.

-q, --เงียบ
อย่าพิมพ์ยินดีต้อนรับ GNU bc ปกติ

-v, --เวอร์ชัน
พิมพ์หมายเลขเวอร์ชันและลิขสิทธิ์แล้วออก

หมายเลข
องค์ประกอบพื้นฐานที่สุดใน bc เป็นตัวเลข ตัวเลขคือตัวเลขที่แม่นยำโดยพลการ
ความแม่นยำนี้มีทั้งในส่วนจำนวนเต็มและเศษส่วน ตัวเลขทั้งหมดคือ
แทนค่าภายในเป็นทศนิยมและคำนวณทั้งหมดเป็นทศนิยม (รุ่นนี้
ตัดทอนผลลัพธ์จากการดำเนินการหารและคูณ) มีคุณลักษณะสองประการของ
ตัวเลข ความยาว และมาตราส่วน ความยาวคือจำนวนทศนิยมที่มีนัยสำคัญทั้งหมด
ตัวเลขในตัวเลขและมาตราส่วนคือจำนวนทศนิยมทั้งหมดหลังจุดทศนิยม
จุด. ตัวอย่างเช่น:
.000001 มีความยาว 6 และมาตราส่วน 6
1935.000 มีความยาว 7 และมาตราส่วน 3

ตัวแปร
ตัวเลขถูกเก็บไว้ในตัวแปรสองประเภทคือตัวแปรธรรมดาและอาร์เรย์ ทั้งง่าย
มีการตั้งชื่อตัวแปรและตัวแปรอาร์เรย์ ชื่อขึ้นต้นด้วยตัวอักษรตามด้วยตัวเลขใด ๆ
ของตัวอักษร ตัวเลข และขีดล่าง ตัวอักษรทั้งหมดต้องเป็นตัวพิมพ์เล็ก (ตัวอักษรและตัวเลขเต็ม
ชื่อเป็นนามสกุล ใน POSIX bc ชื่อทั้งหมดเป็นตัวพิมพ์เล็กตัวเดียว) ประเภท
ของตัวแปรมีความชัดเจนตามบริบท เนื่องจากชื่อตัวแปรอาร์เรย์ทั้งหมดจะตามด้วย
วงเล็บ ([])

มีตัวแปรพิเศษ XNUMX ตัว คือ ขนาด ไอเบส, โอเบส, และ ล่าสุด. ขนาด กำหนดวิธีการบางอย่าง
การดำเนินการใช้ตัวเลขหลังจุดทศนิยม ค่าเริ่มต้นของ ขนาด คือ 0 ไอเบส
และ เจ้านาย กำหนดฐานการแปลงสำหรับตัวเลขอินพุตและเอาต์พุต ค่าเริ่มต้นสำหรับทั้ง
อินพุตและเอาต์พุตเป็นฐาน 10 ล่าสุด (นามสกุล) เป็นตัวแปรที่มีค่าของ
ล่าสุดพิมพ์หมายเลข. สิ่งเหล่านี้จะกล่าวถึงในรายละเอียดเพิ่มเติมตามความเหมาะสม ทั้งหมดของ
ตัวแปรเหล่านี้อาจมีค่าที่กำหนดให้กับพวกเขาเช่นเดียวกับที่ใช้ในนิพจน์

ความคิดเห็น
ความคิดเห็นใน bc เริ่มด้วยตัวอักษร /* และลงท้ายด้วยตัวอักษร */. ความคิดเห็นอาจ
เริ่มต้นที่ใดก็ได้และปรากฏเป็นช่องว่างเดียวในอินพุต (สิ่งนี้ทำให้เกิดความคิดเห็นถึง
กำหนดรายการอินพุตอื่น ๆ ตัวอย่างเช่น ไม่พบความคิดเห็นตรงกลาง a
ชื่อตัวแปร) ความคิดเห็นรวมถึงการขึ้นบรรทัดใหม่ (สิ้นสุดบรรทัด) ระหว่างจุดเริ่มต้นและจุดสิ้นสุด
ของความคิดเห็น

เพื่อรองรับการใช้สคริปต์สำหรับ bcเพิ่มความคิดเห็นบรรทัดเดียวเป็น an
การขยาย. ความคิดเห็นบรรทัดเดียวเริ่มต้นที่ # อักขระและดำเนินต่อไปในตอนท้ายของ
เส้น. อักขระท้ายบรรทัดไม่ได้เป็นส่วนหนึ่งของความคิดเห็นและดำเนินการตามปกติ

การแสดงออก
ตัวเลขถูกจัดการโดยนิพจน์และคำสั่ง เนื่องจากภาษาเดิมคือ
ออกแบบมาให้โต้ตอบได้ คำสั่งและนิพจน์จะถูกดำเนินการโดยเร็วที่สุด
ไม่มีโปรแกรม "หลัก" รหัสจะถูกดำเนินการแทนเมื่อพบ (ฟังก์ชั่น,
กล่าวถึงในรายละเอียดในภายหลัง กำหนดไว้เมื่อพบ)

นิพจน์ธรรมดาเป็นเพียงค่าคงที่ bc แปลงค่าคงที่เป็นทศนิยมภายใน
ตัวเลขโดยใช้ฐานอินพุตปัจจุบัน ระบุโดยตัวแปร ไอเบส. (มี
ข้อยกเว้นในหน้าที่) ค่านิยมทางกฎหมายของ ไอเบส คือ 2 ถึง 16 การกำหนดค่า
นอกช่วงนี้ไป ไอเบส จะส่งผลให้มีค่า 2 หรือ 16 ตัวเลขที่ป้อนอาจมี
อักขระ 0–9 และ A–F (หมายเหตุ: ต้องเป็นตัวพิมพ์ใหญ่ อักษรตัวพิมพ์เล็กเป็นตัวแปร
ชื่อ) ตัวเลขหลักเดียวมีค่าของหลักเสมอโดยไม่คำนึงถึงค่า
of ไอเบส. (เช่น A = 10.) สำหรับตัวเลขหลายหลัก bc เปลี่ยนตัวเลขอินพุตทั้งหมดมากขึ้นหรือ
เท่ากับ ibase เท่ากับค่าของ ไอเบส-1. ทำให้ตัวเลข FFF เป็น 3 . ที่ใหญ่ที่สุดเสมอ
ตัวเลขของฐานอินพุต

สำนวนเต็มรูปแบบคล้ายกับภาษาระดับสูงอื่นๆ เพราะมีตัวเดียว
ชนิดของตัวเลขไม่มีกฎเกณฑ์สำหรับประเภทการผสม แต่มีกฎเกี่ยวกับ
ขนาดของนิพจน์ ทุกนิพจน์มีมาตราส่วน นี้มาจากมาตราส่วนของ
ตัวเลขเดิม การดำเนินการ และในหลายกรณี ค่าของตัวแปร
ขนาด. ค่าทางกฎหมายของตัวแปร ขนาด เป็น 0 ถึงจำนวนสูงสุดที่ C . แทนได้
จำนวนเต็ม.

ในคำอธิบายต่อไปนี้ของนิพจน์ทางกฎหมาย "expr" หมายถึงนิพจน์ที่สมบูรณ์
และ "var" หมายถึงตัวแปรแบบง่ายหรือแบบอาร์เรย์ ตัวแปรอย่างง่ายก็แค่ a
ชื่อ
และตัวแปรอาร์เรย์ถูกระบุเป็น
ชื่อ[ด่วน]
เว้นแต่จะระบุไว้อย่างเจาะจง มาตราส่วนของผลลัพธ์คือมาตราส่วนสูงสุดของ
การแสดงออกที่เกี่ยวข้อง

- expr ผลลัพธ์คือการปฏิเสธของนิพจน์

++ var ตัวแปรจะเพิ่มขึ้นทีละหนึ่งและค่าใหม่คือผลลัพธ์ของ
การแสดงออก

-- var ตัวแปรถูกลดค่าลงหนึ่งค่า และค่าใหม่คือผลลัพธ์ของ
การแสดงออก

วา ++
ผลลัพธ์ของนิพจน์คือค่าของตัวแปรแล้วตัวแปรคือ
เพิ่มขึ้นทีละหนึ่ง

var -- ผลลัพธ์ของนิพจน์คือค่าของตัวแปร แล้วตัวแปร is
ลดลงไปหนึ่ง

expr+expr
ผลลัพธ์ของนิพจน์คือผลรวมของสองนิพจน์

หมดอายุ - หมดอายุ
ผลลัพธ์ของนิพจน์คือความแตกต่างของนิพจน์ทั้งสอง

หมดอายุ * หมดอายุ
ผลลัพธ์ของนิพจน์เป็นผลคูณของสองนิพจน์

หมดอายุ / หมดอายุ
ผลลัพธ์ของนิพจน์คือผลหารของสองนิพจน์ ขนาดของ
ผลลัพธ์คือค่าของตัวแปร ขนาด.

ประสบการณ์% expr
ผลลัพธ์ของนิพจน์คือ "ส่วนที่เหลือ" และคำนวณได้ดังต่อไปนี้
ทาง. ในการคำนวณ a%b อันดับแรกให้คำนวณ a/b เป็น ขนาด ตัวเลข ผลลัพธ์นั้นถูกใช้
เพื่อคำนวณ a-(a/b)*b เป็นมาตราส่วนสูงสุดของ ขนาด+สเกล(b) และสเกล(a)
If ขนาด ถูกกำหนดเป็นศูนย์และทั้งสองนิพจน์เป็นจำนวนเต็ม นิพจน์นี้คือ
ฟังก์ชันเศษจำนวนเต็ม

ด่วน ^ expr
ผลลัพธ์ของนิพจน์คือค่าของค่าแรกที่เพิ่มขึ้นเป็นค่าที่สอง ดิ
นิพจน์ที่สองต้องเป็นจำนวนเต็ม (ถ้านิพจน์ที่สองไม่ใช่จำนวนเต็ม
มีการสร้างคำเตือนและนิพจน์ถูกตัดทอนเพื่อให้ได้ค่าจำนวนเต็ม)
ขนาดของผลลัพธ์คือ ขนาด ถ้าเลขชี้กำลังเป็นลบ ถ้าเลขชี้กำลังคือ
บวก สเกลของผลลัพธ์คือค่าต่ำสุดของสเกลแรก
นิพจน์คูณค่าของเลขชี้กำลังและสูงสุดของ ขนาด และมาตราส่วน
ของนิพจน์แรก (เช่น มาตราส่วน(a^b) = นาที(มาตราส่วน(a)*b, สูงสุด( ขนาด
มาตราส่วน(a)))) ควรสังเกตว่า expr^0 จะส่งคืนค่า 1 เสมอ

( ประสบการณ์ )
สิ่งนี้จะเปลี่ยนลำดับความสำคัญมาตรฐานเพื่อบังคับการประเมินนิพจน์

var = หมดอายุ
ตัวแปรถูกกำหนดให้เป็นค่าของนิพจน์

var = expr
นี่เทียบเท่ากับ "var = var expr" ยกเว้นส่วน "var"
จะได้รับการประเมินเพียงครั้งเดียว สิ่งนี้สามารถสร้างความแตกต่างได้หาก "var" เป็นอาร์เรย์

นิพจน์เชิงสัมพันธ์เป็นนิพจน์ชนิดพิเศษที่ประเมินเป็น 0 หรือ 1, 0 . เสมอ
ถ้าความสัมพันธ์เป็นเท็จและ 1 ถ้าความสัมพันธ์เป็นจริง สิ่งเหล่านี้อาจปรากฏในกฎหมายใด ๆ
การแสดงออก. (POSIX bc ต้องการให้นิพจน์เชิงสัมพันธ์ใช้เฉพาะในกรณีที่
และสำหรับข้อความและว่าการทดสอบเชิงสัมพันธ์นั้นสามารถทำได้เพียงครั้งเดียว) ความสัมพันธ์
ตัวดำเนินการคือ

expr1 < expr2
ผลลัพธ์คือ 1 ถ้า expr1 น้อยกว่า expr2 อย่างเคร่งครัด

expr1 <= expr2
ผลลัพธ์จะเป็น 1 ถ้า expr1 น้อยกว่าหรือเท่ากับ expr2

expr1 > expr2
ผลลัพธ์คือ 1 ถ้า expr1 มากกว่า expr2 อย่างเคร่งครัด

expr1 >= expr2
ผลลัพธ์คือ 1 ถ้า expr1 มากกว่าหรือเท่ากับ expr2

เอ็กซ์พีอาร์1 == เอ็กซ์พีอาร์2
ผลลัพธ์คือ 1 ถ้า expr1 เท่ากับ expr2

เอ็กซ์พีอาร์1 != เอ็กซ์พีอาร์2
ผลลัพธ์จะเป็น 1 ถ้า expr1 ไม่เท่ากับ expr2

การดำเนินการบูลีนยังถูกกฎหมายอีกด้วย (POSIX bc ไม่มีการดำเนินการบูลีน) ดิ
ผลลัพธ์ของการดำเนินการบูลีนทั้งหมดคือ 0 และ 1 (สำหรับเท็จและจริง) เช่นเดียวกับในเชิงสัมพันธ์
นิพจน์ ตัวดำเนินการบูลีนคือ:

!expr ผลลัพธ์คือ 1 ถ้า expr เป็น 0

expr&& expr
ผลลัพธ์จะเป็น 1 ถ้านิพจน์ทั้งสองไม่เป็นศูนย์

ประสบการณ์ || ด่วน
ผลลัพธ์จะเป็น 1 ถ้านิพจน์ใดไม่ใช่ศูนย์

ลำดับความสำคัญของนิพจน์มีดังนี้: (ต่ำสุดไปสูงสุด)
|| โอเปอเรเตอร์, สมาคมซ้าย
&& โอเปอเรเตอร์, เชื่อมโยงซ้าย
! โอเปอเรเตอร์ ไม่เกี่ยวข้อง
โอเปอเรเตอร์เชิงสัมพันธ์ ซ้าย associative
ผู้ดำเนินการมอบหมาย, สมาคมด้านขวา
+ และ - โอเปอเรเตอร์, เชื่อมโยงซ้าย
*, / และตัวดำเนินการ %, การเชื่อมโยงด้านซ้าย
^ โอเปอเรเตอร์, สมาคมขวา
unary - โอเปอเรเตอร์ ไม่เชื่อมโยง
++ และ -- โอเปอเรเตอร์ ไม่เชื่อมโยง

ลำดับความสำคัญนี้ได้รับเลือกเพื่อให้สอดคล้องกับ POSIX bc โปรแกรมจะทำงานอย่างถูกต้อง นี้
จะทำให้การใช้ตัวดำเนินการเชิงสัมพันธ์และเชิงตรรกะมีพฤติกรรมผิดปกติบางอย่าง
เมื่อใช้กับนิพจน์การมอบหมาย พิจารณานิพจน์:
a = 3 < 5

โปรแกรมเมอร์ C ส่วนใหญ่จะถือว่าสิ่งนี้จะกำหนดผลลัพธ์ของ "3 < 5" (ค่า 1) เป็น
ตัวแปร "a" สิ่งนี้ทำอะไรใน bc คือกำหนดค่า 3 ให้กับตัวแปร "a" แล้วตามด้วย
เปรียบเทียบ 3 กับ 5 ควรใช้วงเล็บเมื่อใช้ตัวดำเนินการเชิงสัมพันธ์และเชิงตรรกะ
กับผู้ดำเนินการมอบหมาย

มีสำนวนพิเศษเพิ่มเติมอีกสองสามคำที่ให้ไว้ใน bc. สิ่งเหล่านี้เกี่ยวข้องกับ
ฟังก์ชันที่ผู้ใช้กำหนดและฟังก์ชันมาตรฐาน พวกเขาทั้งหมดปรากฏเป็น "ชื่อ(พารามิเตอร์)".
ดูส่วนเกี่ยวกับฟังก์ชันสำหรับฟังก์ชันที่ผู้ใช้กำหนด ฟังก์ชันมาตรฐานคือ:

ความยาว ( นิพจน์ )
ค่าของฟังก์ชันความยาวคือจำนวนหลักสำคัญใน
การแสดงออก

อ่าน ( )
ฟังก์ชั่นอ่าน (ส่วนขยาย) จะอ่านตัวเลขจากอินพุตมาตรฐาน
ไม่ว่าฟังก์ชันจะเกิดขึ้นที่ใด ระวัง นี่อาจทำให้เกิดปัญหากับ
การผสมข้อมูลและโปรแกรมในอินพุตมาตรฐาน การใช้งานที่ดีที่สุดสำหรับฟังก์ชั่นนี้
อยู่ในโปรแกรมที่เขียนไว้ก่อนหน้านี้ซึ่งต้องการข้อมูลจากผู้ใช้ แต่ไม่อนุญาต
รหัสโปรแกรมที่จะป้อนจากผู้ใช้ ค่าของฟังก์ชันอ่านคือ
ตัวเลขที่อ่านจากอินพุตมาตรฐานโดยใช้ค่าปัจจุบันของตัวแปร ไอเบส
สำหรับฐานการแปลง

ขนาด ( นิพจน์ )
ค่าของฟังก์ชันมาตราส่วนคือจำนวนหลักหลังจุดทศนิยมใน
การแสดงออก.

sqrt ( นิพจน์ )
ค่าของฟังก์ชัน sqrt คือรากที่สองของนิพจน์ ถ้า
นิพจน์เป็นค่าลบ มีการสร้างข้อผิดพลาดรันไทม์

งบ
คำสั่ง (ในภาษาพีชคณิตส่วนใหญ่) ให้การเรียงลำดับของนิพจน์
การประเมิน. ใน bc คำสั่งจะดำเนินการ "โดยเร็วที่สุด" การดำเนินการเกิดขึ้นเมื่อ
ขึ้นบรรทัดใหม่และมีข้อความที่สมบูรณ์หนึ่งข้อความขึ้นไป ด้วยเหตุนี้
การดำเนินการทันที การขึ้นบรรทัดใหม่มีความสำคัญมากใน bc. อันที่จริง ทั้งอัฒภาคและ a
ขึ้นบรรทัดใหม่ถูกใช้เป็นตัวคั่นคำสั่ง การขึ้นบรรทัดใหม่ไม่ถูกต้องจะทำให้
ข้อผิดพลาดทางไวยากรณ์ เนื่องจากขึ้นบรรทัดใหม่เป็นตัวคั่นคำสั่ง จึงสามารถซ่อนการขึ้นบรรทัดใหม่ได้
โดยใช้อักขระแบ็กสแลช ลำดับ "\ ", ที่ไหน เป็นบรรทัดใหม่ปรากฏขึ้น
ไปยัง bc เป็นช่องว่างแทนการขึ้นบรรทัดใหม่ รายการคำสั่งเป็นชุดของคำสั่ง
คั่นด้วยเครื่องหมายอัฒภาคและขึ้นบรรทัดใหม่ ต่อไปนี้เป็นรายการของ bc งบและอะไร
พวกเขาทำ: (สิ่งที่อยู่ในวงเล็บ ([]) เป็นส่วนเสริมของคำสั่ง)

การแสดงออก
คำสั่งนี้ทำอย่างใดอย่างหนึ่งในสองสิ่ง ถ้านิพจน์เริ่มต้นด้วย "
..." ให้ถือว่าเป็นใบแจ้งการมอบหมายงาน ถ้า
นิพจน์ไม่ใช่คำสั่งการมอบหมาย นิพจน์จะถูกประเมินและพิมพ์
เพื่อส่งออก หลังจากพิมพ์ตัวเลขแล้ว จะมีการขึ้นบรรทัดใหม่ ตัวอย่างเช่น,
"a=1" คือคำสั่งการมอบหมาย และ "(a=1)" คือนิพจน์ที่มีการฝังตัว
งานที่มอบหมาย. ตัวเลขทั้งหมดที่พิมพ์จะถูกพิมพ์ในฐานที่ระบุโดย
ตัวแปร เจ้านาย. ค่านิยมทางกฎหมายสำหรับ เจ้านาย คือ 2 ถึง BC_BASE_MAX (ดู
ส่วน LIMITS.) สำหรับฐาน 2 ถึง 16 วิธีการปกติในการเขียนตัวเลขคือ
ใช้แล้ว. สำหรับฐานที่มากกว่า 16 bc ใช้วิธีเลขหลายตัวของ
การพิมพ์ตัวเลขโดยพิมพ์ตัวเลขฐานที่สูงกว่าแต่ละหลักเป็นตัวเลขฐาน 10
ตัวเลขหลายอักขระคั่นด้วยช่องว่าง แต่ละหลักประกอบด้วยตัวเลข
ของอักขระที่จำเป็นในการแสดงค่าฐานสิบของ "obase-1" ตั้งแต่ตัวเลข
มีความแม่นยำตามอำเภอใจ ตัวเลขบางตัวอาจพิมพ์ไม่ได้ในเอาต์พุตเดียว
ไลน์. ตัวเลขยาวเหล่านี้จะถูกแบ่งตามบรรทัดโดยใช้ "\" เป็นตัวสุดท้าย
ตัวอักษรในบรรทัด จำนวนตัวอักษรสูงสุดที่พิมพ์ต่อบรรทัดคือ 70 ครบกำหนด
กับธรรมชาติเชิงโต้ตอบของ bcการพิมพ์ตัวเลขทำให้เกิดผลข้างเคียงของ
กำหนดค่าพิมพ์ให้กับตัวแปรพิเศษ ล่าสุด. ซึ่งช่วยให้ผู้ใช้สามารถ
กู้คืนค่าสุดท้ายที่พิมพ์โดยไม่ต้องพิมพ์นิพจน์ที่พิมพ์ซ้ำ
จำนวน. มอบหมายให้ ล่าสุด ถูกกฎหมายและจะเขียนทับค่าที่พิมพ์ล่าสุด
ด้วยค่าที่กำหนด ค่าที่กำหนดใหม่จะยังคงอยู่จนถึงต่อไป
มีการพิมพ์ตัวเลขหรือค่าอื่นถูกกำหนดให้เป็น ล่าสุด. (การติดตั้งบางอย่างอาจ
อนุญาตให้ใช้จุดเดียว (.) ซึ่งไม่ใช่ส่วนหนึ่งของตัวเลขเป็นมือสั้น
สัญกรณ์สำหรับ ล่าสุด.)

สตริง สตริงถูกพิมพ์ไปยังเอาต์พุต สตริงเริ่มต้นด้วยอักขระอัญประกาศคู่
และมีอักขระทั้งหมดจนถึงอักขระอัญประกาศคู่ตัวถัดไป ตัวละครทั้งหมด
หมายความรวมถึงขึ้นบรรทัดใหม่ด้วย ไม่มีการพิมพ์อักขระขึ้นบรรทัดใหม่หลังจาก
สตริง

พิมพ์ รายการ
คำสั่งพิมพ์ (ส่วนขยาย) ให้วิธีการอื่นในการส่งออก รายการ"
เป็นรายการสตริงและนิพจน์ที่คั่นด้วยเครื่องหมายจุลภาค แต่ละสตริงหรือ
นิพจน์ถูกพิมพ์ในลำดับของรายการ ไม่มีการพิมพ์ขึ้นบรรทัดใหม่
นิพจน์ได้รับการประเมินและพิมพ์ค่าและกำหนดให้กับตัวแปร
ล่าสุด. สตริงในคำสั่งการพิมพ์จะถูกพิมพ์ไปยังเอาต์พุตและอาจมี
อักขระพิเศษ อักขระพิเศษขึ้นต้นด้วยอักขระแบ็กสแลช (\)
อักขระพิเศษที่รู้จักโดย bc คือ "a" (เตือนหรือกระดิ่ง), "b" (แบ็คสเปซ)
"f" (การป้อนแบบฟอร์ม), "n" (ขึ้นบรรทัดใหม่), "r" (การขึ้นบรรทัดใหม่), "q" (เครื่องหมายคำพูดคู่), "t"
(แท็บ) และ "\" (แบ็กสแลช) ตัวละครอื่นๆ ที่ตามหลังแบ็กสแลชจะเป็น
ละเว้น

{ รายการคำสั่ง }
นี่คือคำสั่งผสม อนุญาตให้จัดกลุ่มคำสั่งหลายรายการ
ร่วมกันเพื่อดำเนินการ

if ( นิพจน์ ) คำสั่งที่ 1 [อื่น คำชี้แจง2]
คำสั่ง if ประเมินนิพจน์และดำเนินการ statement1 หรือ statement2
ขึ้นอยู่กับค่าของนิพจน์ ถ้านิพจน์ไม่เป็นศูนย์
คำสั่งที่ 1 ถูกดำเนินการ หากมีข้อความสั่ง 2 และมีค่าของนิพจน์
คือ 0 จากนั้นดำเนินการคำสั่ง 2 (ส่วน else เป็นส่วนขยาย)

ในขณะที่ ( นิพจน์ ) คำสั่ง
คำสั่ง while จะดำเนินการคำสั่งในขณะที่นิพจน์ไม่เป็นศูนย์
จะประเมินนิพจน์ก่อนดำเนินการคำสั่งแต่ละครั้ง การสิ้นสุด
ของลูปเกิดจากค่านิพจน์ศูนย์หรือการดำเนินการของตัวแบ่ง
คำแถลง

for ( [expression1] ; [expression2] ; [expression3] ) คำสั่ง
คำสั่ง for ควบคุมการดำเนินการคำสั่งซ้ำๆ นิพจน์1 คือ
ประเมินก่อนวนรอบ Expression2 ถูกประเมินก่อนการดำเนินการแต่ละครั้งของ
คำให้การ. ถ้าไม่ใช่ศูนย์ คำสั่งจะถูกประเมิน หากเป็นศูนย์ ให้ลูป
ถูกยกเลิก หลังจากดำเนินการคำสั่งแต่ละครั้ง นิพจน์3 จะถูกประเมิน
ก่อนการประเมินค่านิพจน์ใหม่2 หากไม่มี expression1 หรือ expression3
ไม่มีการประเมิน ณ จุดที่พวกเขาจะได้รับการประเมิน ถ้านิพจน์2 คือ
หายไปเหมือนกับการแทนที่ค่า 1 สำหรับนิพจน์2 (ตัวเลือก
นิพจน์เป็นส่วนขยาย POSIX bc ต้องใช้ทั้งสามนิพจน์) The
ต่อไปนี้เป็นรหัสเทียบเท่าสำหรับคำสั่ง for:
นิพจน์1;
ในขณะที่ (นิพจน์2) {
คำแถลง;
นิพจน์3;
}

ทำลาย คำสั่งนี้ทำให้เกิดการบังคับออกจากคำสั่งปิดล้อมล่าสุดหรือ
สำหรับคำสั่ง

ต่อ
คำสั่งดำเนินการต่อ (ส่วนขยาย) ทำให้เกิดการปิดล้อมล่าสุดสำหรับ
คำสั่งเพื่อเริ่มการทำซ้ำครั้งต่อไป

หยุด คำสั่งหยุด (ส่วนขยาย) เป็นคำสั่งที่ดำเนินการซึ่งทำให้ bc
โปรเซสเซอร์ที่จะออกเฉพาะเมื่อมีการดำเนินการ ตัวอย่างเช่น "ถ้า (0 == 1) หยุด" will
ไม่ก่อให้เกิด bc ที่จะยุติเพราะไม่ได้ดำเนินการหยุด

กลับ ส่งคืนค่า 0 จากฟังก์ชัน (ดูส่วนฟังก์ชั่น)

กลับ ( การแสดงออก )
ส่งคืนค่านิพจน์จากฟังก์ชัน (ดูหัวข้อเรื่อง
ฟังก์ชัน) เป็นส่วนขยาย ไม่จำเป็นต้องใช้วงเล็บ

หลอก งบ
ข้อความเหล่านี้ไม่ใช่ข้อความในความหมายดั้งเดิม พวกเขาไม่ได้ถูกประหารชีวิต
งบ. ฟังก์ชั่นของพวกเขาจะดำเนินการในเวลา "คอมไพล์"

ขีด จำกัด พิมพ์ข้อจำกัดในเครื่องที่บังคับใช้โดย . เวอร์ชันในเครื่อง bc. นี่คือส่วนขยาย

เลิก เมื่ออ่านคำสั่ง quit แล้ว bc โปรเซสเซอร์ถูกยกเลิกโดยไม่คำนึงถึง
ที่ซึ่งพบคำสั่ง quit ตัวอย่างเช่น "ถ้า (0 == 1) เลิก" จะทำให้ bc
ที่จะยุติ

การรับประกัน
พิมพ์ใบแจ้งการรับประกันที่ยาวขึ้น นี่คือส่วนขยาย

ฟังก์ชั่น
ฟังก์ชันจัดเตรียมวิธีการกำหนดการคำนวณที่สามารถดำเนินการได้ในภายหลัง
ฟังก์ชั่นใน bc คำนวณค่าและส่งกลับไปยังผู้โทรเสมอ คำจำกัดความของฟังก์ชัน
เป็น "ไดนามิก" ในแง่ที่ว่าฟังก์ชันไม่ได้กำหนดไว้จนกว่าจะพบคำจำกัดความ
ในการป้อนข้อมูล คำจำกัดความนั้นจะถูกใช้จนกว่าจะมีฟังก์ชันคำจำกัดความอื่นสำหรับตัวเดียวกัน
เจอชื่อ. คำจำกัดความใหม่จะแทนที่คำจำกัดความที่เก่ากว่า ฟังก์ชั่น
กำหนดไว้ดังนี้
กำหนด ชื่อ ( พารามิเตอร์ ) { ขึ้นบรรทัดใหม่
รายการอัตโนมัติ คำสั่ง_รายการ }
การเรียกใช้ฟังก์ชันเป็นเพียงการแสดงออกของรูปแบบ "ชื่อ(พารามิเตอร์)".

พารามิเตอร์คือตัวเลขหรืออาร์เรย์ (ส่วนขยาย) ในนิยามฟังก์ชัน XNUMX หรือมากกว่า
พารามิเตอร์ถูกกำหนดโดยการแสดงรายการชื่อโดยคั่นด้วยเครื่องหมายจุลภาค พารามิเตอร์ทั้งหมดคือ
เรียกตามค่าพารามิเตอร์ อาร์เรย์ถูกระบุในนิยามพารามิเตอร์โดย
สัญกรณ์ "ชื่อ[]" ในการเรียกใช้ฟังก์ชัน พารามิเตอร์จริงคือนิพจน์แบบเต็มสำหรับ
พารามิเตอร์ตัวเลข สัญกรณ์เดียวกันนี้ใช้สำหรับส่งผ่านอาร์เรย์เช่นเดียวกับการกำหนดอาร์เรย์
พารามิเตอร์ อาร์เรย์ที่มีชื่อจะถูกส่งผ่านโดยค่าไปยังฟังก์ชัน ตั้งแต่ฟังก์ชั่น
คำจำกัดความเป็นไดนามิก หมายเลขพารามิเตอร์และประเภทจะถูกตรวจสอบเมื่อฟังก์ชันเป็น
เรียกว่า. จำนวนหรือประเภทของพารามิเตอร์ที่ไม่ตรงกันจะทำให้เกิดข้อผิดพลาดรันไทม์ อา
ข้อผิดพลาดรันไทม์จะเกิดขึ้นสำหรับการเรียกใช้ฟังก์ชันที่ไม่ได้กำหนด

พื้นที่ รายการอัตโนมัติ เป็นรายการตัวเลือกของตัวแปรที่ใช้ "ในเครื่อง" ไวยากรณ์ของ
รายการอัตโนมัติ (ถ้ามี) คือ "รถยนต์ ชื่อ, ... ;". (เครื่องหมายอัฒภาคเป็นทางเลือก) Each ชื่อ
เป็นชื่อของตัวแปรอัตโนมัติ อาร์เรย์สามารถระบุได้โดยใช้สัญลักษณ์เดียวกับ
ใช้ในพารามิเตอร์ ตัวแปรเหล่านี้มีค่าที่ผลักไปยังสแต็กที่จุดเริ่มต้นของ
ฟังก์ชั่น. ตัวแปรจะถูกเริ่มต้นเป็นศูนย์และใช้ตลอดทั้ง
การทำงานของฟังก์ชัน เมื่อออกจากฟังก์ชัน ตัวแปรเหล่านี้จะปรากฏขึ้นเพื่อให้
ค่าดั้งเดิม (ในขณะที่เรียกใช้ฟังก์ชัน) ของตัวแปรเหล่านี้จะถูกกู้คืน ดิ
พารามิเตอร์เป็นตัวแปรอัตโนมัติจริง ๆ ที่เริ่มต้นเป็นค่าที่ระบุใน
เรียกใช้ฟังก์ชัน ตัวแปรอัตโนมัติแตกต่างจากตัวแปรโลคัลดั้งเดิมเพราะ if
ฟังก์ชัน A เรียกใช้ฟังก์ชัน B, B อาจเข้าถึงตัวแปรอัตโนมัติของฟังก์ชัน A ได้เพียงแค่ใช้
ชื่อเดียวกัน เว้นแต่ฟังก์ชัน B จะเรียกพวกมันว่าตัวแปรอัตโนมัติ เนื่องจากว่า auto
ตัวแปรและพารามิเตอร์ถูกผลักไปที่สแต็ก bc รองรับฟังก์ชั่นแบบเรียกซ้ำ

ตัวฟังก์ชันเป็นรายการของ bc งบ. อีกครั้ง ข้อความถูกคั่นด้วย
อัฒภาคหรือขึ้นบรรทัดใหม่ คำสั่งส่งคืนทำให้เกิดการสิ้นสุดของฟังก์ชันและ
การคืนค่า คำสั่ง return มีสองเวอร์ชัน แบบฟอร์มแรก,
"กลับ" ส่งคืนค่า 0 ให้กับนิพจน์การเรียก รูปแบบที่สอง "กลับ (
การแสดงออก )" คำนวณค่าของนิพจน์และส่งกลับค่านั้นไปที่การเรียก
การแสดงออก. มีนัยยะ "กลับ (0)" ที่ส่วนท้ายของทุกฟังก์ชัน ซึ่งจะทำให้ a
ฟังก์ชั่นเพื่อยุติและส่งคืน 0 โดยไม่มีคำสั่ง return ที่ชัดเจน

ฟังก์ชั่นยังเปลี่ยนการใช้ตัวแปร ไอเบส. ค่าคงที่ทั้งหมดในฟังก์ชัน body
จะถูกแปลงโดยใช้ค่าของ ไอเบส ในเวลาที่เรียกใช้ฟังก์ชัน การเปลี่ยนแปลงของ
ไอเบส จะถูกละเว้นในระหว่างการดำเนินการของฟังก์ชันยกเว้นสำหรับมาตรฐาน
ฟังก์ชัน อ่านซึ่งจะใช้ค่าปัจจุบันของ .เสมอ ไอเบส สำหรับการแปลงตัวเลข

มีการเพิ่มส่วนขยายหลายรายการในฟังก์ชัน ประการแรก รูปแบบของคำจำกัดความมี
ได้ผ่อนคลายเล็กน้อย มาตรฐานกำหนดให้เหล็กค้ำเปิดอยู่ในแนวเดียวกับ
กำหนด คีย์เวิร์ดและส่วนอื่นๆ ทั้งหมดต้องอยู่ในบรรทัดต่อไปนี้ เวอร์ชั่นนี้ของ bc จะ
อนุญาตให้ขึ้นบรรทัดใหม่จำนวนเท่าใดก็ได้ก่อนและหลังเครื่องหมายปีกกาเปิดของฟังก์ชัน สำหรับ
ตัวอย่าง คำจำกัดความต่อไปนี้ถูกกฎหมาย
กำหนด d (n) { กลับ (2 * n); }
กำหนด d (n)
{ กลับ (2*n); }

ฟังก์ชันอาจถูกกำหนดเป็น ถือเป็นโมฆะ. ฟังก์ชัน void ส่งกลับค่าใด ๆ และอาจไม่ส่งกลับค่า
ใช้ในสถานที่ใด ๆ ที่ต้องการค่า ฟังก์ชัน void จะไม่สร้างเอาต์พุตใดๆ เมื่อ
เรียกด้วยตัวเองในสายอินพุต คำสำคัญ ถือเป็นโมฆะ อยู่ระหว่างคำสำคัญ
กำหนด และชื่อฟังก์ชัน ตัวอย่างเช่น พิจารณาเซสชั่นต่อไปนี้
กำหนด py (y) { พิมพ์ "--->", y, "<---", "\n"; }
กำหนด void px (x) { พิมพ์ "--->", x, "<---", "\n"; }
py(1)
--->1<---
0
px(1)
--->1<---
ตั้งแต่ py ไม่ใช่ฟังก์ชันโมฆะ การเรียกของ py(1) พิมพ์ผลลัพธ์ที่ต้องการแล้ว
พิมพ์บรรทัดที่สองที่เป็นค่าของฟังก์ชัน เนื่องจากค่าของฟังก์ชัน
ที่ไม่ได้รับคำสั่งส่งคืนที่ชัดเจนคือศูนย์ ศูนย์จะถูกพิมพ์ สำหรับ px(1),
ไม่มีการพิมพ์ศูนย์เนื่องจากฟังก์ชันนี้เป็นฟังก์ชันโมฆะ

นอกจากนี้ยังมีการเพิ่มการเรียกโดยตัวแปรสำหรับอาร์เรย์ ในการประกาศการเรียกโดยอาร์เรย์ตัวแปร
การประกาศพารามิเตอร์อาร์เรย์ในการกำหนดฟังก์ชันดูเหมือน "*ชื่อ[]"
การเรียกใช้ฟังก์ชันยังคงเหมือนกับการเรียกด้วยอาร์เรย์ค่า

คณิตศาสตร์ ห้องสมุด
If bc ถูกเรียกด้วย -l ตัวเลือกห้องสมุดคณิตศาสตร์โหลดไว้ล่วงหน้าและมาตราส่วนเริ่มต้นคือ
ตั้งค่าเป็น 20 ฟังก์ชันทางคณิตศาสตร์จะคำนวณผลลัพธ์เป็นมาตราส่วนที่ตั้งไว้ ณ เวลานั้น
ของการเรียกของพวกเขา ห้องสมุดคณิตศาสตร์กำหนดฟังก์ชันต่อไปนี้:

s (x) ไซน์ของ x, x อยู่ในหน่วยเรเดียน

ค (x) โคไซน์ของ x, x อยู่ในหน่วยเรเดียน

NS (x) อาร์กแทนเจนต์ของ x อาร์คแทนเจนต์คืนค่าเรเดียน

l (x) ลอการิทึมธรรมชาติของ x

และ (x) ฟังก์ชันเลขชี้กำลังของการเพิ่ม e เป็นค่า x

เจ (น,x)
ฟังก์ชันเบสเซลของลำดับจำนวนเต็ม n ของ x

ตัวอย่าง
In bin / sh /ต่อไปนี้จะกำหนดค่าของ "pi" ให้กับตัวแปรเชลล์ pi.
pi=$(echo "มาตราส่วน=10; 4*a(1)" | bc -l)

ต่อไปนี้เป็นคำจำกัดความของฟังก์ชันเลขชี้กำลังที่ใช้ในห้องสมุดคณิตศาสตร์
ฟังก์ชันนี้เขียนด้วย POSIX bc.
มาตราส่วน = 20

/* ใช้ข้อเท็จจริงที่ว่า e^x = (e^(x/2))^2
เมื่อ x น้อยพอ เราใช้อนุกรมนี้:
อี^x = 1 + x + x^2/2! + เอ็กซ์^3/3! + ...
*/

กำหนด e(x) {
อัตโนมัติ a, d, e, f, i, m, v, z

/* ตรวจสอบเครื่องหมาย x */
ถ้า (x<0) {
ม = 1
x = -x
}

/* เงื่อนไขเบื้องต้น x. */
z = มาตราส่วน;
มาตราส่วน = 4 + z + .44*x;
ในขณะที่ (x > 1) {
ฉ += 1;
x /= 2;
}

/* เริ่มต้นตัวแปร */
วี = 1+x
ก = x
ง = 1

สำหรับ (i=2; 1; i++) {
อี = (ก *= x) / (ง *= i)
ถ้า (e == 0) {
ถ้า (f>0) ในขณะที่ (f--) v = v*v;
มาตราส่วน = z
ถ้า (m) กลับ (1/v);
ผลตอบแทน (v/1);
}
วี += อี
}
}

ต่อไปนี้เป็นรหัสที่ใช้คุณสมบัติเพิ่มเติมของ bc ลงโปรแกรมง่ายๆ
สำหรับการคำนวณยอดคงเหลือในสมุดเช็ค โปรแกรมนี้ถูกเก็บไว้ในไฟล์ที่ดีที่สุดเพื่อให้เป็น
ใช้หลายครั้งโดยไม่ต้องพิมพ์ซ้ำทุกครั้ง
มาตราส่วน=2
พิมพ์ "\nตรวจสอบโปรแกรมหนังสือ!\n"
พิมพ์ " จำไว้ว่าเงินฝากเป็นธุรกรรมติดลบ\n"
พิมพ์ " ออกโดย 0 ธุรกรรม\n\n"

พิมพ์ "ยอดเริ่มต้น? "; บาล = อ่าน ()
บาล /= 1
พิมพ์ "\n"
ในขณะที่ (1) {
"ยอดเงินปัจจุบัน = "; bal
"ธุรกรรม? "; ทรานส์ = อ่าน ()
ถ้า (trans == 0) แตก;
บาล -= ทรานส์
บาล /= 1
}
เลิก

ต่อไปนี้เป็นคำจำกัดความของฟังก์ชันแฟกทอเรียลแบบเรียกซ้ำ
กำหนด f (x) {
ถ้า (x <= 1) กลับ (1);
ผลตอบแทน (f(x-1) * x);
}

อ่าน AND ลิเบดิท OPTIONS
GNU bc สามารถคอมไพล์ (ผ่านตัวเลือกการกำหนดค่า) เพื่อใช้ GNU ReadLine ตัวแก้ไขอินพุต
ห้องสมุดหรือBSD ความใคร่ ห้องสมุด. ซึ่งช่วยให้ผู้ใช้สามารถแก้ไขเส้นก่อนได้
ส่งไปที่ bc. นอกจากนี้ยังอนุญาตให้มีประวัติของบรรทัดก่อนหน้าที่พิมพ์ เมื่อสิ่งนี้
เลือกตัวเลือกแล้ว bc มีตัวแปรพิเศษอีกหนึ่งตัว ตัวแปรพิเศษนี้ ประวัติ is
จำนวนบรรทัดของประวัติศาสตร์ที่เก็บไว้ สำหรับ ReadLineค่า -1 หมายความว่า an
ไม่จำกัดจำนวนบรรทัดประวัติ การตั้งค่าของ ประวัติ ไปยัง
จำนวนบวกจำกัดจำนวนบรรทัดประวัติตามจำนวนที่กำหนด ค่าของ0
ปิดใช้งานคุณลักษณะประวัติ ค่าเริ่มต้นคือ 100 สำหรับข้อมูลเพิ่มเติม โปรดอ่าน
คู่มือผู้ใช้สำหรับ GNU ReadLine, ประวัติ และ BSD ความใคร่ ห้องสมุด ไม่สามารถเปิดใช้งานได้
ทั้งสอง ReadLine และ ความใคร่ ในขณะเดียวกัน

ความแตกต่าง
รุ่นนี้ bc ถูกนำไปใช้จากร่าง POSIX P1003.2/D11 และมีหลายอย่าง
ความแตกต่างและส่วนขยายที่สัมพันธ์กับร่างและการใช้งานแบบดั้งเดิม มันคือ
ไม่ได้ดำเนินการในลักษณะดั้งเดิมโดยใช้ dc(1) เวอร์ชันนี้เป็นกระบวนการเดียว
ซึ่งแยกวิเคราะห์และรันการแปลรหัสไบต์ของโปรแกรม มี "ไม่มีเอกสาร"
ตัวเลือก (-c) ที่ทำให้โปรแกรมส่งออกรหัสไบต์ไปยังเอาต์พุตมาตรฐานแทน
ของการวิ่งมัน ส่วนใหญ่ใช้สำหรับการดีบัก parser และเตรียมคณิตศาสตร์
ห้องสมุด.

แหล่งที่มาของความแตกต่างที่สำคัญคือส่วนขยาย ซึ่งมีการขยายคุณลักษณะเพื่อเพิ่มเพิ่มเติม
ฟังก์ชั่นและส่วนเพิ่มเติมที่มีการเพิ่มคุณสมบัติใหม่ ต่อไปนี้เป็นรายการของ
ความแตกต่างและส่วนขยาย

สิ่งแวดล้อม LANG
รุ่นนี้ไม่เป็นไปตามมาตรฐาน POSIX ในการประมวลผลของLANG
ตัวแปรสภาพแวดล้อมและตัวแปรสภาพแวดล้อมทั้งหมดที่ขึ้นต้นด้วย LC_

ชื่อดั้งเดิมและ POSIX bc มีชื่อตัวอักษรเดียวสำหรับฟังก์ชัน ตัวแปร และ
อาร์เรย์ ขยายเป็นชื่ออักขระหลายตัวที่ขึ้นต้นด้วย a
ตัวอักษร และอาจมีตัวอักษร ตัวเลข และเครื่องหมายขีดล่าง

Strings
สตริงไม่ได้รับอนุญาตให้มีอักขระ NUL POSIX บอกว่าตัวละครทั้งหมดต้อง
รวมอยู่ในสตริง

POSIX ล่าสุด bc ไม่มี ล่าสุด ตัวแปร. การใช้งานบางอย่างของ bc ใช้ช่วงเวลา
(.) ในทำนองเดียวกัน

เปรียบเทียบ
POSIX bc อนุญาตให้เปรียบเทียบเฉพาะในคำสั่ง if, คำสั่ง while และ the
นิพจน์ที่สองของคำสั่ง for นอกจากนี้ การดำเนินการเชิงสัมพันธ์เดียวเท่านั้นคือ
อนุญาตในแต่ละข้อความเหล่านั้น

if คำสั่ง อื่น ข้อ
POSIX bc ไม่มีประโยคอื่น

สำหรับคำสั่ง
POSIX bc กำหนดให้มีนิพจน์ทั้งหมดอยู่ในคำสั่ง for

&&, ||, !
POSIX bc ไม่มีตัวดำเนินการทางตรรกะ

ฟังก์ชั่นการอ่าน
POSIX bc ไม่มีฟังก์ชั่นการอ่าน

พิมพ์คำสั่ง
POSIX bc ไม่มีคำสั่งพิมพ์

ดำเนินการต่อ
POSIX bc ไม่มีคำสั่งต่อ

กลับคำสั่ง
POSIX bc ต้องการวงเล็บรอบนิพจน์การส่งคืน

พารามิเตอร์อาร์เรย์
POSIX bc ไม่ (ปัจจุบัน) รองรับพารามิเตอร์อาร์เรย์ทั้งหมด ไวยากรณ์ POSIX
อนุญาตให้อาร์เรย์ในคำจำกัดความของฟังก์ชัน แต่ไม่มีวิธีการระบุ
อาร์เรย์เป็นพารามิเตอร์จริง (นี่น่าจะเป็นการกำกับดูแลใน
ไวยากรณ์.) การใช้งานแบบดั้งเดิมของ bc มีเฉพาะการเรียกโดยอาร์เรย์ค่า
พารามิเตอร์

รูปแบบฟังก์ชัน
POSIX bc ต้องการวงเล็บเปิดในบรรทัดเดียวกับ กำหนด คำสำคัญและ
รถยนต์ ประกาศในบรรทัดถัดไป

=+, =-, =*, ==, =%, =^
POSIX bc ไม่ต้องการตัวดำเนินการกำหนด "แบบเก่า" เหล่านี้เพื่อกำหนด
เวอร์ชันนี้อาจอนุญาตให้ใช้การมอบหมาย "แบบเก่า" เหล่านี้ได้ ใช้คำสั่งจำกัดถึง
ดูว่าเวอร์ชันที่ติดตั้งรองรับหรือไม่ ถ้ามันรองรับ "แบบเก่า"
ตัวดำเนินการมอบหมายคำสั่ง "a =- 1" จะลดลง a โดย 1 แทน
การตั้งค่า a เป็นค่า -1

ช่องว่างเป็นตัวเลข
การใช้งานอื่น ๆ ของ bc ให้เว้นวรรคเป็นตัวเลข ตัวอย่างเช่น "x=1 3" จะ
กำหนดค่า 13 ให้กับตัวแปร x คำสั่งเดียวกันจะทำให้เกิดไวยากรณ์
ข้อผิดพลาดในเวอร์ชันนี้ของ bc.

ข้อผิดพลาดและการดำเนินการ
การใช้งานนี้แตกต่างจากการใช้งานอื่นในแง่ของรหัสที่จะเป็น
ดำเนินการเมื่อพบไวยากรณ์และข้อผิดพลาดอื่น ๆ ในโปรแกรม หากเกิดข้อผิดพลาดทางไวยากรณ์
พบในนิยามฟังก์ชัน การกู้คืนข้อผิดพลาดพยายามค้นหาจุดเริ่มต้นของa
คำสั่งและดำเนินการแยกวิเคราะห์ฟังก์ชันต่อไป เมื่อพบข้อผิดพลาดทางไวยากรณ์ใน
ฟังก์ชัน ฟังก์ชันจะไม่สามารถเรียกใช้ได้และกลายเป็นไม่ได้กำหนด ข้อผิดพลาดทางไวยากรณ์
ในรหัสการดำเนินการแบบโต้ตอบจะทำให้บล็อกการดำเนินการปัจจุบันใช้ไม่ได้ ดิ
บล็อกการดำเนินการสิ้นสุดลงโดยสิ้นสุดบรรทัดที่ปรากฏขึ้นหลังจากเสร็จสิ้น
ลำดับของงบ ตัวอย่างเช่น,
เอ = 1
ข = 2
มีสองบล็อกการดำเนินการและ
{ เป็น = 1
ข = 2 }
มีหนึ่งบล็อกการดำเนินการ ข้อผิดพลาดรันไทม์ใด ๆ จะยุติการดำเนินการของ current
บล็อกการดำเนินการ คำเตือนรันไทม์จะไม่ยุติบล็อกการดำเนินการปัจจุบัน

ขัดจังหวะ
ระหว่างเซสชันแบบโต้ตอบ สัญญาณ SIGINT (มักสร้างโดยตัวควบคุม-
อักขระ C จากเทอร์มินัล) จะทำให้การดำเนินการของบล็อกการดำเนินการปัจจุบัน
ที่จะถูกขัดจังหวะ มันจะแสดงข้อผิดพลาด "รันไทม์" ซึ่งระบุว่าฟังก์ชันใดเป็น
ขัดจังหวะ. หลังจากล้างโครงสร้างรันไทม์ทั้งหมดแล้ว ข้อความจะเป็น
พิมพ์เพื่อแจ้งให้ผู้ใช้ทราบว่า bc พร้อมสำหรับการป้อนข้อมูลเพิ่มเติม ทั้งหมดที่กำหนดไว้ก่อนหน้านี้
ฟังก์ชันยังคงกำหนดไว้และค่าของตัวแปรที่ไม่ใช่แบบอัตโนมัติทั้งหมดคือค่าที่
จุดที่หยุดชะงัก ตัวแปรอัตโนมัติและพารามิเตอร์ฟังก์ชันทั้งหมดจะถูกลบออก
ในระหว่างกระบวนการทำความสะอาด ระหว่างเซสชันที่ไม่มีการโต้ตอบ สัญญาณ SIGINT
จะยุติการดำเนินการทั้งหมดของ bc.

ขีด จำกัด
ต่อไปนี้เป็นข้อ จำกัด ที่มีอยู่สำหรับสิ่งนี้ bc โปรเซสเซอร์ บางคนอาจจะ
มีการเปลี่ยนแปลงโดยการติดตั้ง ใช้คำสั่งจำกัดเพื่อดูค่าจริง

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. รูปแบบเหมือนกับ
อาร์กิวเมนต์บรรทัดคำสั่ง อาร์กิวเมนต์เหล่านี้ได้รับการประมวลผลก่อน ดังนั้นไฟล์ใดๆ ที่อยู่ในรายการ
ในอาร์กิวเมนต์ของสภาพแวดล้อมจะได้รับการประมวลผลก่อนไฟล์อาร์กิวเมนต์บรรทัดคำสั่งใดๆ
ซึ่งช่วยให้ผู้ใช้สามารถตั้งค่าตัวเลือก "มาตรฐาน" และไฟล์ที่จะประมวลผลได้ที่
ทุกการวิงวอนของ bc. ไฟล์ในตัวแปรสภาพแวดล้อมมักจะ
มีคำจำกัดความของฟังก์ชันสำหรับฟังก์ชันที่ผู้ใช้ต้องการกำหนดทุกครั้ง bc is
การทำงาน

BC_LINE_LENGTH
นี่ควรเป็นจำนวนเต็มที่ระบุจำนวนอักขระในบรรทัดเอาต์พุตสำหรับ
ตัวเลข ซึ่งรวมถึงแบ็กสแลชและอักขระขึ้นบรรทัดใหม่สำหรับตัวเลขที่ยาว เนื่องจาก
ส่วนขยาย ค่าศูนย์ปิดใช้งานคุณลักษณะหลายบรรทัด ค่าอื่นๆ
ของตัวแปรนี้ที่น้อยกว่า 3 กำหนดความยาวบรรทัดเป็น 70

วินิจฉัย


หากไฟล์ใด ๆ ในบรรทัดคำสั่งไม่สามารถเปิดได้ bc จะรายงานว่าไฟล์เป็น
ไม่พร้อมใช้งานและสิ้นสุด นอกจากนี้ยังมีการวินิจฉัยคอมไพล์และรันไทม์ที่ควร
เป็นตัวอธิบาย

ใช้ bc ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

  • 1
    โคลเวอร์ EFI bootloader
    โคลเวอร์ EFI bootloader
    ย้ายโครงการไปที่
    https://github.com/CloverHackyColor/CloverBootloader..
    คุณสมบัติ:บูต macOS, Windows และ Linux
    ใน UEFI หรือโหมดดั้งเดิมบน Mac หรือ PC ด้วย
    ยู...
    ดาวน์โหลด Clover EFI bootloader
  • 2
    unit rpms
    unit rpms
    เข้าร่วมกับเราใน Gitter!
    https://gitter.im/unitedrpms-people/Lobby
    เปิดใช้งานที่เก็บ URPMS ในของคุณ
    ระบบ -
    https://github.com/UnitedRPMs/unitedrpms.github.io/bl...
    ดาวน์โหลด unitedrpms
  • 3
    เพิ่มไลบรารี C ++
    เพิ่มไลบรารี C ++
    Boost ให้บริการพกพาฟรี
    ห้องสมุด C ++ ที่ได้รับการตรวจสอบโดยเพื่อน เดอะ
    โดยเน้นที่ห้องสมุดพกพาซึ่ง
    ทำงานได้ดีกับ C++ Standard Library
    ดู http://www.bo...
    ดาวน์โหลด Boost C++ Libraries
  • 4
    VirtualGL
    VirtualGL
    VirtualGL เปลี่ยนเส้นทางคำสั่ง 3D จากa
    แอปพลิเคชัน Unix/Linux OpenGL บน a
    GPU ฝั่งเซิร์ฟเวอร์และแปลง
    เรนเดอร์ภาพ 3 มิติเป็นวิดีโอสตรีม
    กับที่ ...
    ดาวน์โหลด VirtualGL
  • 5
    ลิบัส
    ลิบัส
    ห้องสมุดเพื่อเปิดใช้งานพื้นที่ผู้ใช้
    แอปพลิเคชั่นเพื่อสื่อสารกับ
    อุปกรณ์ USB ผู้ชม: Developers, End
    ผู้ใช้/เดสก์ท็อป ภาษาโปรแกรม: C.
    หมวดหมู่ ...
    ดาวน์โหลด libusb
  • 6
    สวก
    สวก
    SWIG คือเครื่องมือพัฒนาซอฟต์แวร์
    ที่เชื่อมโปรแกรมที่เขียนด้วยภาษา C และ
    C++ ที่มีระดับสูงหลากหลาย
    ภาษาโปรแกรม SWIG ใช้กับ
    แตกต่าง...
    ดาวน์โหลด SWIG
  • เพิ่มเติม»

คำสั่ง Linux

  • 1
    อะซิโตนิโซ
    อะซิโตนิโซ
    acetoneiso - กราฟิกที่มีคุณสมบัติหลากหลาย
    แอปพลิเคชันสำหรับเมานต์และจัดการซีดี/ดีวีดี
    ภาพ ...
    เรียกใช้อะซิโตนไอโซ
  • 2
    ace_gperf
    ace_gperf
    ace_gperf - สร้างแฮชที่สมบูรณ์แบบ
    ฟังก์ชั่นจากชุดกุญแจ ...
    เรียกใช้ ace_gperf
  • 3
    coresendmsg
    coresendmsg
    coresendmsg - ส่งข้อความ CORE API
    ถึง core-daemon daemon ...
    เรียกใช้ coresendmsg
  • 4
    core_server
    core_server
    core_server - เซิร์ฟเวอร์หลักสำหรับ
    สแปมเบย์ รายละเอียด: ปัจจุบันให้บริการ
    เว็บอินเตอร์เฟสเท่านั้น กำลังเสียบปลั๊ก
    ผู้ฟังสำหรับโปรโตคอลต่างๆ คือ TBD
    นี้ ...
    เรียกใช้ core_server
  • 5
    g.gui.gcpgrass
    g.gui.gcpgrass
    g.gui.gcp - ปรับตำแหน่งแผนที่และ
    อนุญาตให้จัดการจุดควบคุมภาคพื้นดิน
    คำสำคัญ: ทั่วไป, GUI,
    การวางตำแหน่งทางภูมิศาสตร์, GCP ...
    เรียกใช้ g.gui.gcpgrass
  • 6
    g.gui.gmodelergrass
    g.gui.gmodelergrass
    g.gui.gmodeler - ตัวสร้างแบบจำลองกราฟิก
    อนุญาตให้สร้างแก้ไขแบบโต้ตอบ
    และการจัดการแบบจำลอง คำสำคัญ: ทั่วไป,
    GUI, ตัวสร้างแบบจำลองกราฟิก, เวิร์กโฟลว์ ...
    เรียกใช้ g.gui.gmodelergrass
  • เพิ่มเติม»

Ad