كيف تستخدم الأمر bc

Posted: أكتوبر 25, 2014 in General
الوسوم:, ,

كيف تستخدم 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
/

اترك تعليقًا

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

شعار ووردبريس.كوم

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   /  تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   /  تغيير )

Connecting to %s