التابع Numeric.divmod‎ في روبي

من موسوعة حسوب
< Ruby‏ | Numeric
اذهب إلى التنقل اذهب إلى البحث

يعيد التابع divmod مصفوفة تحتوي على حاصل (quotient) وباقي قسمة العدد الذي استُدعي معه على العدد المُمرَّر إليه.

البنية العامة

divmod(numeric)    array

إن كان لدينا العددين q و r = x.divmod(y)‎، فيكون:

q = floor(x/y)
x = q*y + r

يتم تقريب حاصل القسمة نحو اللانهاية السالبة، كما هو موضح في الجدول التالي:

 a    |  b  |  a.divmod(b)  |   a/b   | a.modulo(b) | a.remainder(b)
------+-----+---------------+---------+-------------+---------------
 13   |  4  |   3,    1     |   3     |    1        |     1
------+-----+---------------+---------+-------------+---------------
 13   | -4  |  -4,   -3     |  -4     |   -3        |     1
------+-----+---------------+---------+-------------+---------------
-13   |  4  |  -4,    3     |  -4     |    3        |    -1
------+-----+---------------+---------+-------------+---------------
-13   | -4  |   3,   -1     |   3     |   -1        |    -1
------+-----+---------------+---------+-------------+---------------
 11.5 |  4  |   2,    3.5   |   2.875 |    3.5      |     3.5
------+-----+---------------+---------+-------------+---------------
 11.5 | -4  |  -3,   -0.5   |  -2.875 |   -0.5      |     3.5
------+-----+---------------+---------+-------------+---------------
-11.5 |  4  |  -3,    0.5   |  -2.875 |    0.5      |    -3.5
------+-----+---------------+---------+-------------+---------------
-11.5 | -4  |   2,   -3.5   |   2.875 |   -3.5      |    -3.5

المعاملات

numeric‎

عدد يمثِّل المقسوم عليه.

القيمة المعادة

تعاد مصفوفة تحتوي على حاصل (quotient) وباقي قسمة العدد المعطى على العدد numeric.

أمثلة

مثال على استخدام التابع divmod‎:

11.divmod(3)        #=> [3, 2]
11.divmod(-3)       #=> [-4, -1]
11.divmod(3.5)      #=> [3, 0.5]
(-11).divmod(3.5)   #=> [-4, 3.0]
11.5.divmod(3.5)    #=> [3, 1.0]

انظر أيضا

  • التابع div: يستخدم المعامل / لإجراء عملية القسمة على عددين ثم يحوّل النتيجة إلى عدد صحيح.

مصادر