انجليزيالفرنسيةالإسبانية

Ad


OnWorks فافيكون

قبل الميلاد - عبر الإنترنت في السحابة

قم بتشغيل bc في موفر الاستضافة المجاني OnWorks عبر Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

هذا هو الأمر bc الذي يمكن تشغيله في موفر الاستضافة المجاني OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

برنامج:

اسم


قبل الميلاد - لغة حاسبة الدقة التعسفية

بناء الجملة


bc [ -hlwsqv ] [الخيارات الطويلة] [ ملف ]

الوصف


bc هي لغة تدعم الأرقام الدقيقة التعسفية مع التنفيذ التفاعلي لـ
صياغات. هناك بعض أوجه التشابه في بناء الجملة مع لغة البرمجة C. أ
مكتبة الرياضيات القياسية متاحة عن طريق خيار سطر الأوامر. مكتبة الرياضيات إذا طلبت ذلك
يتم تعريفه قبل معالجة أي ملفات. bc يبدأ بمعالجة التعليمات البرمجية من كافة الملفات
المدرجة في سطر الأوامر بالترتيب المذكور. وبعد تجهيز كافة الملفات bc
يقرأ من المدخلات القياسية. يتم تنفيذ جميع التعليمات البرمجية أثناء قراءتها. (إذا كان الملف يحتوي على ملف
أمر بإيقاف المعالج bc لن تتم القراءة أبدًا من الإدخال القياسي.)

هذا الإصدار من bc يحتوي على عدة امتدادات تتجاوز التقليدية bc تطبيقات و
مشروع معيار POSIX. يمكن أن تتسبب خيارات سطر الأوامر في طباعة هذه الامتدادات
إنذار أو سيتم رفضه. تصف هذه الوثيقة اللغة المقبولة بهذا
المعالج. سيتم تحديد الامتدادات على هذا النحو.

OPTIONS
-h ، - مساعدة
اطبع الاستخدام واخرج.

أنا ، - تفاعلي
فرض الوضع التفاعلي.

-ل، --ماثليب
تحديد مكتبة الرياضيات القياسية.

-ث، --تحذير
إعطاء تحذيرات لملحقات POSIX bc.

-s، - قياسي
معالجة POSIX بالضبط bc لغة.

-Q ، - هادئ
لا تطبع ترحيب GNU bc العادي.

-v ، - الإصدار
اطبع رقم الإصدار وحقوق النشر ثم قم بالخروج.

الهاتف
العنصر الأساسي في bc هو الرقم. الأرقام هي أرقام الدقة التعسفية.
هذه الدقة موجودة في الجزء الصحيح والجزء الكسري. جميع الأرقام هي
يتم تمثيلها داخليًا بالنظام العشري ويتم إجراء جميع العمليات الحسابية بالنظام العشري. (هذه النسخة
يقتطع النتائج من عمليات القسمة والضرب.) هناك سمتان لـ
الأرقام والطول والحجم. الطول هو العدد الإجمالي للأرقام العشرية المهمة
أرقام في رقم والمقياس هو إجمالي عدد الأرقام العشرية بعد العلامة العشرية
نقطة. على سبيل المثال:
.000001 يبلغ طوله 6 ومقياسه 6.
1935.000 يبلغ طوله 7 ومقياسه 3.

المتغيرات
يتم تخزين الأرقام في نوعين من المتغيرات، المتغيرات البسيطة والمصفوفات. كلاهما بسيط
تتم تسمية المتغيرات ومتغيرات المصفوفة. تبدأ الأسماء بحرف متبوعًا بأي رقم
من الحروف والأرقام والشرطات السفلية. يجب أن تكون جميع الحروف صغيرة. (أبجدية رقمية كاملة
الأسماء هي امتداد. في بوسيكس bc جميع الأسماء عبارة عن حرف صغير واحد.) النوع
المتغير واضح بالسياق لأنه سيتم اتباع جميع أسماء متغيرات المصفوفة
اقواس ([]).

هناك أربعة متغيرات خاصة، مقياس، إيباس, أوبديه, و آخر. مقياس يحدد كيفية بعض
تستخدم العمليات الأرقام بعد العلامة العشرية. القيمة الافتراضية ل مقياس هو 0. com.ibase
و obase تحديد قاعدة التحويل لأرقام الإدخال والإخراج. الافتراضي لكليهما
المدخلات والمخرجات هي قاعدة 10. آخر (امتداد) هو متغير له قيمة
آخر رقم مطبوع. وستتم مناقشة هذه الأمور بمزيد من التفصيل عند الاقتضاء. كل
قد تحتوي هذه المتغيرات على قيم مخصصة لها بالإضافة إلى استخدامها في التعبيرات.

تعليقات
التعليقات في bc ابدأ بالشخصيات /* وتنتهي بالشخصيات */. التعليقات قد
تبدأ من أي مكان وتظهر كمسافة واحدة في الإدخال. (وهذا يسبب التعليقات ل
تحديد عناصر الإدخال الأخرى. على سبيل المثال، لا يمكن العثور على تعليق في منتصف ملف
اسم المتغير.) تتضمن التعليقات أي أسطر جديدة (نهاية السطر) بين البداية والنهاية
من التعليق.

