صفحة الصنف Rational في روبي

من موسوعة حسوب
< Ruby
مراجعة 23:09، 30 أكتوبر 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: صفحة الصنف <code>Rational</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Rational يمكن تمثيل...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

يمكن تمثيل عدد جذري (rational) كزوج من الأعداد الصحيحة: a / b (b> 0) ، حيث a يمثل البسط، و b يمثل المقام. عدد صحيح a Integer يساوي العدد الجذري a / 1 رياضيًا. في روبي، ​​يمكنك إنشاء الكائنات الجذرية باستخدام التوابع Kernel # Rational أو #to_r أو rationalize، أو عن طريق إضافة r إلى حرف. ستكون القيمة المعادة كسورًا غير قابلة للاختزال (irreducible fractions).

Rational(1)      #=> (1/1)
Rational(2, 3)   #=> (2/3)
Rational(4, -6)  #=> (-2/3)
3.to_r           #=> (3/1)
2/3r             #=> (2/3)

يمكنك أيضًا إنشاء الكائنات الجذرية من الأعدد العشرية (floating-point numbers) أو من السلاسل النصية.

Rational(0.3)    #=> (5404319552844595/18014398509481984)
Rational('0.3')  #=> (3/10)
Rational('2/3')  #=> (2/3)
0.3.to_r         #=> (5404319552844595/18014398509481984)
'0.3'.to_r       #=> (3/10)
'2/3'.to_r       #=> (2/3)
0.3.rationalize  #=> (3/10)

الكائن (الأعداد) الجذرية هي أعداد مضبوطة، والتي تساعد على كتابة برامج بدون أخطاء التقريب.

10.times.inject(0) {|t| t + 0.1 }              #=> 0.9999999999999999
10.times.inject(0) {|t| t + Rational('0.1') }  #=> (1/1)

ومع ذلك ، عندما يتضمن تعبير قيمة غير مضبوطة (قيمة عددية أو عملية) ، فسينتج نتيجة غير مضبوطة.

Rational(10) / 3   #=> (10/3)
Rational(10) / 3.0 #=> 3.3333333333333335
Rational(-8) ** Rational(1, 3)
                   #=> (1.0000000000000002+1.7320508075688772i)

توابع الصنف العامة (Public Class Methods)

التابع *

ينفذ عملية الضرب.

التابع **

ينجز عملية الأس.

التابع +

ينفذ عملية الإضافة.

التابع -

ينفذ عملية الطرح.

التابع -

يعيد نفي rat.

التابع /

ينفذ عملية القسمة.

التابع <=>

يُعيد القيم 1- أو 0 أو 1 بناءً على ما إن كان rational أصغر من أو يساوي أو أكبر من numeric.

التابع ==

يُعيد القيمة true إن كان rat يساوي object عدديًا.

التابع abs

يعيد القيمة المطلقة لـ rat.

التابع ceil

يعيد أصغر عدد من الأعداد الأكبر من أو تساوي rat وفق دقة ndigits موضعا عشريًا (القيمة الافتراضية هي 0).

التابع denominator

يعيد المقام (denominator)، ويكون دائمًا موجبًا.

التابع fdiv

ينفّذ عملية القسمة، ويعيد القيمة كعدد عشري (Float).

التابع floor

يعيد أكبر عدد من الأعداد الأصغر من أو تساوي rat مع دقة ndigits منزلًا عشريًا (القيمة الافتراضية هي 0).

التابع inspect

يُعيد العدد كسلسلة نصية.

التابع magnitude

يعيد القيمة المطلقة لـ rat.

التابع negative?‎

يعيد true إن كان rat أصغر من 0.

التابع numerator

يعيد البسط (numerator).

التابع positive?‎

يعيد القيمة true إن كان rat أكبر من 0.

التابع quo

ينفذ عملية القسمة.

التابع rationalize

يُعيد تقريبًا مبسطًا لقيمة العدد في حال إعطاء الوسيط الاختياري eps (النتيجة ستحقق المتراجحة)، وبخلاف ذلك سيعيد العدد نفسه.

التابع round

يعيد العدد rat مُقرّبًا إلى أقرب قيمة مع دقة ndigits منزلًا عشريًا (القيمة الافتراضية هي 0).

التابع to_f

يُعيد القيمة على هيئة Float.

التابع to_i

يُعيد القيمة مُقتطعة على هيئة عدد صحيح.

التابع to_r

يعيد الكائن self.

التابع to_s

يُعيد القيمة على هيئة سلسلة نصية.

التابع truncate

يعيد العدد rat مُقتطعًا (نحو الصفر) بدقة ndigits منزلًا عشريًا (القيمة الافتراضية هي 0).