أرشيف لـأكتوبر, 2014

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

Advertisements

VLC-Subtrack

Posted: أكتوبر 5, 2014 in General

ازيكم؟ مش عارف في حد لسه بيتابع البلوج ولا ﻷ

على كل الأحوال كتبت اداة لتشغيل جزء من مقطع مرة او عدد ما من المرات او عدد لانهائي، مناسب جدا للناس اللي بتحاول تحفظ قرآن ومعندهاش مصاحف تحفيظ كل اللي عليه يحدد فترة البداية والنهاية وعدد المرات وخلاص ^_^

طريقة الأستخدام
python subtrack.py -t “/home/striky/hawa.mp3” -s 150 -e 280 -r 3

التطبيق بيستخدم python bindings ل vlc مرفقة في المستودع

https://bitbucket.org/xmonader/vlc-subtrack