لدعم استخدام البرامج النصية ل bc، تمت إضافة تعليق من سطر واحد باعتباره
امتداد. يبدأ التعليق بسطر واحد عند أ # الشخصية ويستمر حتى النهاية التالية ل
الخط. نهاية السطر ليست جزءًا من التعليق وتتم معالجتها بشكل طبيعي.

التعبيرات
يتم التلاعب بالأرقام بالعبارات والعبارات. منذ أن كانت اللغة
تم تصميم البيانات والتعبيرات لتكون تفاعلية، ويتم تنفيذها في أسرع وقت ممكن.
لا يوجد برنامج "رئيسي". بدلاً من ذلك، يتم تنفيذ التعليمات البرمجية عند مواجهتها. (المهام،
سيتم مناقشتها بالتفصيل لاحقًا، ويتم تعريفها عند مواجهتها.)

التعبير البسيط هو مجرد ثابت. bc تحويل الثوابت إلى عدد عشري داخلي
الأرقام باستخدام قاعدة الإدخال الحالية، المحددة بواسطة المتغير com.ibase. (هناك
الاستثناء في الوظائف.) القيم القانونية ل com.ibase هي من 2 إلى 16. تعيين قيمة
خارج هذا النطاق ل com.ibase سينتج عنه قيمة 2 أو 16. قد تحتوي أرقام الإدخال على
الأحرف 0-9 وA-F. (ملاحظة: يجب أن تكون كبيرة. والأحرف الصغيرة متغيرة
الأسماء.) تحتوي الأرقام المكونة من رقم واحد دائمًا على قيمة الرقم بغض النظر عن القيمة
of com.ibase. (أي A = 10.) بالنسبة للأرقام المتعددة الأرقام، bc يغير كافة أرقام الإدخال أكبر أو
يساوي ibase لقيمة com.ibase-1. وهذا يجعل العدد FFF كن دائما الأكبر 3
عدد أرقام قاعدة الإدخال.

التعبيرات الكاملة تشبه العديد من اللغات الأخرى عالية المستوى. وبما أن هناك واحد فقط
نوع العدد، لا توجد قواعد لخلط الأنواع. بدلا من ذلك، هناك قواعد بشأن
مقياس التعبيرات. كل تعبير له مقياس. وهذا مشتق من مقياس
الأرقام الأصلية، والعملية المنفذة، وفي كثير من الحالات، قيمة المتغير
مقياس. القيم القانونية للمتغير مقياس هي 0 إلى الحد الأقصى لعدد يمكن تمثيله بواسطة C
عدد صحيح.

في الأوصاف التالية للتعبيرات القانونية، يشير "expr" إلى تعبير كامل
ويشير "var" إلى متغير بسيط أو متغير صفيف. المتغير البسيط هو مجرد
الاسم
ويتم تحديد متغير صفيف كـ
الاسم[على سبيل المثال]
ما لم يذكر على وجه التحديد حجم النتيجة هو الحد الأقصى لمقياس
التعبيرات المعنية.

- expr والنتيجة هي نفي التعبير.

++ var يتم زيادة المتغير بمقدار واحد والقيمة الجديدة هي نتيجة
التعبير.

-- var يتم تقليل المتغير بمقدار واحد وتكون القيمة الجديدة هي نتيجة
التعبير.

فار ++
نتيجة التعبير هي قيمة المتغير ثم المتغير
زيادة بمقدار واحد.

var - نتيجة التعبير هي قيمة المتغير ثم المتغير
انخفض بمقدار واحد.

إكسبر + إكسبر
نتيجة التعبير هي مجموع التعبيرين.

إكسبر - إكسبر
نتيجة التعبير هي الفرق بين التعبيرين.

إكسبر * إكسبر
نتيجة التعبير هي نتاج التعبيرين.

إكسبر / إكسبر
نتيجة التعبير هي حاصل التعبيرين. حجم
والنتيجة هي قيمة المتغير مقياس.

إكسبر % إكسبر
نتيجة التعبير هي "الباقي" ويتم حسابها على النحو التالي
طريق. لحساب a%b، يتم حساب a/b أولاً مقياس أرقام. يتم استخدام تلك النتيجة
لحساب a-(a/b)*b لمقياس الحد الأقصى مقياس+ مقياس (ب) ومقياس (أ).
If مقياس تم ضبطه على الصفر وكلا التعبيرين عبارة عن أعداد صحيحة، وهذا التعبير هو
دالة العدد الصحيح والباقي.

إكسبر ^ إكسبر
نتيجة التعبير هي قيمة الأول مرفوعة إلى الثاني. ال
يجب أن يكون التعبير الثاني عددًا صحيحًا. (إذا كان التعبير الثاني ليس عددا صحيحا،
يتم إنشاء تحذير ويتم اقتطاع التعبير للحصول على قيمة عددية.)
حجم النتيجة هو مقياس إذا كان الأس سلبيا. إذا كان الأس
موجب مقياس النتيجة هو الحد الأدنى لمقياس الأول
التعبير يضرب قيمة الأس والحد الأقصى مقياس والمقياس
من التعبير الأول. (على سبيل المثال مقياس (أ ^ ب) = دقيقة (مقياس (أ) * ب، ماكس ( مقياس،
مقياس (أ))).) وتجدر الإشارة إلى أن expr^0 سيُرجع دائمًا القيمة 1.

(إكسبر)
يؤدي هذا إلى تغيير الأسبقية القياسية لفرض تقييم التعبير.

