كيف تكتب برنامجك الأول بلغة Ruby


thaer mohamad

مقدمة

مازال برنامج "!Hello, World" التقليدي يتمتّع بالاحترام في عالم لغات البرمجة، كونه برنامج بسيط وكامل للمبتدئين، ويسمح بالتأكّد من أن البيئية البرمجية معدة بشكل صحيح. سيتم في هذه المقالة شرح كيفية بناء هذا البرنامج باستخدام لغة البرمجة Ruby، لكن لجعل هذا البرنامج أكثر إمتاعًا سيتم تعديل برنامج "!Hello, World" التقليدي ليقوم بطلب اسم المستخدم ليتم عرضه في رسالة الترحيب، أي سيكون الشكل النهائي للبرنامج كما يلي:

Please enter your name.
Thaer
Hello, Thaer! I'm Ruby!

لكن قبل البدء يجب أن تكون بيئة التطوير البرمجية المحلية للغة Ruby منصبة على الحاسب.

الخطوة الأولى- كتابة برنامج “Hello, World!” التقليدي

لكتابة أي برنامج Ruby يجب في البداية فتح أي محرر نصوص مثل محرر سطر الأوامر nano ثم القيام بإنشاء ملف Ruby جديد كما يلي:

$ nano hello.rb 

حيث قمنا بتسمية هذا الملف hello.rb لأننا سنقوم بكتابة كود برنامج "!Hello, World" التقليدي ضمنه. وحالما يقوم المحرر بفتح هذا الملف ضمن نافذة موجه أوامر نظام التشغيل، سنقوم بكتابة كود Ruby الخاص ببرنامج "!Hello, World" التقليدي ضمن هذا الملف كما يلي: 

puts "Hello, World!"

تستخدم الدالة puts من أجل طباعة النصوص على الشاشة، حيث تقوم بطباعة السلسلة النصية string التي تأتي بعدها (في حالتنا هنا "!Hello, World"), والسلسلة النصية هي عبارة عن مجموعة من المحارف المحصورة ضمن علامتي تنصيص " ". إن الدالة puts هي من الدوال الموجودة ضمن لغة البرمجة Ruby بشكل افتراضي، كما ويمكن للمستخدم أن يقوم بإنشاء دواله الخاصة لتأدية وظائف معينة. والآن سنقوم بحفظ البرنامج وإنهاء المحرر nano وذلك بالضغط على المفاتيح CONTROL و X ثم ضغط المفتاح y (نعم) عند سؤال المحرر عن الرغبة بحفظ التعديلات على الملف.

الخطوة الثانية- تشغيل برنامج Ruby

بعد أن تم الانتهاء من كتابة برنامج "!Hello, World" بلغة Ruby أصبح بالإمكان تشغيله وتجربته عن طريق إدخال الأمر ruby متبوعا باسم ملف البرنامج hello.rb ضمن موجه أوامر نظام التشغيل كما يلي:

$ ruby hello.rb

ثم نضغط مفتاح الإدخال ENTER فتظهر نتيجة تنفيذ البرنامج كما يلي:

Hello, World!

حيث يقوم الأمر ruby بتشغيل مترجم تعليمات لغة البرمجة Ruby والذي يقوم بدوره بقراءة الملف الذي تم تحديد بعد الأمر (في حالتنا هنا الملف hello.rb)، ثم يقوم هذا المترجم بتنفيذ تعليمات لغة Ruby الواردة فيه وإظهار نتيجة التنفيذ على الشاشة. ففي مثالنا يقوم المترجم بتنفيذ التعليمة "!puts "Hello, World كما يلي: يتم استدعاء الدالة puts ومن ثم تمرير السلسلة النصية "!Hello, World" إليها, حيث تسمى هذه السلسلة النصية بالمعامل لأنه تم تمريرها إلى الدالة، ثم تُنفذ الدالة puts لتقوم بطباعة السلسلة النصية الممررة إليها على الشاشة، طبعًا لا يتم طباعة علامتي التنصيص على الشاشة لأنها تستخدم فقط لتحديد محتويات السلسلة النصية. نلاحظ أن البرنامج يعمل لكن سنقوم بتعديله ليصبح تفاعليًا، لنرى كيف يتم ذلك.

الخطوة الثالثة- جعل البرنامج تفاعليًا

إن البرنامج السابق يعطي نفس الخرج في كل مرة يتم تشغيله فيها، لذا سنقوم بتعديله ليصبح تفاعليًا من خلال طلبه لاسم المستخدم ليقوم بعرضه ضمن رسالة الترحيب، أي أن خرج البرنامج سيتغيّر بتغيّر الاسم المدخل. بدل أن نقوم بتعديل البرنامج السابق سنقوم بإنشاء برنامج جديد ضمن الملف greeting.rb باستخدام المحرر nano كما يلي:

$ nano greeting.rb 

