الفرق بين المراجعتين ل"Ruby/Rational"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: صفحة الصنف <code>Rational</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Rational يمكن تمثيل...')
 
سطر 2: سطر 2:
 
[[تصنيف: Ruby]]
 
[[تصنيف: Ruby]]
 
[[تصنيف: Ruby Rational]]
 
[[تصنيف: Ruby Rational]]
يمكن تمثيل عدد جذري (rational) كزوج من الأعداد الصحيحة: a / b (b> 0) ، حيث a يمثل البسط، و b يمثل المقام. عدد صحيح a <code>[[Ruby/Integer|Integer]]</code> يساوي العدد الجذري a / 1 رياضيًا. في روبي، ​​يمكنك إنشاء الكائنات الجذرية باستخدام التوابع Kernel # Rational أو <code>[[Ruby/Rational/to_r|#to_r]]</code> أو rationalize، أو عن طريق إضافة <code>r</code> إلى حرف. ستكون القيمة المعادة كسورًا غير قابلة للاختزال (irreducible fractions). <syntaxhighlight lang="ruby">Rational(1)      #=> (1/1)
+
يمكن تمثيل عدد جذري (rational) كزوج من الأعداد الصحيحة: a / b‎ حيث  (b> 0). العدد a يمثل البسط، والعدد b يمثل المقام. من الناحية الرياضية،  العدد الصحيح a يساوي العدد الجذري a / 1.  
 +
 
 +