فار = اكسبر
يتم تعيين قيمة التعبير للمتغير.

فار = اكسبر
وهذا يعادل "var = var expr" باستثناء الجزء "var".
يتم التقييم مرة واحدة فقط. يمكن أن يحدث هذا فرقًا إذا كان "var" عبارة عن مصفوفة.

التعبيرات العلائقية هي نوع خاص من التعبيرات التي يتم تقييمها دائمًا بـ 0 أو 1، 0
إذا كانت العلاقة خاطئة و 1 إذا كانت العلاقة صحيحة. قد تظهر هذه في أي قانونية
تعبير. (يتطلب POSIX bc استخدام التعبيرات العلائقية فقط في حالة، بينما،
وللبيانات وأنه لا يجوز إجراء سوى اختبار علائقي واحد فيها.) العلائقية
المشغلين

اكسبر1 < اكسبر2
وتكون النتيجة 1 إذا كانت expr1 أقل تمامًا من expr2.

expr1 <= expr2
وتكون النتيجة 1 إذا كانت expr1 أقل من أو تساوي expr2.

اكسبر1> اكسبر2
تكون النتيجة 1 إذا كانت expr1 أكبر من expr2.

expr1 >= expr2
وتكون النتيجة 1 إذا كانت expr1 أكبر من أو تساوي expr2.

expr1 == expr2
وتكون النتيجة 1 إذا كانت expr1 تساوي expr2.

expr1 != expr2
وتكون النتيجة 1 إذا كانت expr1 لا تساوي expr2.

العمليات المنطقية قانونية أيضًا. (بوسيكس bc لا يحتوي على عمليات منطقية). ال
نتيجة جميع العمليات المنطقية هي 0 و1 (خطأ وصحيح) كما في العلائقية
التعبيرات. العوامل المنطقية هي:

!expr تكون النتيجة 1 إذا كانت expr 0.

إكسبر && إكسبر
وتكون النتيجة 1 إذا كان كلا التعبيرين غير صفر.

اكسبر || EXPR
وتكون النتيجة 1 إذا كان أي من التعبيرين غير صفر.

أسبقية التعبير هي كما يلي: (من الأدنى إلى الأعلى)
|| المشغل، النقابي الأيسر
&& المشغل، الترابط الأيسر
! عامل، غير النقابي
عوامل العلائقية، النقابي الأيسر
عامل التعيين، النقابي الصحيح
+ و- عوامل التشغيل، الترابط الأيسر
*، / و٪ المشغلين، الترابط الأيسر
^ المشغل، النقابي الصحيح
أحادي - عامل غير ترابطي
++ و- عوامل التشغيل غير الترابطية

تم اختيار هذه الأسبقية بحيث تكون متوافقة مع POSIX bc سيتم تشغيل البرامج بشكل صحيح. هذا
سيؤدي استخدام العوامل العلائقية والمنطقية إلى حدوث بعض السلوكيات غير العادية
عندما تستخدم مع تعبيرات المهمة. خذ بعين الاعتبار التعبير:
أ = 3 < 5

يفترض معظم مبرمجي لغة C أن هذا سيؤدي إلى تعيين نتيجة "3 <5" (القيمة 1) إلى
المتغير "أ". ماذا يفعل هذا في bc يتم تعيين القيمة 3 للمتغير "a" وبعد ذلك
قارن 3 بـ 5. من الأفضل استخدام الأقواس عند استخدام العوامل العلائقية والمنطقية
مع مشغلي المهمة.

هناك عدد قليل من التعبيرات الخاصة التي يتم توفيرها في bc. هذه لها علاقة
الوظائف المحددة من قبل المستخدم والوظائف القياسية. كلهم يظهرون "الاسم(المعلمات)".
راجع القسم الخاص بالوظائف الخاصة بالوظائف التي يحددها المستخدم. الوظائف القياسية هي:

الطول (تعبير)
قيمة دالة الطول هي عدد الأرقام المهمة في الدالة
التعبير.

يقرأ ( )
ستقوم وظيفة القراءة (امتداد) بقراءة رقم من الإدخال القياسي،
بغض النظر عن مكان حدوث الوظيفة. احذر، فقد يسبب هذا مشاكل في
خلط البيانات والبرنامج في المدخلات القياسية. أفضل استخدام لهذه الوظيفة
موجود في برنامج مكتوب مسبقًا ويحتاج إلى مدخلات من المستخدم، لكنه لا يسمح بذلك أبدًا
رمز البرنامج ليتم إدخاله من قبل المستخدم. قيمة دالة القراءة هي
قراءة الرقم من الإدخال القياسي باستخدام القيمة الحالية للمتغير com.ibase
لقاعدة التحويل

مقياس (تعبير)
قيمة دالة المقياس هي عدد الأرقام بعد العلامة العشرية
التعبير.

sqrt (تعبير)
قيمة الدالة sqrt هي الجذر التربيعي للتعبير. إذا
التعبير سلبي، ويتم إنشاء خطأ وقت التشغيل.

