السبت، 8 مارس 2014

اليوم الأول مع روبى

بسم الله.. اول يوم ..اول تحديث
تعرفت على لغة روبى من اسبوع تقريبا، اللغة يبدو انها سهلة وبسيطة فى كتابتها فيمكن لأى شخص جديد فى البرمجة انه يفهم وظيفة الكود بسهولة جدا ،فمثلا لو كتبت الكود :
7.times { print " السلام عليكم " }
يمكنك التخمين بسهولة أن الكود سيطبع كلمة "السلام عليكم" 7 مرات، طيب وإذا اردت 100 مرة؟

يمكنك دائماً استبدال القوس الأول } بكلمة do
والقوس الأخير { بكلمة end ليصبح:

7.times do
print " السلام عليكم "
end

وهذا ما يميز اللغة ان الكود المكتوب لا يحتوى على : أو ; أو ( ) أو < >  أو { }
على عكس اللغات البرمجية الأخرى التى لو نسيت فيها فاصلة منقوطة فلن يعمل البرنامج للأبد

اتابع تعلم اللغة الآن من موقع التعليم المفتوح رواق _وهو مبرمج بلغة روبى_ وموقع كود أكاديمى

والآن ما اتممته خلال اليوم الأول :

1- بعض العمليات على المتغيرات ، مثل:

.upcase , .downcase , .reverse , .length , .capitalize , 

.include?"something" //returns true or false
.gsub(/something/,"with something)


يمكنك تعيين متغير ووضع فيه القيمة المراد تطبيق الخاصية عليها مثل

name_capitalized=amr.capitalize

print name_capitalized


او طباعة القيمة مباشرة مع الخاصية المطلوبة بعد اضافة علامة التعجب فى نهاية أمر الطباعة
,
my_name="amr"

print my_name.capitalize!



2- العمليات الشرطية : if, else, elsif, unless

الجديد بالنسبة لى هى unless تعتبر مثل if ولكن إذا تصورت انها تطبق نفس الوظيفة فهى تطبع else اولا، مثلا: 


unless 1>2

print"this is false 1>2"
else
print"this is true 1>2"
end

لم تضف جديد بالنسبة لى إلى الآن، ولاحظ ايضا طريقة تسمية "elsif" عكس "else if"


3- عمليات المقارنة >  <  = والعمليات المنطقية &&  ||  !


4- عمليات الجمع والطرح والقسمة والضرب على متغير باستخدام +=  -=  *=  /= 
ولا يوجد طريقة ++ او -- المستخدمة فى C++


5- Loops : While , Until , For, Loop, .Times, .each, and using Next in loops.

تعتبر Until عكس While ، مثلاً عند استخدام while لطباعة ارقام من 0 الى 10


num=0

while num<=10
print num
num+=1
end


تكافئها فى Until :

num=0

until num>10
print num
num+=1
end


فى until يظل يكرر العملية عدد مرات الى ان يصل للشرط، عكس while التى تتحقق من الشرط كل مرة قبل الطباعة

For Loop غنية عن التعريف الاضافة هنا بين الكود:


for x in 0..10

print x
end


والكود :



for x in 0...10
print x
end


فى المرة الأولى سيطبع الارقام من 0 الى 10 
والمرة الثانية يطبع من 0 الى 9 فلا يطبع آخر رقم (10) ( بسبب وجود ثلاث نقط بين الرقم الأول والأخير)

Loop 
طريقة جديدة ايضاً تظل تكرر العملية المطلوب تنفيذها الى ان تضيف الشرط فى نهايتها بعد break if ، مثلاً : 

num=0

loop do 
print num
num+=1
break if num>10
end

do و end كبديل للاقواس كما ذكرت قبل ذلك

Next if يمكن استخدامها داخل Loops لتتجاهل طباعة امر ما عندما يتحقق شرط معين ، مثلاً:


num=0

for x in 0..10
next if x%2==0
print x
end

#الكود يقوم بتجاهل الارقام الزوجية ويطبع الفردية فقط من 0 الى 10

وأخيراً .each
وتستخدم غالباً مع المصفوفات لاجراء عملية على كل عنصر داخل المصفوفة على حدة ، مثلاً:


array=[1,2,3,4,5]
array.each do |x|
x+=10
print x
end


ويمكن استخدام for loop للتعامل ايضا مع عناصر المصفوفة كالآتى

array=[1,2,3,4,5]
for x in array
x+=10
print x
end


الاختلاف ان فى الاولى لا يمكن استخدام x خارج الـ loop وفى الأخيرة يمكن استخدامها


انتهى اليوم الأول بحمد الله

ليست هناك تعليقات :

إرسال تعليق