الخميس، 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?
دالة تفحص هل الساسلة لاتحوى محارف أم لا

السبت، 21 مارس 2009

البرامج الفرعية- الدوال Functions

يتكون البرنامج الفرعي من الكلمة الدليلية def ,نهاية الكتلة end
def display
puts ('Salam Ya Alem')
end
disply
ويمكن تمرير متغيرات في الأجراء
def display(a)
puts(a)
end
disply('Salam Ya Alem')
disply 'Salam Ya Alem'
يمكن الاستغناء عن الأقواس
يمكن للإجراء للعودة بقيم معينة أي دالة مع كلمة return
def doubleNumber(a)
return a*a
end
puts doubleNumber(5)
puts doubleNumber(5.2)

السبت، 7 مارس 2009

العمليات المنطقية

العمليات المنطقية تكون نتيجتها صح أو خطأ true , false وتستعمل في جمل التحكم المشروط مثل if while unless repeat
== فحص المساواة
> أكبر من
< أصغر من
<> لايساوي
=> أضغر من أو تساوي
=< أكبر من أو تساوي
أمثلة

c=1
b=2
puts c==b
puts c<>b
puts a<10

جميع النتائج هنا أما صح أو خطأ وفي التفرعات ينتج تنفيذ جمل حسب التعبير نفسه

الجمعة، 6 مارس 2009

العمليات الحسابية

كاي لغة أخرى تدعم روبي جميع العمليات الحسابية الأساسية مثل الجمع والطرح والقمسة والضرب بين أنواع البيانات المتشابهة
مثال
puts 14-12
النتيجة هنا عدد صحيح
puts 14.25/10
النتيجة هنا عدد حقيقي
puts 16/15
النتيجة هنا عدد صحيح
puts 25.25*36
كما تتوفر مكتبة كاملة للدوال الرياضية مثل جيب الزاوية واللوغريتم باستعمال الفصيل Math
puts Math.tan(15)
puts Math.sin(45)
لمشاهدة جميع النهج للفصيل Math
أكتب
puts Math.methods