البيانات
توفر البيانات (كما هو الحال في معظم اللغات الجبرية) تسلسل التعبير
تقييم. في bc يتم تنفيذ البيانات "في أسرع وقت ممكن". التنفيذ يحدث عندما
تمت مصادفة سطر جديد ويوجد واحد أو أكثر من البيانات الكاملة. ونتيجة لهذا
التنفيذ الفوري، الخطوط الجديدة مهمة جدًا في bc. في الواقع، كل من الفاصلة المنقوطة و
يتم استخدام السطر الجديد كفواصل البيان. سيؤدي وضع السطر الجديد بشكل غير صحيح إلى حدوث
خطأ في بناء الجملة. نظرًا لأن الأسطر الجديدة عبارة عن فواصل بيانية، فمن الممكن إخفاء سطر جديد
باستخدام حرف الخط المائل العكسي. الترتيب "\ "، أين هو ظهور السطر الجديد
إلى bc كمسافة بيضاء بدلاً من السطر الجديد. قائمة البيان هي سلسلة من البيانات
مفصولة بفواصل منقوطة وأسطر جديدة. وفيما يلي قائمة bc تصريحات وماذا
يفعلون: (الأشياء الموجودة بين قوسين ([]) هي أجزاء اختيارية من العبارة.)

التعبير
وهذا البيان يفعل أحد أمرين. إذا كان التعبير يبدأ بـ "
..."، فهو يعتبر بمثابة بيان مهمة. إذا كان
التعبير ليس بيان مهمة، يتم تقييم التعبير وطباعته
إلى الإخراج. بعد طباعة الرقم، تتم طباعة سطر جديد. على سبيل المثال،
"a=1" عبارة عن عبارة إسناد و"(a=1)" عبارة عن تعبير يحتوي على جزء مضمن
تكليف. تتم طباعة جميع الأرقام المطبوعة في القاعدة المحددة بواسطة
متغير obase. القيم القانونية ل obase هي 2 إلى BC_BASE_MAX. (انظر
حدود القسم.) بالنسبة للقواعد من 2 إلى 16، فإن الطريقة المعتادة لكتابة الأرقام هي
مستخدم. للقواعد أكبر من 16، bc يستخدم طريقة أرقام متعددة الأحرف
طباعة الأرقام حيث تتم طباعة كل رقم أساسي أعلى كرقم أساسي 10.
يتم فصل الأرقام متعددة الأحرف بمسافات. كل رقم يحتوي على الرقم
من الأحرف المطلوبة لتمثيل القيمة العشرة الأساسية لـ "obase-1". منذ أرقام
ذات دقة عشوائية، قد لا تكون بعض الأرقام قابلة للطباعة على مخرج واحد
خط. سيتم تقسيم هذه الأرقام الطويلة عبر الأسطر باستخدام "\" كآخر
حرف على السطر. الحد الأقصى لعدد الأحرف المطبوعة في كل سطر هو 70. مستحق
للطبيعة التفاعلية bcطباعة رقم تسبب الأثر الجانبي لـ
إسناد القيمة المطبوعة للمتغير الخاص آخر. وهذا يسمح للمستخدم
استرداد القيمة الأخيرة المطبوعة دون الحاجة إلى إعادة كتابة التعبير الذي تمت طباعته
الرقم. إسناد إلى آخر قانوني وسيحل محل آخر قيمة مطبوعة
مع القيمة المخصصة. ستبقى القيمة المعينة حديثا حتى اليوم التالي
تتم طباعة الرقم أو يتم تعيين قيمة أخرى له آخر. (قد تكون بعض المنشآت
السماح باستخدام نقطة واحدة (.) لا تشكل جزءًا من رقم كخط يد قصير
تدوين ل آخر.)

string تتم طباعة السلسلة إلى الإخراج. تبدأ السلاسل بحرف اقتباس مزدوج
وتحتوي على كافة الأحرف حتى حرف الاقتباس المزدوج التالي. كل الحروف
يتم أخذها حرفيًا، بما في ذلك أي سطر جديد. لا تتم طباعة أي حرف للسطر الجديد بعد ذلك
السلسلة.

طباعة قائمة
توفر عبارة الطباعة (امتداد) طريقة أخرى للإخراج. القائمة"
هي قائمة من السلاسل والتعبيرات مفصولة بفواصل. كل سلسلة أو
تتم طباعة التعبير بترتيب القائمة. لا تتم طباعة سطر جديد نهائي.
يتم تقييم التعبيرات وطباعة قيمتها وتخصيصها للمتغير
آخر. تتم طباعة السلاسل الموجودة في عبارة الطباعة إلى الإخراج وقد تحتوي على
شخصيات خاصة. تبدأ الأحرف الخاصة بحرف الخط المائل العكسي (\).
الأحرف الخاصة التي تم التعرف عليها بواسطة bc هي "أ" (تنبيه أو جرس)، "ب" (مسافة للخلف)،
"f" (تغذية النموذج)، "n" (سطر جديد)، "r" (سطر رجوع)، "q" (علامة اقتباس مزدوجة)، "t"
(علامة التبويب)، و"\" (خط مائل عكسي). أي شخصية أخرى تتبع الشرطة المائلة العكسية ستكون كذلك
تجاهلها.

{ بيان_ القائمة }
هذا هو البيان المركب. يسمح بتجميع بيانات متعددة
معا للتنفيذ