وحالما يقوم المحرر بفتح هذا الملف، سنقوم بإضافة سطر كود Ruby الذي يقوم بطلب اسم المستخدم: 

puts "Please enter your name."

نلاحظ أنه تم استخدام الدالة puts من جديد من أجل طباعة نص طلب إدخال الاسم على الشاشة. ثم نقوم بإضافة سطر آخر لاستقبال الاسم المدخل من قبل المستخدم وتخزينه: 

puts "Please enter your name."
name = gets

حيث تم استخدام الدالة gets التي تقوم باستقبال الدخل من لوحة المفاتيح، حيث يتم إيقاف البرنامج بشكل مؤقت ريثما ينتهي المستخدم من إدخال المحارف من لوحة المفاتيح بضغطه على المفتاح ENTER، عندها يتم تحويل جميع المحارف المدخلة بما فيها ENTER إلى سلسلة نصيّة. وبما أننا نريد استخدام هذه السلسلة النصيّة فيما بعد ضمن برنامجنا لذا قمنا بحفظها عن طريق إسنادها للمتغير name، حيث يحتفظ البرنامج بهذه السلسلة النصية في مكان ما من ذاكرة الحاسب والمعنونة باسم المتغيّر الذي أسندت له حتى الانتهاء من تنفيذ البرنامج.
نقوم الآن بإضافة آخر سطر للبرنامج والذي يقوم بطباعة رسالة الترحيب المتضمنة على اسم المستخدم: 

puts "Please enter your name."
name = gets
puts "Hi, #{name}! I'm Ruby!"

نلاحظ أنه تم استخدام الدالة puts من جديد لكن في هذه المرة مع أداة إدراج السلاسل النصية { }# وهي من أدوات لغة Ruby والتي تسمح بإدراج السلسلة النصيّة المحفوظة في متغير ما ضمن سلسلة نصيّة أخرى، حيث يتم إظهار القيمة المحفوظة في المتغير الموجود بين القوسين بدل اسمه (في حالتنا هنا القيمة المسندة للمتغير name). والآن بعد الانتهاء من كتابة البرنامج الجديد سنقوم بحفظه وإنهاء المحرر nano وذلك بالضغط على المفاتيح CONTROL و X ثم ضغط المفتاح y. سنقوم بتشغيل البرنامج الجديد واختباره كما يلي:

$ ruby greeting.rb

ثم نضغط مفتاح الإدخال ENTER فتظهر نتيجة تنفيذ البرنامج كما يلي:

Please enter your name.
Thaer 
Hi, Thaer
! I'm Ruby!

نلاحظ أن خرج البرنامج ليس كما توقعناه حيث كنا نتوقع ظهور العبارة !Hi, Thaer! I’m Ruby وذلك بسب احتواء المتغير name على المحرف ENTER في نهاية السلسلة النصيّة المحفوظة، حيث يتم إظهار هذا المحرف على شكل إضافة سطر جديد، لذا يجب إزالة هذا المحرف من السلسلة النصيّة المحفوظ في المتغير name. يمكن تحقيق ذلك عن طريق تعديل السطر الثاني من البرنامج بعد فتح ملفه greeting.rb بالمحرر nano ليصبح كما يلي:

puts "Please enter your name."
name = gets.chop
puts "Hi, #{name}! I'm Ruby!"

حيث باستخدام الدالة chop مع الدالة puts لتقوم بإزالة أخر محرف من السلسلة النصيّة التي قامت الدالة باستقبالها من لوحة المفاتيح، وهكذا يتم حفظ جميع المحارف المدخلة من لوحة المفاتيح في المتغيّر name إلا المحرف ENTER. نحفظ التعديل الجديد على البرنامج وننهي المحرر nano وذلك بالضغط على المفاتيح CONTROL و X ثم ضغط المفتاح y, ثم نعيد تشغيل البرنامج من جديد:

$ ruby greeting.rb

ثم نضغط مفتاح الإدخال ENTER فتظهر نتيجة تنفيذ البرنامج التي كنا نريدها:

Please enter your name.
Thaer 
Hi, Thaer! I'm Ruby!

وهكذا تم إنجاز برنامج مكتوب بلغة البرمجة Ruby يستقبل الدخل من المستخدم ويعالجه ثم يعرضه على الشاشة.

ملخص

تم في هذه المقالة تعلم كيفية كتابة برنامج Ruby بسيط يقوم باستقبال الدخل من لوحة المفاتيح ثم يعالجه ثم يعيد إظهاره على الشاشة. يمكن الآن وبعد تعلم بعض أساسيات البرمجية بلغة Ruby توسيع المهارات البرمجية بهذه اللغة عن طريق تطوير البرنامج الذي تم إنشائه في هذه المقالة ليحوي على وظائف جديدة.

ترجمة المقال How To Write Your First Ruby Program لصاحبه Brian Hogan





تفاعل الأعضاء


لا توجد أيّة تعليقات بعد



يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن