الفرق بين المراجعتين لصفحة: «Ruby/Rational»

من موسوعة حسوب
لا ملخص تعديل
طلا ملخص تعديل
 
(مراجعتان متوسطتان بواسطة مستخدمين اثنين آخرين غير معروضتين)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: صفحة الصنف <code>Rational</code> في روبي}}</noinclude>
<noinclude>{{DISPLAYTITLE:الصنف <code>Rational</code> في روبي}}</noinclude>
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: Ruby Class]]
[[تصنيف: Ruby Rational]]
[[تصنيف: Ruby Rational]]
يمكن تمثيل عدد جذري (rational) كزوج من الأعداد الصحيحة: a / b‎ حيث (b> 0). العدد a يمثل البسط، والعدد b يمثل المقام. من الناحية الرياضية، العدد الصحيح a يساوي العدد الجذري a / 1.  
يمكن تمثيل عدد جذري (rational) كزوج من الأعداد الصحيحة بالشكل a / b‎ حيث b > العدد 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)
في روبي، ​​يمكنك إنشاء الكائنات (الأعداد) الجذرية باستخدام التوابع <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)</syntaxhighlight> يمكنك أيضًا إنشاء الكائنات الجذرية من الأعدد العشرية (floating-point numbers) أو من السلاسل النصية. <syntaxhighlight lang="ruby">Rational(0.3)    #=> (5404319552844595/18014398509481984)
2/3r            #=> (2/3)</syntaxhighlight> يمكنك أيضًا إنشاء الكائنات الجذرية من [[Ruby/Float|الأعدد العشرية]] (floating-point numbers) أو من [[Ruby/String|السلاسل النصية]]. <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)
سطر 14: سطر 15:
'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)</syntaxhighlight> الأعداد الجذرية هي أعداد مضبوطة، والتي تساعد على كتابة البرامج بدون أخطاء التقريب. <syntaxhighlight lang="ruby">10.times.inject(0) {|t| t + 0.1 }              #=> 0.9999999999999999
0.3.rationalize  #=> (3/10)</syntaxhighlight> الأعداد الجذرية هي أعداد مضبوطة (exact numbers)، والتي تساعد على كتابة البرامج بدون أخطاء التقريب. <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> لكن عندما يتضمن التعبير قيمة غير مضبوطة (قيمة عددية أو عملية)، فسينتج نتيجة غير مضبوطة (inexact result). <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)</syntaxhighlight>  
                   #=> (1.0000000000000002+1.7320508075688772i)</syntaxhighlight>  


==توابع الصنف العامة (Public Class Methods)==
==توابع النسخة العامة==
===[[Ruby/Rational/multiplication_operator | التابع *]]===
===[[Ruby/Rational/multiplication_operator |<code>*</code>]]===
ينفذ عملية الضرب.
ينفذ عملية الضرب.
===[[Ruby/Rational/exp_operator | التابع **]]===
===[[Ruby/Rational/exp_operator |<code>**</code>]]===
ينجز  عملية الأس.
يرفع عدد جذري (يمثِّل الأساس) إلى قوة عدد محدَّد (يمثِّل الأس).
===[[Ruby/Rational/plus_operator | التابع +]]===
===[[Ruby/Rational/plus_operator |<code>+</code>]]===
ينفذ عملية الإضافة.
ينفذ عملية الإضافة.
===[[Ruby/Rational/minus_operator | التابع -]]===
===[[Ruby/Rational/minus_operator |<code>-</code>]]===
ينفذ عملية الطرح.
ينفذ عملية الطرح.
===[[Ruby/Rational/unary_Minus | التابع -]]===
===[[Ruby/Rational/unary_Minus |<code>-</code>]]===
يعيد نفي العدد.
يعيد عند استدعائه بالشكل <code>rat-</code> نفي العدد الجذري <code>rat</code>.
===[[Ruby/Rational/divsion_operator | التابع /]]===
===[[Ruby/Rational/divsion_operator |<code>/</code>]]===
ينفذ عملية القسمة.
ينفذ عملية القسمة.
===[[Ruby/Rational/compar_operator | التابع <=>]]===
===[[Ruby/Rational/compar_operator |<code><=></code>]]===
معامل المقارنة.
يوازن بين عدد جذري وعدد آخر ثم يعيد القيم <code>1-</code> أو <code>0</code> أو <code>1</code> بناءً على ما إن كان العدد الجذري الواع على يساره أصغر من أو يساوي أو أكبر من العدد الآخر.
===[[Ruby/Rational/equality_operator | التابع ==]]===
===[[Ruby/Rational/equality_operator |<code>==</code>]]===
معامل التساوي.
يتحقق من تساوي عدد جذري مع عدد آخر.
===[[Ruby/Rational/abs | التابع abs]]===
===[[Ruby/Rational/abs |<code>abs</code>]]===
يعيد القيمة المطلقة للعدد.
يعيد القيمة المطلقة للعدد الجذري الذي استدعي معه.
===[[Ruby/Rational/ceil | التابع ceil]]===
===[[Ruby/Rational/ceil |<code>ceil</code>]]===
يعيد أصغر عدد من الأعداد الأكبر من أو تساوي العدد.
يعيد أصغر عدد من الأعداد الأكبر من أو تساوي العدد الجذري الذي استُدعي معه وفق دقة محدَّدة للمنازل العشرية بعد الفاصلة.
===[[Ruby/Rational/denominator | التابع denominator]]===
===[[Ruby/Rational/denominator |<code>denominator</code>]]===
يعيد المقام (denominator)، ويكون دائمًا موجبًا.
يعيد المقام للعدد الجذري الذي استدعي معه ويكون دائمًا موجبًا.
===[[Ruby/Rational/fdiv | التابع fdiv]]===
===[[Ruby/Rational/fdiv |<code>fdiv</code>]]===
ينفّذ عملية القسمة، ويعيد القيمة كعدد عشري (<code>[[Ruby/Float|Float]]</code>).
ينفّذ عملية القسمة، ويعيد القيمة كعدد عشري.
===[[Ruby/Rational/floor | التابع floor]]===
===[[Ruby/Rational/floor |<code>floor</code>]]===
يعيد أكبر عدد من الأعداد الأصغر من أو تساوي العدد.
يعيد أكبر عدد من الأعداد الأصغر من أو تساوي العدد الجذري الذي استُدعي معه مع دقة محدَّدة للمنازل العشرية.
===[[Ruby/Rational/inspect | التابع inspect]]===
===[[Ruby/Rational/inspect |<code>inspect</code>]]===
يُعيد العدد كسلسلة نصية.
يُعيد العدد الجذري الذي استدعي معه كسلسلة نصية.
===[[Ruby/Rational/magnitude | التابع magnitude]]===
===[[Ruby/Rational/magnitude |<code>magnitude</code>]]===
يعيد القيمة المطلقة للعدد.
يعيد القيمة المطلقة للعدد الجذري الذي استدعي معه.
===[[Ruby/Rational/negative-3F | التابع negative?‎]]===
===[[Ruby/Rational/negative-3F |<code>negative?‎</code>]]===
يعيد  <code>true</code> إن كان العدد أصغر من 0.
يتحقق إن كان العدد الجذري الذي استدعي معه أصغر من 0.
===[[Ruby/Rational/numerator | التابع numerator]]===
===[[Ruby/Rational/numerator |<code>numerator</code>]]===
يعيد البسط (numerator).
يعيد البسط للعدد الجذري الذي استدعي معه.
===[[Ruby/Rational/positive-3F | التابع positive?‎]]===
===[[Ruby/Rational/positive-3F |<code>positive?‎</code>]]===
يعيد  القيمة <code>true</code> إن كان العدد أكبر من 0.
يتحقق إن كان العدد الجذري الذي استدعي معه أكبر من 0.
===[[Ruby/Rational/quo | التابع quo]]===
===[[Ruby/Rational/quo |<code>quo</code>]]===
ينفذ عملية القسمة.
ينفذ عملية القسمة.
===[[Ruby/Rational/rationalize | التابع rationalize]]===
===[[Ruby/Rational/rationalize |<code>rationalize</code>]]===
يُعيد تقريبًا مبسطًا لقيمة العدد.
يُعيد تقريبًا مبسطًا لقيمة العدد الجذري الذي استُدعي معه في حال تمرير الوسيط الاختياري إليه، أو يعيد العدد الجذري نفسه إن لم يمُرَّر إليه أي شيء.
===[[Ruby/Rational/round | التابع round]]===
===[[Ruby/Rational/round |<code>round</code>]]===
يعيد  العدد   مُقرّبًا إلى أقرب قيمة مع دقة <code>ndigits</code> منزلًا عشريًا.
يقرِّب العدد الجذري الذي استُدعي معه إلى أقرب قيمة مع دقة محدَّدة للمنازل العشرية.
===[[Ruby/Rational/to_f | التابع to_f]]===
===[[Ruby/Rational/to_f |<code>to_f</code>]]===
يُعيد  القيمة على هيئة <code>[[Ruby/Float|Float]]</code>.
يحول العدد الجذري الذي استدعي معه إلى عدد عشري.
===[[Ruby/Rational/to_i | التابع to_i]]===
===[[Ruby/Rational/to_i |<code>to_i</code>]]===
يُعيد  القيمة مُقتطعة على هيئة عدد صحيح.
يحول العدد الجذري الذي استدعي معه إلى عدد صحيح.
===[[Ruby/Rational/to_r | التابع to_r]]===
===[[Ruby/Rational/to_r |<code>to_r</code>]]===
يعيد العدد نفسه.
يعيد العدد الجذري الذي استدعي معه نفسه.
===[[Ruby/Rational/to_s | التابع to_s]]===
===[[Ruby/Rational/to_s |<code>to_s</code>]]===
يُعيد  القيمة على هيئة سلسلة نصية.
يحول العدد الجذري الذي استدعي معه إلى سلسلة نصية.
===[[Ruby/Rational/truncate | التابع truncate]]===
===[[Ruby/Rational/truncate |<code>truncate</code>]]===
يعيد  العدد مُقتطعًا (نحو الصفر) بدقة <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 في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 11:27، 3 ديسمبر 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)

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

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

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

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

توابع النسخة العامة

*

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

**

يرفع عدد جذري (يمثِّل الأساس) إلى قوة عدد محدَّد (يمثِّل الأس).

+

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

-

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

-

يعيد عند استدعائه بالشكل rat- نفي العدد الجذري rat.

/

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

<=>

يوازن بين عدد جذري وعدد آخر ثم يعيد القيم 1- أو 0 أو 1 بناءً على ما إن كان العدد الجذري الواع على يساره أصغر من أو يساوي أو أكبر من العدد الآخر.

==

يتحقق من تساوي عدد جذري مع عدد آخر.

abs

يعيد القيمة المطلقة للعدد الجذري الذي استدعي معه.

ceil

يعيد أصغر عدد من الأعداد الأكبر من أو تساوي العدد الجذري الذي استُدعي معه وفق دقة محدَّدة للمنازل العشرية بعد الفاصلة.

denominator

يعيد المقام للعدد الجذري الذي استدعي معه ويكون دائمًا موجبًا.

fdiv

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

floor

يعيد أكبر عدد من الأعداد الأصغر من أو تساوي العدد الجذري الذي استُدعي معه مع دقة محدَّدة للمنازل العشرية.

inspect

يُعيد العدد الجذري الذي استدعي معه كسلسلة نصية.

magnitude

يعيد القيمة المطلقة للعدد الجذري الذي استدعي معه.

negative?‎

يتحقق إن كان العدد الجذري الذي استدعي معه أصغر من 0.

numerator

يعيد البسط للعدد الجذري الذي استدعي معه.

positive?‎

يتحقق إن كان العدد الجذري الذي استدعي معه أكبر من 0.

quo

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

rationalize

يُعيد تقريبًا مبسطًا لقيمة العدد الجذري الذي استُدعي معه في حال تمرير الوسيط الاختياري إليه، أو يعيد العدد الجذري نفسه إن لم يمُرَّر إليه أي شيء.

round

يقرِّب العدد الجذري الذي استُدعي معه إلى أقرب قيمة مع دقة محدَّدة للمنازل العشرية.

to_f

يحول العدد الجذري الذي استدعي معه إلى عدد عشري.

to_i

يحول العدد الجذري الذي استدعي معه إلى عدد صحيح.

to_r

يعيد العدد الجذري الذي استدعي معه نفسه.

to_s

يحول العدد الجذري الذي استدعي معه إلى سلسلة نصية.

truncate

يقتطع العدد الجذري الذي استُدعي معه نحو الصفر بدقة محدَّدة للمنازل العشرية.

مصادر