الفرق بين المراجعتين لصفحة: «Ruby/Rational»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
(مراجعتان متوسطتان بواسطة مستخدمين اثنين آخرين غير معروضتين) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: | <noinclude>{{DISPLAYTITLE:الصنف <code>Rational</code> في روبي}}</noinclude> | ||
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Ruby Class]] | |||
[[تصنيف: Ruby Rational]] | [[تصنيف: Ruby Rational]] | ||
يمكن تمثيل عدد جذري (rational) كزوج من الأعداد الصحيحة | يمكن تمثيل عدد جذري (rational) كزوج من الأعداد الصحيحة بالشكل a / b حيث b > 0؛ العدد a يمثل البسط، والعدد b يمثل المقام. من الناحية الرياضية، العدد الصحيح a يساوي العدد الجذري a / 1. | ||
في روبي، يمكنك إنشاء الكائنات (الأعداد) الجذرية باستخدام التوابع <code>[[Ruby/Kernel/Rational|Kernel | في روبي، يمكنك إنشاء الكائنات (الأعداد) الجذرية باستخدام التوابع <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> الأعداد الجذرية هي أعداد | 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> | ||
==توابع | ==توابع النسخة العامة== | ||
===[[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 | | ===[[Ruby/Rational/abs |<code>abs</code>]]=== | ||
يعيد | يعيد القيمة المطلقة للعدد الجذري الذي استدعي معه. | ||
===[[Ruby/Rational/ceil | | ===[[Ruby/Rational/ceil |<code>ceil</code>]]=== | ||
يعيد | يعيد أصغر عدد من الأعداد الأكبر من أو تساوي العدد الجذري الذي استُدعي معه وفق دقة محدَّدة للمنازل العشرية بعد الفاصلة. | ||
===[[Ruby/Rational/denominator | | ===[[Ruby/Rational/denominator |<code>denominator</code>]]=== | ||
يعيد | يعيد المقام للعدد الجذري الذي استدعي معه ويكون دائمًا موجبًا. | ||
===[[Ruby/Rational/fdiv | | ===[[Ruby/Rational/fdiv |<code>fdiv</code>]]=== | ||
ينفّذ | ينفّذ عملية القسمة، ويعيد القيمة كعدد عشري. | ||
===[[Ruby/Rational/floor | | ===[[Ruby/Rational/floor |<code>floor</code>]]=== | ||
يعيد | يعيد أكبر عدد من الأعداد الأصغر من أو تساوي العدد الجذري الذي استُدعي معه مع دقة محدَّدة للمنازل العشرية. | ||
===[[Ruby/Rational/inspect | | ===[[Ruby/Rational/inspect |<code>inspect</code>]]=== | ||
يُعيد | يُعيد العدد الجذري الذي استدعي معه كسلسلة نصية. | ||
===[[Ruby/Rational/magnitude | | ===[[Ruby/Rational/magnitude |<code>magnitude</code>]]=== | ||
يعيد | يعيد القيمة المطلقة للعدد الجذري الذي استدعي معه. | ||
===[[Ruby/Rational/negative-3F | | ===[[Ruby/Rational/negative-3F |<code>negative?</code>]]=== | ||
يتحقق إن كان العدد الجذري الذي استدعي معه أصغر من 0. | |||
===[[Ruby/Rational/numerator | | ===[[Ruby/Rational/numerator |<code>numerator</code>]]=== | ||
يعيد | يعيد البسط للعدد الجذري الذي استدعي معه. | ||
===[[Ruby/Rational/positive-3F | | ===[[Ruby/Rational/positive-3F |<code>positive?</code>]]=== | ||
يتحقق إن كان العدد الجذري الذي استدعي معه أكبر من 0. | |||
===[[Ruby/Rational/quo | | ===[[Ruby/Rational/quo |<code>quo</code>]]=== | ||
ينفذ | ينفذ عملية القسمة. | ||
===[[Ruby/Rational/rationalize | | ===[[Ruby/Rational/rationalize |<code>rationalize</code>]]=== | ||
يُعيد | يُعيد تقريبًا مبسطًا لقيمة العدد الجذري الذي استُدعي معه في حال تمرير الوسيط الاختياري إليه، أو يعيد العدد الجذري نفسه إن لم يمُرَّر إليه أي شيء. | ||
===[[Ruby/Rational/round | | ===[[Ruby/Rational/round |<code>round</code>]]=== | ||
يقرِّب العدد الجذري الذي استُدعي معه إلى أقرب قيمة مع دقة محدَّدة للمنازل العشرية. | |||
===[[Ruby/Rational/to_f | | ===[[Ruby/Rational/to_f |<code>to_f</code>]]=== | ||
يحول العدد الجذري الذي استدعي معه إلى عدد عشري. | |||
===[[Ruby/Rational/to_i | | ===[[Ruby/Rational/to_i |<code>to_i</code>]]=== | ||
يحول العدد الجذري الذي استدعي معه إلى عدد صحيح. | |||
===[[Ruby/Rational/to_r | | ===[[Ruby/Rational/to_r |<code>to_r</code>]]=== | ||
يعيد | يعيد العدد الجذري الذي استدعي معه نفسه. | ||
===[[Ruby/Rational/to_s | | ===[[Ruby/Rational/to_s |<code>to_s</code>]]=== | ||
يحول العدد الجذري الذي استدعي معه إلى سلسلة نصية. | |||
===[[Ruby/Rational/truncate | | ===[[Ruby/Rational/truncate |<code>truncate</code>]]=== | ||
يقتطع العدد الجذري الذي استُدعي معه نحو الصفر بدقة محدَّدة للمنازل العشرية. | |||
*[http://ruby-doc.org/core-2.5.1/Rational.html | |||
== مصادر == | |||
*[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
يقتطع العدد الجذري الذي استُدعي معه نحو الصفر بدقة محدَّدة للمنازل العشرية.