في روبي، ​​يمكنك إنشاء الكائنات (الأعداد) الجذرية باستخدام التوابع <code>[[Ruby/Kernel/Rational|Kernel#Rational]]</code> أو <code>[[Ruby/Rational/to_r|to_r]]</code> أو <code>[[Ruby/Rational/rationalize|rationalize]]</code>، أو عن طريق إضافة <code>r</code> إلى رقم. ستكون القيم المعادة كسورًا غير قابلة للاختزال (irreducible fractions). <syntaxhighlight lang="ruby">Rational(1)      #=> (1/1)
 
Rational(2, 3)  #=> (2/3)
 
Rational(2, 3)  #=> (2/3)
 
Rational(4, -6)  #=> (-2/3)
 
Rational(4, -6)  #=> (-2/3)
 
3.to_r          #=> (3/1)
 
3.to_r          #=> (3/1)
2/3r            #=> (2/3)
+
2/3r            #=> (2/3)</syntaxhighlight> يمكنك أيضًا إنشاء الكائنات الجذرية من الأعدد العشرية (floating-point numbers) أو من السلاسل النصية. <syntaxhighlight lang="ruby">Rational(0.3)    #=> (5404319552844595/18014398509481984)
</syntaxhighlight> يمكنك أيضًا إنشاء الكائنات الجذرية من الأعدد العشرية (floating-point numbers) أو من السلاسل النصية. <syntaxhighlight lang="ruby">Rational(0.3)    #=> (5404319552844595/18014398509481984)
 
 
Rational('0.3')  #=> (3/10)
 
Rational('0.3')  #=> (3/10)
 
Rational('2/3')  #=> (2/3)
 
Rational('2/3')  #=> (2/3)
سطر 13: سطر 14:
 
'0.3'.to_r      #=> (3/10)
 
'0.3'.to_r      #=> (3/10)
 
'2/3'.to_r      #=> (2/3)
 
'2/3'.to_r      #=> (2/3)
0.3.rationalize  #=> (3/10)
+
0.3.rationalize  #=> (3/10)</syntaxhighlight> الأعداد الجذرية هي أعداد مضبوطة، والتي تساعد على كتابة البرامج بدون أخطاء التقريب. <syntaxhighlight lang="ruby">10.times.inject(0) {|t| t + 0.1 }              #=> 0.9999999999999999
</syntaxhighlight> الكائن (الأعداد) الجذرية هي أعداد مضبوطة، والتي تساعد على كتابة برامج بدون أخطاء التقريب. <syntaxhighlight lang="ruby">10.times.inject(0) {|t| t + 0.1 }              #=> 0.9999999999999999
+
10.times.inject(0) {|t| t + Rational('0.1') }  #=> (1/1)</syntaxhighlight> لكن عندما يتضمن التعبير قيمة غير مضبوطة (قيمة عددية أو عملية)، فسينتج نتيجة غير مضبوطة. <syntaxhighlight lang="ruby">Rational(10) / 3  #=> (10/3)
10.times.inject(0) {|t| t + Rational('0.1') }  #=> (1/1)
 
</syntaxhighlight> ومع ذلك ، عندما يتضمن تعبير قيمة غير مضبوطة (قيمة عددية أو عملية) ، فسينتج نتيجة غير مضبوطة. <syntaxhighlight lang="ruby">Rational(10) / 3  #=> (10/3)
 
 
Rational(10) / 3.0 #=> 3.3333333333333335
 
Rational(10) / 3.0 #=> 3.3333333333333335
 
Rational(-8) ** Rational(1, 3)
 
Rational(-8) ** Rational(1, 3)
                   #=> (1.0000000000000002+1.7320508075688772i)
+
                   #=> (1.0000000000000002+1.7320508075688772i)</syntaxhighlight>  
</syntaxhighlight>  
 
  
 
==توابع الصنف العامة (Public Class Methods)==
 
==توابع الصنف العامة (Public Class Methods)==
سطر 32: سطر 30:
 
ينفذ  عملية الطرح.
 
ينفذ  عملية الطرح.
 
===[[Ruby/Rational/unary_Minus | التابع -]]===
 
===[[Ruby/Rational/unary_Minus | التابع -]]===
يعيد  نفي <code>rat</code>.
+
يعيد  نفي العدد.
 
===[[Ruby/Rational/divsion_operator | التابع /]]===
 
===[[Ruby/Rational/divsion_operator | التابع /]]===
 
ينفذ  عملية القسمة.
 
ينفذ  عملية القسمة.
 
===[[Ruby/Rational/compar_operator | التابع <=>]]===
 
===[[Ruby/Rational/compar_operator | التابع <=>]]===
يُعيد  القيم 1- أو 0 أو 1 بناءً على ما إن كان <code>rational</code> أصغر من أو يساوي أو أكبر من <code>numeric</code>.
+
معامل المقارنة.
 
===[[Ruby/Rational/equality_operator | التابع ==]]===
 
===[[Ruby/Rational/equality_operator | التابع ==]]===
يُعيد  القيمة <code>true</code> إن كان <code>rat</code> يساوي <code>object</code> عدديًا.
+
معامل التساوي.
 
===[[Ruby/Rational/abs | التابع abs]]===
 
===[[Ruby/Rational/abs | التابع abs]]===
يعيد  القيمة المطلقة لـ <code>rat</code>.
+
يعيد  القيمة المطلقة للعدد.
 
===[[Ruby/Rational/ceil | التابع ceil]]===
 
===[[Ruby/Rational/ceil | التابع ceil]]===
يعيد  أصغر عدد من الأعداد الأكبر من أو تساوي <code>rat</code>  وفق دقة <code>ndigits</code> موضعا عشريًا (القيمة الافتراضية هي 0).
+
يعيد  أصغر عدد من الأعداد الأكبر من أو تساوي العدد.
 
===[[Ruby/Rational/denominator | التابع denominator]]===
 
===[[Ruby/Rational/denominator | التابع denominator]]===
 
يعيد  المقام (denominator)، ويكون دائمًا موجبًا.
 
يعيد  المقام (denominator)، ويكون دائمًا موجبًا.
سطر 48: سطر 46:
 
ينفّذ  عملية القسمة، ويعيد القيمة كعدد عشري (<code>[[Ruby/Float|Float]]</code>).
 
ينفّذ  عملية القسمة، ويعيد القيمة كعدد عشري (<code>[[Ruby/Float|Float]]</code>).
 
===[[Ruby/Rational/floor | التابع floor]]===
 
===[[Ruby/Rational/floor | التابع floor]]===
يعيد  أكبر عدد من الأعداد الأصغر من أو تساوي <code>rat</code>  مع دقة <code>ndigits</code> منزلًا عشريًا (القيمة الافتراضية هي 0).
+
يعيد  أكبر عدد من الأعداد الأصغر من أو تساوي العدد.
 
===[[Ruby/Rational/inspect | التابع inspect]]===
 
===[[Ruby/Rational/inspect | التابع inspect]]===
 
يُعيد  العدد كسلسلة نصية.
 
يُعيد  العدد كسلسلة نصية.
 
===[[Ruby/Rational/magnitude | التابع magnitude]]===
 
===[[Ruby/Rational/magnitude | التابع magnitude]]===
يعيد  القيمة المطلقة لـ <code>rat</code>.
+
يعيد  القيمة المطلقة للعدد.
 
===[[Ruby/Rational/negative-3F | التابع negative?‎]]===
 
===[[Ruby/Rational/negative-3F | التابع negative?‎]]===
يعيد  <code>true</code> إن كان <code>rat</code> أصغر من 0.
+
يعيد  <code>true</code> إن كان العدد أصغر من 0.
 
===[[Ruby/Rational/numerator | التابع numerator]]===
 
===[[Ruby/Rational/numerator | التابع numerator]]===
 
يعيد  البسط (numerator).
 
يعيد  البسط (numerator).
 
===[[Ruby/Rational/positive-3F | التابع positive?‎]]===
 
===[[Ruby/Rational/positive-3F | التابع positive?‎]]===
يعيد  القيمة <code>true</code> إن كان <code>rat</code> أكبر من 0.
+
يعيد  القيمة <code>true</code> إن كان العدد أكبر من 0.
 
===[[Ruby/Rational/quo | التابع quo]]===
 
===[[Ruby/Rational/quo | التابع quo]]===
 
ينفذ  عملية القسمة.
 
ينفذ  عملية القسمة.
 
===[[Ruby/Rational/rationalize | التابع rationalize]]===
 
===[[Ruby/Rational/rationalize | التابع rationalize]]===
يُعيد  تقريبًا مبسطًا لقيمة العدد في حال إعطاء الوسيط الاختياري <code>eps</code> (النتيجة ستحقق المتراجحة)، وبخلاف ذلك سيعيد العدد نفسه.
+
يُعيد  تقريبًا مبسطًا لقيمة العدد.
 
===[[Ruby/Rational/round | التابع round]]===
 
===[[Ruby/Rational/round | التابع round]]===
يعيد  العدد <code>rat</code> مُقرّبًا إلى أقرب قيمة مع دقة <code>ndigits</code> منزلًا عشريًا (القيمة الافتراضية هي 0).
+
يعيد  العدد   مُقرّبًا إلى أقرب قيمة مع دقة <code>ndigits</code> منزلًا عشريًا.
 
===[[Ruby/Rational/to_f | التابع to_f]]===
 
===[[Ruby/Rational/to_f | التابع to_f]]===
 
يُعيد  القيمة على هيئة <code>[[Ruby/Float|Float]]</code>.
 
يُعيد  القيمة على هيئة <code>[[Ruby/Float|Float]]</code>.
سطر 70: سطر 68:
 
يُعيد  القيمة مُقتطعة على هيئة عدد صحيح.
 
يُعيد  القيمة مُقتطعة على هيئة عدد صحيح.
 
===[[Ruby/Rational/to_r | التابع to_r]]===
 
===[[Ruby/Rational/to_r | التابع to_r]]===
يعيد  الكائن  self.
+
يعيد  العدد نفسه.
 
===[[Ruby/Rational/to_s | التابع to_s]]===
 
===[[Ruby/Rational/to_s | التابع to_s]]===
 
يُعيد  القيمة على هيئة سلسلة نصية.
 
يُعيد  القيمة على هيئة سلسلة نصية.
 
===[[Ruby/Rational/truncate | التابع truncate]]===
 
===[[Ruby/Rational/truncate | التابع truncate]]===
يعيد  العدد  <code>rat</code> مُقتطعًا (نحو الصفر) بدقة <code>ndigits</code>  منزلًا عشريًا (القيمة الافتراضية هي 0).
+
يعيد  العدد  مُقتطعًا (نحو الصفر) بدقة <code>ndigits</code>  منزلًا عشريًا.
 
*[http://ruby-doc.org/core-2.5.1/Rational.html قسم  الصنف Rational في توثيق روبي الرسمي.]
 
*[http://ruby-doc.org/core-2.5.1/Rational.html قسم  الصنف Rational في توثيق روبي الرسمي.]

مراجعة 23:19، 30 أكتوبر 2018

يمكن تمثيل عدد جذري (rational) كزوج من الأعداد الصحيحة: a / b‎ حيث (b> 0). العدد a يمثل البسط، والعدد b يمثل المقام. من الناحية الرياضية، العدد الصحيح a يساوي العدد الجذري 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)

التابع *

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

التابع **

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

التابع +

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

التابع -

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

التابع -

يعيد نفي العدد.

التابع /

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

التابع <=>

معامل المقارنة.

التابع ==

معامل التساوي.

التابع abs

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

التابع ceil

يعيد أصغر عدد من الأعداد الأكبر من أو تساوي العدد.

التابع denominator

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

التابع fdiv

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

التابع floor

يعيد أكبر عدد من الأعداد الأصغر من أو تساوي العدد.

التابع inspect

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

التابع magnitude

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

التابع negative?‎

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

التابع numerator

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

التابع positive?‎

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

التابع quo

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

التابع rationalize

يُعيد تقريبًا مبسطًا لقيمة العدد.

التابع round

يعيد العدد مُقرّبًا إلى أقرب قيمة مع دقة ndigits منزلًا عشريًا.

التابع to_f

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

التابع to_i

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

التابع to_r

يعيد العدد نفسه.

التابع to_s

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

التابع truncate

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