الخميس، 16 أبريل 2009

التفرع المتعدد - جملة case/when

عندما تتعدد الخيارات طبقا لقيمة متغير معين يبدو عدم الوضوح والإطالة في كثرة استخدام جملة التفرع If
لذا نستخدم جملة case
والتي تكون على النحو التالي
x=0
case x
when 0 : puts "x=0"
when 1..3 : puts "x=1"
when 5..100 : puts "x=2"
else puts "لاشئ"
end
لكل تفرع نستخدم when وعندما لاتكون القيمة ضمن المدى المعين تتكفل الجملة else بنتفيذ مانريد ويمكن حصر قيم داخل النطاق
1..3 مثلا
جرب البرنامج وغير قيم X لأاي قيمة تراها وغير نوع المتغير أيضا تلاحظ مرونة الجملة case.

الجمعة، 10 أبريل 2009

مدى ونطاق المتغيرات

نعرف مما سبق ان تعيين متغير هي عملية سهلة في روبي, إذ لايجب أن تهتم بنوع المتغير فستقوم اللغة بمعرفة ذلك
ويجب تعيين المتغير قبل استخدامه
a=21
b=2.333
c="strrrrrring."
وبما أن المتغير هو ايضا فصيل فإنه يمكن معرفة نوع المتغير بالدالة kind_of
x=12.3251
puts x.kind_of?(Integer)
كما يكمن معرفة الفصيل الرئيسي للمتغير
puts x.class
عندما يتم تعريف المتغير داخل دالة أو منهج يسمى متغير محلي وهوغير معروف حارج الحلقة أو المنهج
def sum(a,b)
x=a+b
return x
end
puts x,sum(15,14)
هنا X غير معروف خارج الدالة sum
وهناك نوع من المتغيرات معروفة لجميع مراحل البرنامج تسمى المتغيرات العالمية ويجب أن تسبق بعلامة $
مثال
$name="هذا برنامجى الاول"
يمكن أيضا تعيين مجموعة من المتغيرات لمجموعة من القيم
a, b, c = 100, 200, 500
puts a,b,c
وهناك متغيرات داخل الفصائل سنعرض لها في مكان آخر

الجمعة، 3 أبريل 2009

التعامل مع التواريخ Dates

توفر روبي فصيل للتعامل مع التواريخ يشمل العديد من الدوال والإجراءات.

d=Date.new(2009,3,12)
puts d.methods
puts d.day
puts d.month
puts d.year
puts d.to_s
puts d.leap?

هناك دوال تعود بنتائج منطقية تنتهي بعلامة "?"
كما في الدالة الأخيرة التي تبين هل السنة كبيسة أم لا

معالجة سلاسل الحروف String Class

لكل لغة دوال ومناهج وفصائل لمعالجة سلاسل الحروف وفي روبي هناك فصيل أو كائن كامل للتعامل مع الحروف
اسم الفصيل String
ويمكن تعريف متغيرات منه بسهولة أو فقط مساواة المتغير بسلسلة أحرف
s=String.new

s=' stringd in ruby'
الإجراء new يولد كائن جديد من الفصيل String
لمعرفة جميع المناهج المتعلقة بالفصيل أطبع
puts s.methods
هناك العديد من الدوال والإجراءات التي تقدم خدمات للعمل مع الكائن الجديد
منها
split
تقوم بتقسيم السلسلة إلى سلاسل أصغر متكونة في مصفوفة
puts s.split
يقوم بتقسيم السلسلة إلى سلاسل اصغر نعتمدة على الفاصل الافترضي -الفراغ-
puts s.split(',')
يقوم بتقسيم السلسلة إلى سلاسل اصغر نعتمدة على الفاصل ','

sub
الإجراء sub يقوم باستبدال مجموعة أحرف داخل السلسلة بمجوعة أخرى
puts s.sub('ruby',ruuuuuuuby'')

هذه عينة من الدوال والإحراءات التي تجعل التعامل من السلاسل سهل للغاية

puts s.empty?
دالة تفحص هل الساسلة لاتحوى محارف أم لا