if ( تعبير ) بيان 1 [آخر بيان 2]
تقوم عبارة if بتقييم التعبير وتنفيذ العبارة 1 أو العبارة 2
اعتمادا على قيمة التعبير. إذا كان التعبير غير صفر،
يتم تنفيذ البيان 1. إذا كان البيان 2 موجودًا وقيمة التعبير
هو 0، ثم يتم تنفيذ البيان 2. (الشرط الآخر هو امتداد.)

في حين (تعبير) بيان
ستنفذ عبارة while العبارة عندما يكون التعبير غير صفري.
يقوم بتقييم التعبير قبل كل تنفيذ للبيان. نهاية
الحلقة ناتجة عن قيمة تعبير صفرية أو تنفيذ فاصل
بيان.

For ( [expression1] ; [expression2] ; [expression3] ) بيان
يتحكم for البيان في التنفيذ المتكرر للبيان. التعبير 1 هو
تقييمها قبل الحلقة. يتم تقييم Expression2 قبل كل تنفيذ لـ
إفادة. إذا كانت غير الصفر، يتم تقييم البيان. إذا كان صفرًا، فالحلقة
يتم إنهاء. بعد كل تنفيذ للبيان، يتم تقييم Expression3
قبل إعادة تقييم التعبير2. إذا كان التعبير 1 أو التعبير 3 مفقودين،
لا يتم تقييم أي شيء عند النقطة التي سيتم تقييمها. إذا كان التعبير 2
مفقودة، وهو نفس استبدال القيمة 1 للتعبير2. ( الاختياري
التعبيرات هي امتداد. بوسيكس bc يتطلب جميع التعبيرات الثلاثة.) و
فيما يلي رمز مكافئ لعبارة for:
التعبير 1؛
بينما (التعبير2) {
إفادة؛
التعبير 3؛
}

استراحة يؤدي هذا البيان إلى الخروج القسري لأحدث عبارة أثناء التضمين أو
للبيان.

استمر
يؤدي بيان المتابعة (امتداد) إلى تضمين أحدث ملف لـ
بيان لبدء التكرار التالي.

وقف عبارة التوقف (امتداد) هي عبارة تم تنفيذها وتتسبب في حدوث bc
يتم إنهاء المعالج فقط عند تنفيذه. على سبيل المثال، "إذا (0 == 1) توقف" سوف
لا تسبب bc للإنهاء لأنه لم يتم تنفيذ التوقف.

عائد أعلى إرجاع القيمة 0 من دالة. (انظر القسم الخاص بالوظائف.)

عائد أعلى ( التعبير )
إرجاع قيمة التعبير من دالة. (انظر القسم الخاص
وظائف.) كامتداد، الأقواس غير مطلوبة.

مستعار البيانات
هذه التصريحات ليست تصريحات بالمعنى التقليدي. لا يتم إعدامهم
صياغات. يتم تنفيذ وظيفتهم في وقت "التجميع".

حدود اطبع الحدود المحلية التي يفرضها الإصدار المحلي من bc. هذا امتداد.

استقال عند قراءة بيان الإقلاع عن التدخين، فإن bc يتم إنهاء المعالج، بغض النظر
حيث تم العثور على بيان الإقلاع عن التدخين. على سبيل المثال، "إذا (0 == 1) استقال" سوف يسبب bc
لإنهاء.

ضمان
طباعة إشعار الضمان أطول. هذا امتداد.

وظائف
توفر الوظائف طريقة لتحديد الحساب الذي يمكن تنفيذه لاحقًا.
وظائف في bc قم دائمًا بحساب القيمة وإعادتها إلى المتصل. تعريفات الوظيفة
هي "ديناميكية" بمعنى أن الوظيفة غير محددة حتى يتم العثور على تعريف
في الإدخال. ثم يتم استخدام هذا التعريف حتى وظيفة تعريف أخرى لنفسه
تمت مواجهة الاسم. ثم يحل التعريف الجديد محل التعريف القديم. وظيفة
يعرف على النحو التالي:
حدد الاسم ( المعلمات ) { خط جديد
auto_list statement_list }
استدعاء الدالة هو مجرد تعبير عن النموذج "الاسم(المعلمات)".

المعلمات هي أرقام أو صفائف (امتداد). في تعريف الدالة، صفر أو أكثر
يتم تعريف المعلمات من خلال سرد أسمائهم مفصولة بفواصل. جميع المعلمات
استدعاء بواسطة معلمات القيمة. يتم تحديد المصفوفات في تعريف المعلمة بواسطة
الرموز "الاسم[]". في استدعاء الدالة، تكون المعلمات الفعلية عبارة عن تعبيرات كاملة لـ
معلمات الأرقام. يتم استخدام نفس الترميز لتمرير المصفوفات كما هو الحال في تعريف المصفوفة
حدود. يتم تمرير المصفوفة المسماة بالقيمة إلى الدالة. منذ الوظيفة
التعريفات ديناميكية، ويتم التحقق من أرقام المعلمات وأنواعها عند وجود دالة
مُسَمًّى. سيؤدي أي عدم تطابق في عدد أو أنواع المعلمات إلى حدوث خطأ في وقت التشغيل. أ
سيحدث خطأ وقت التشغيل أيضًا عند استدعاء دالة غير محددة.

auto_list هي قائمة اختيارية من المتغيرات المخصصة للاستخدام "المحلي". بناء الجملة
القائمة التلقائية (إن وجدت) هي "السيارات الاسم، ... ;". (الفاصلة المنقوطة اختيارية.) كل منهما الاسم
هو اسم المتغير التلقائي. يمكن تحديد المصفوفات باستخدام نفس الترميز مثل
المستخدمة في المعلمات. يتم دفع قيم هذه المتغيرات إلى المكدس في بداية
الوظيفة. ثم تتم تهيئة المتغيرات إلى الصفر واستخدامها في جميع أنحاء
تنفيذ الوظيفة. عند الخروج من الوظيفة، يتم ظهور هذه المتغيرات بحيث
تتم استعادة القيمة الأصلية (في وقت استدعاء الوظيفة) لهذه المتغيرات. ال
المعلمات هي في الواقع متغيرات تلقائية تتم تهيئتها إلى قيمة مقدمة في ملف
استدعاء وظيفة. تختلف المتغيرات التلقائية عن المتغيرات المحلية التقليدية لأنه إذا
تستدعي الوظيفة A الوظيفة B، ويمكن لـ B الوصول إلى المتغيرات التلقائية للوظيفة A بمجرد استخدام
نفس الاسم، إلا إذا كانت الدالة B قد أطلقت عليها اسم المتغيرات التلقائية. يرجع ذلك إلى حقيقة أن السيارات
يتم دفع المتغيرات والمعلمات إلى المكدس، bc يدعم وظائف العودية.

الجسم الوظيفي عبارة عن قائمة bc صياغات. مرة أخرى، يتم فصل البيانات عن طريق
الفواصل المنقوطة أو الأسطر الجديدة. تتسبب عبارات الإرجاع في إنهاء الوظيفة و
عودة قيمة. هناك إصداران من بيان الإرجاع. النموذج الأول،
"عائد أعلى"، ترجع القيمة 0 إلى تعبير الاستدعاء. النموذج الثاني، "عائد أعلى (
التعبير )"، يحسب قيمة التعبير ويعيد تلك القيمة إلى الاستدعاء
تعبير. هناك ضمنا "عائد أعلى (0)" في نهاية كل وظيفة. وهذا يسمح بـ
وظيفة لإنهاء وإرجاع 0 دون بيان إرجاع صريح.

تعمل الوظائف أيضًا على تغيير استخدام المتغير com.ibase. جميع الثوابت في جسم الدالة
سيتم تحويلها باستخدام قيمة com.ibase في وقت استدعاء الوظيفة. التغييرات
com.ibase سيتم تجاهله أثناء تنفيذ الوظيفة باستثناء المعيار
وظيفة اقرأ، والتي ستستخدم دائمًا القيمة الحالية لـ com.ibase لتحويل الارقام .

تمت إضافة العديد من الملحقات إلى الوظائف. أولا، شكل التعريف لديه
تم استرخاء قليلا. يتطلب المعيار أن تكون دعامة الفتح على نفس السطر مثل
حدد يجب أن تكون الكلمة الرئيسية وجميع الأجزاء الأخرى على الأسطر التالية. هذا الإصدار من bc سوف
السماح بأي عدد من الأسطر الجديدة قبل وبعد القوس الافتتاحي للوظيفة. ل
على سبيل المثال، التعريفات التالية قانونية.
تحديد د (ن) { العودة (2*ن)؛ }
تعريف د (ن)
{ العودة (2 * ن)؛ }

يمكن تعريف الوظائف على أنها باطل. لا تُرجع الدالة الفارغة أي قيمة، وبالتالي قد لا تكون كذلك
تستخدم في أي مكان يحتاج إلى قيمة. دالة الفراغ لا تنتج أي مخرجات عندما
يتم استدعاؤه من تلقاء نفسه على سطر الإدخال. الكلمة الرئيسية باطل يتم وضعها بين الكلمة الرئيسية
حدد واسم الوظيفة. على سبيل المثال، فكر في الجلسة التالية.
تعريف py (y) { print "--->"، y، "<---"، "\n"؛ }
تحديد الفراغ px (x) { print "--->"، x، "<---"، "\n"؛ }
py(1)
--->1<---
0
px(1)
--->1<---
منذ py ليست وظيفة باطلة، والدعوة ل py(1) يطبع الإخراج المطلوب وبعد ذلك
طباعة السطر الثاني الذي يمثل قيمة الوظيفة. منذ قيمة الدالة
إذا لم يتم إعطاء عبارة إرجاع صريحة صفر، تتم طباعة الصفر. ل px(1),
لا تتم طباعة أي صفر لأن الدالة دالة فارغة.

تمت إضافة أيضًا استدعاء المتغير للمصفوفات. للإعلان عن استدعاء بواسطة مصفوفة متغيرة، فإن
يبدو إعلان معلمة الصفيف في تعريف الوظيفة كما يلي "*اسم[]". ال
يظل استدعاء الوظيفة هو نفسه استدعاء صفائف القيمة.

MATH مكتبة
If bc مع -l الخيار، يتم تحميل مكتبة الرياضيات مسبقًا ويكون المقياس الافتراضي كذلك
مضبوطًا على 20. ستقوم وظائف الرياضيات بحساب نتائجها وفقًا للمقياس المحدد في ذلك الوقت
من دعوتهم. تحدد مكتبة الرياضيات الوظائف التالية:

ق (x) جيب x، x بالراديان.

ج (x) جيب تمام x، x بالراديان.

ا (x) قوس الظل لـ x، قوس الظل العكسي يُرجع الراديان.

