كيف تستخدم BC؟
ماهي BC؟
هي لغة موجه للعمليات الحسابية وتعريف الدوال بالإضافة لمكتبة رياضية قياسية، تتشابه مع لغة سي في طريقة كتابتها
تأخد تعليماتها من ال stdin
العناصر الأساسية
1- الأرقام (تعبر عنها كأرقام عشرية)
مصطلح length يعني عدد الخانات الموجودة في الرقم
مصطلح scale المقصود به عدد الخانات بعد العلامة العشرية
2-المتغيرات
يوجد نوعين من المتغيرات، متغيرات بسيطة ومصفوفات (يجب ان تسمى بأسماء تبدأ بحرف صغير يليه حروف صغيرة او ارقام)
-يوجد متغيرات محجوزة منها
last يعبر عن آخر قيمة
scale يعبر عن عدد الخانات المقبولة بعد العلامة العشرية
التعليقات
لإضافة ملاحظات على التعبيرات تستطيع استخدام
/* */ كما في لغة سي
لتشغيل البرنامج اكتر الأمر bc
وللخروج منه اكتب quit
حاسبة بسيطة
تستطيع استخدام المعاملات المعروفة كالجمع + والطرح – والضرب * والقسمة / ومعامل الباقي ٪ وكذلك عملية الأس ^ وكذلك استخدام المعاملات العلائقية
>, <, ==, !=, >=, =< وكذلك المعاملات المنطقية ك && (and) و ||(or) و ! (للنفي)
striky@localhost ~> bc 20 bc 1.06.95 Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. 1 1 1+2 3 3*4 12 4/2 2 4%3 1 3^2 9 5-7 -2 -3 + 48 45 3>5 0 5>3 1 5==5 1 7 >= 5 1 6 != 4 1 3 && 5 1 3 || 0 1 !0 1 !1 0
استخدام المتغيرات
لتعريف متغير فالأمر بسيط كل ماعليك هو
varname = expr
x=4 y=6 x+y 10 x++ 4 x 5 x *= 2 x 10
تستطيع ان تفرض اولوية تحقيق اي تعبير بوضعه بين قوسين
يوجد تعبيرات خاصة مثل length و scale (عدد الخانات وعدد الخانات بعد العلامة)
كذلك الأمر read لقراءة مدخل من المستخدم
ودالة sqrt للحصول على الجذر التربيعي لتعبير ما
length(1234) 4 length(1234.2421) 8 scale(.33) 2 scale(.3300) 4 scale(4121.3300) 4 sqrt(4) 2 read() 4 4
الأمر limits
للحصول على معلومات عن حدود إصدار bc الخاص بك
limits BC_BASE_MAX = 2147483647 BC_DIM_MAX = 16777215 BC_SCALE_MAX = 2147483647 BC_STRING_MAX = 2147483647 MAX Exponent = 9223372036854775807 Number of vars = 32767
الدوال
لتعريف دالة
define FUNCTION_NAME(PARAMS) { /* auto VARIABLES */ /* code */ }
define get3() { return 3 }
هنا قمنا بتعريف دالة تعيد دائما الرقم 3
z=get3() z 3
define dbl(n){ return 2*n }
هنا قمنا بتعريف دالة تضاعف المدخل n
dbl(3) 6 dbl(20) 40
لإستخدام المكتبة الرياضية القياسية يجب ان تشغل bc مع إضافة الأمر -l
bc -l
يوجد الدوال
s -> sin c -> cos a -> arctan l -> natural logarithm e -> exponential
لطباعة جملة -بين علامتي تنصيص- يوجد الأمر print
print "SOMETHING"
الشروط
تستطيع اختبار شرط عبر جملة if/else
لدينا متغيرين x,y ونريد ان نسند قيمة الأكبر منهما إلى z
z=0 x=19 y=24 if (x>y) { z=x }else{ z=y } z 24
الحلقات
تدعم كذلك while, for, break, continue
مثلا نريد الحصول على مجموع الأرقام من 0 إلى 6
total = 0 for (i=0; i<6; i++) { total +=i total } 0 1 3 6 10 15 total 15
دالة المضروب factorial
define fact(x) { if (x < 2) { return (1); } else { return ( x*fact(x-1) ); } } fact(3) 6 f(5) 120
سنقوم بعمل دالتين لحساب المحيط والمساحة للدائرة
pi = 3.14 define perim(radius) { return (2*pi*radius); } perim(3) 18.84 define circle_area(radius) { auto area area = radius * pi * pi return (area); } circle_area(4) 39.4384
مصادر
https://www.gnu.org/software/bc/manual/html_mono/bc.html
/