الخميس، 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

الأربعاء، 25 فبراير 2009

جملة التفرع المشروط if

تكون كالتالي
if cond then
st2
elsif cond2 then
st2
else
st3
end
تتكون الحلقة من الجمل التالية
If -elsif-else end
يمكن ترك جسم الحلقة ويمكن اغفال then عند نهاية السطر إذا كانت الجملة في اكثر من سطر
لفحص الشرط يجب استخدام علامتي يساوي == كما في لغة سي
مثال
x=1
if x==1
puts "1"
elsif x==2
puts "2"
else
puts "3"
end
غير قيمة x شاهد تنفيذ البرنامج

الاثنين، 16 فبراير 2009

حلقة التكرار while

تكون حلقة التكرار while على الشكل التالي
while cond
sents
end
يتم تكرار الحلقة حتى تحقق صحة الشرط cond
مثال
i=-10
while i<0
puts i
i=i+1
end

الجمعة، 13 فبراير 2009

حلقة التكرار for

حلقة for في لغة على الشكل التالي
for i in a..b
sents
end
ويتم تكرار الجمل في الحلقة من الحد الأدنى إلى الحد الأعلى
يمكن ان تكون مصفوفة متكونة من عناصر مختلفة

الأربعاء، 4 فبراير 2009

المصفوفات

المصفوفة في روبي مجموعة من العناصر لايلزم ان تكون نفس النوع


تبدأ الفهرسة من الصفر إلى
يمكن استعمال الفهرس -1 و-2 للاشارة إلى العناصر بداية نهاية المصفوفة...
يمكن دمج المصفوفات بعلامة الجمع
إضافة عنصر للمصفوفة >>


لمعرفة المناهج للمصفوفة
puts c.methods