ل (x) اللوغاريتم الطبيعي لـ x.

ه (x) الدالة الأسية لرفع e إلى القيمة x.

ي (ن، خ)
دالة Bessel ذات الترتيب الصحيح n لـ x.

أمثلة
In / بن / ش، سيقوم ما يلي بتعيين قيمة "pi" لمتغير الصدفة pi.
بي = $ (صدى "مقياس = 10؛ 4 *a(١)" | قبل الميلاد -ل)

فيما يلي تعريف الدالة الأسية المستخدمة في مكتبة الرياضيات.
هذه الوظيفة مكتوبة في POSIX bc.
المقياس = 20

/* يستخدم حقيقة أن e^x = (e^(x/2))^2
عندما تكون x صغيرة بدرجة كافية، نستخدم المتسلسلة:
ه^س = 1 + س + س ^ 2/2! + س^3/3! + ...
*/

تحديد البريد (س) {
تلقائي a، d، e، f، i، m، v، z

/* تحقق من علامة x. */
إذا (س<0) {
م = 1
س = -س
}

/* شرط مسبق س. */
ض = مقياس؛
المقياس = 4 + ض + .44*س؛
بينما (س > 1) {
و += 1;
س /= 2;
}

/* تهيئة المتغيرات. */
ت = 1+س
أ = س
د = 1

لـ (i=2; 1; i++) {
ه = (أ *= س) / (د *= أنا)
إذا (ه == 0) {
إذا (f>0) while (f--) v = v*v;
مقياس = ض
إذا (م) العودة (1/ت)؛
العودة (ت/١) ؛
}
ت += ه
}
}

ما يلي هو التعليمات البرمجية التي تستخدم الميزات الموسعة لـ bc لتنفيذ برنامج بسيط
لحساب أرصدة دفتر الشيكات. من الأفضل الاحتفاظ بهذا البرنامج في ملف حتى يمكن أن يكون كذلك
تستخدم عدة مرات دون الحاجة إلى إعادة كتابتها عند كل استخدام.
المقياس = 2
طباعة "\nبرنامج دفتر الشيكات!\n"
طباعة "تذكر أن الإيداعات هي معاملات سلبية.\n"
طباعة "الخروج بمعاملة 0.\n\n"

طباعة "الرصيد الأولي؟"; بال = قراءة ()
بال / = 1
طباعة "\ ن"
بينما (1) {
"الرصيد الحالي = "؛ بال
"عملية؟ "؛ العابرة = قراءة ()
إذا (عبر == 0) استراحة؛
بال -= العابرة
بال / = 1
}
استقال

ما يلي هو تعريف وظيفة العامل العودية.
تعريف و (س) {
إذا (س <= 1) يعود (1)؛
العودة (f(x-1) * x);
}

قراءة لأي لبس ليبيديت OPTIONS
جنو bc يمكن تجميعها (عبر خيار التكوين) لاستخدام GNU يقوم readline محرر الإدخال
المكتبة أو BSD تحرير مكتبة. وهذا يسمح للمستخدم بالقيام بتحرير الأسطر من قبل
إرسالهم إلى bc. كما يسمح أيضًا بسجل الأسطر السابقة المكتوبة. عندما
تم تحديد الخيار ، bc لديه متغير خاص آخر. هذا المتغير الخاص تاريخ is
عدد خطوط التاريخ المحتفظ بها. ل يقوم readline، قيمة -1 تعني أن
يتم الاحتفاظ بعدد غير محدود من خطوط التاريخ. تحديد قيمة تاريخ ل
الرقم الموجب يقيد عدد أسطر التاريخ بالرقم المحدد. قيمة 0
تعطيل ميزة التاريخ. القيمة الافتراضية هي 100. لمزيد من المعلومات، اقرأ
أدلة المستخدم لجنو يقوم readline, تاريخ و BSD تحرير المكتبات. لا يمكن للمرء أن تمكين
على حد سواء يقوم readline و تحرير في الوقت نفسه.

اختلافات
هذا الإصدار من bc تم تنفيذه من مسودة POSIX P1003.2/D11 ويحتوي على عدة
الاختلافات والإضافات المتعلقة بالمشروع والتنفيذ التقليدي. إنها
لم يتم تنفيذها بالطريقة التقليدية باستخدام dc(1). هذا الإصدار هو عملية واحدة
الذي يوزع ويدير ترجمة رمز بايت للبرنامج. هناك "غير موثق"
الخيار (-c) الذي يجعل البرنامج يقوم بإخراج رمز البايت إلى الإخراج القياسي بدلاً من ذلك
من تشغيله. تم استخدامه بشكل أساسي لتصحيح أخطاء المحلل اللغوي وإعداد العمليات الحسابية
مكتبة.

المصدر الرئيسي للاختلافات هو الإضافات، حيث يتم توسيع الميزة لإضافة المزيد
الوظائف والإضافات، حيث تتم إضافة ميزات جديدة. وفيما يلي قائمة
الاختلافات والتمديدات.

بيئة لانج
لا يتوافق هذا الإصدار مع معيار POSIX في معالجة LANG
متغير البيئة وجميع متغيرات البيئة التي تبدأ بـ LC_.

