الدرس 2 من 10

الأرقام والنصوص

هدف الدرس

القسمة العشرية ودوال النصوص

01

الشرح

في Ruby نوعان أساسيان للأرقام: Integer للأعداد الصحيحة وFloat للأعداد العشرية. وإذا قسمت عددًا صحيحًا على عدد صحيح فالناتج صحيح أيضًا، ويُحذف الكسر دون أي تنبيه، فـ 7 / 2 تساوي 3 وليس 3.5. ويكفي أن يكون أحد الطرفين عشريًّا لتصير القسمة عشرية مثل 7.to_f / 2، أو تستعمل 7.fdiv(2) مباشرة.

والخطأ الشائع أن تحوّل إلى عشري بعد القسمة، فـ (47 / 6).to_f تعطي 7.0 لأنّ القسمة الصحيحة حدثت أوّلًا وضاع الكسر قبل التحويل. وحين تعرض الناتج تقرّبه round(2) إلى منزلتين عشريتين.

والنصّ كائن له دوال خاصّة به: strip تحذف المسافات من بدايته ونهايته، وupcase تحوّل الأحرف اللاتينية إلى كبيرة (الحروف العربية ليس فيها كبير وصغير)، وreverse تعكس ترتيب الأحرف، وsplit(",") تقسم النصّ إلى مصفوفة عند كل فاصلة، و"-" * 20 تكرّر النصّ عشرين مرّة. وكلها تُرجع نصًّا جديدًا ولا تغيّر النصّ الأصلي، لذلك تستطيع أن تستدعيها واحدة بعد الأخرى مثل text.strip.upcase.

02

المطلوب

احسب في average متوسّط نقاط الفريق في المباراة الواحدة عددًا عشريًّا مقرّبًا إلى منزلتين. ثم نظّف coupon واحفظ الناتج في code بلا مسافات وبأحرف كبيرة، وقسّم tags عند الفواصل واحفظ الناتج في tag_list، واصنع divider بتكرار العلامة "=" 20 مرّة باستعمال *.

الفحوص

5 فحوص
  1. المتغيّر average عدد عشري وليس صحيحًا
  2. المتغيّر average مقرّب إلى منزلتين ويساوي 7.83
  3. المتغيّر code بلا مسافات وبأحرف كبيرة
  4. المتغيّر tag_list مصفوفة فيها الوسوم الثلاثة
  5. المتغيّر divider مكوّن من 20 علامة =
main.rb
المخرجاتRuby 3.4 (ruby.wasm)

نحمّل بيئة Ruby الآن، وحجمها نحو 8 ميغابايت. يحدث هذا مرّة واحدة فقط، ثم يحفظها متصفّحك.

–/5

يبدأ الفحص حين تجهز البيئة.

تجد 5 فحوص في بطاقة «المطلوب».