الأسماء التقليدية وPOSIX bc لديك أسماء حرف واحد للوظائف والمتغيرات و
صفائف. لقد تم تمديدها لتكون أسماء متعددة الأحرف تبدأ بـ
حرف وقد يحتوي على أحرف وأرقام والشرطة السفلية.

سلاسل
لا يُسمح للسلاسل أن تحتوي على أحرف NUL. يقول POSIX أنه يجب على جميع الأحرف
يتم تضمينها في السلاسل.

آخر بوسيكس bc ليس لديه آخر عامل. بعض تطبيقات bc استخدم الفترة
(.) بنفس الطريقة.

مقارنات
POSIX bc يسمح بإجراء مقارنات فقط في عبارة if، و عبارة while، و
التعبير الثاني للبيان. كما أن هناك عملية علائقية واحدة فقط
المسموح به في كل من هذه العبارات.

إذا بيان، شرط آخر
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 السماح بمسافات في الأرقام. على سبيل المثال، "س=1 3" سيكون
قم بتعيين القيمة 13 للمتغير x. نفس البيان من شأنه أن يسبب بناء الجملة
خطأ في هذا الإصدار من bc.

الأخطاء والتنفيذ
يختلف هذا التنفيذ عن التطبيقات الأخرى من حيث الكود الذي سيكون عليه
يتم تنفيذه عند العثور على أخطاء بناء الجملة وأخطاء أخرى في البرنامج. إذا كان هناك خطأ في بناء الجملة
تم العثور عليه في تعريف الدالة، ويحاول استرداد الأخطاء العثور على بداية a
البيان والاستمرار في تحليل الوظيفة. بمجرد العثور على خطأ في بناء الجملة في
الدالة، لن تكون الدالة قابلة للاستدعاء وتصبح غير محددة. أخطاء في بناء الجملة
في رمز التنفيذ التفاعلي سوف يبطل كتلة التنفيذ الحالية. ال
يتم إنهاء كتلة التنفيذ بنهاية السطر الذي يظهر بعد اكتماله
تسلسل التصريحات. على سبيل المثال،
a = شنومكس
ب = 2
لديه كتلتين للتنفيذ و
{ أ = 1
ب = 2 }
لديه كتلة تنفيذ واحدة. سيؤدي أي خطأ في وقت التشغيل إلى إنهاء تنفيذ التيار
كتلة التنفيذ. لن يؤدي تحذير وقت التشغيل إلى إنهاء كتلة التنفيذ الحالية.

المقاطعات
أثناء الجلسة التفاعلية، يتم إرسال إشارة 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.

DIAGNOSTICS


إذا لم يكن من الممكن فتح أي ملف في سطر الأوامر، bc سوف تقرير أن الملف هو
غير متاح وإنهاء. أيضًا، هناك تشخيصات لوقت التجميع والتشغيل يجب أن تكون كذلك
تكون واضحة بذاتها.

استخدم BC عبر الإنترنت باستخدام خدمات onworks.net


خوادم ومحطات عمل مجانية

قم بتنزيل تطبيقات Windows و Linux

  • 1
    محمل الإقلاع البرسيم EFI
    محمل الإقلاع البرسيم EFI
    انتقل المشروع إلى
    https://github.com/CloverHackyColor/CloverBootloader..
    الميزات: Boot macOS و Windows و Linux
    في UEFI أو الوضع القديم على Mac أو الكمبيوتر الشخصي باستخدام
    UE ...
    تنزيل Clover EFI bootloader
  • 2
    يونايتد آر بي إم إس
    يونايتد آر بي إم إس
    انضم إلينا في Gitter!
    https://gitter.im/unitedrpms-people/Lobby
    قم بتمكين مستودع URPMS في ملف
    النظام -
    https://github.com/UnitedRPMs/unitedrpms.github.io/bl...
    تحميل unitedrpms
  • 3
    تعزيز مكتبات C ++
    تعزيز مكتبات C ++
    يوفر Boost محمولًا مجانيًا
    مكتبات C ++ خاضعة لاستعراض الأقران. ال
    ينصب التركيز على المكتبات المحمولة التي
    تعمل بشكل جيد مع مكتبة C ++ القياسية.
    انظر http: //www.bo ...
    تنزيل Boost C ++ Libraries
  • 4
    برنامج VirtualGL
    برنامج VirtualGL
    يقوم برنامج VirtualGL بإعادة توجيه الأوامر ثلاثية الأبعاد من ملف
    تطبيق Unix / Linux OpenGL على ملف
    GPU من جانب الخادم ويقوم بتحويل ملف
    عرض صور ثلاثية الأبعاد في دفق فيديو
    مع ماذا ...
    تنزيل برنامج VirtualGL
  • 5
    libusb
    libusb
    مكتبة لتمكين مساحة المستخدم
    برامج تطبيقية للتواصل معها
    جهاز USB:٪ s. الجمهور: المطورين ، النهاية
    المستخدمون / سطح المكتب. لغة البرمجة: C.
    فئات...
    تنزيل libusb
  • 6
    جرعة كبيرة
    جرعة كبيرة
    SWIG هي أداة لتطوير البرمجيات
    يربط البرامج المكتوبة باللغتين C و
    C ++ مع مجموعة متنوعة من المستويات العالية
    لغات البرمجة. يستخدم SWIG مع
    مختلف...
    تنزيل SWIG
  • أكثر "

أوامر لينكس

Ad