الفرق بين المراجعتين لصفحة: «Ruby/Complex»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
(4 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الصنف<code>Complex</code> في روبي}}</noinclude> | <noinclude>{{DISPLAYTITLE:الصنف <code>Complex</code> في روبي}}</noinclude> | ||
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Ruby Class]] | |||
[[تصنيف: Ruby Complex]] | [[تصنيف: Ruby Complex]] | ||
يمكن تمثيل الأعداد العقدية (تُسمّى أيضًا أعدادًا | يمكن تمثيل الأعداد العقدية (تُسمّى أيضًا أعدادًا مركبةً [complex number]) كزوج مكون من عدد حقيقي ووحدة تخلية (العدد <code>i</code>) وفق الشكل <code>a+bi</code>، إذ <code>a</code> هو الجزء الحقيقي، و <code>b</code> هو الجزء التخيلي و <code>i</code> هو الوحدة الخيالية. العدد الحقيقي <code>a</code> يساوي العدد العقدي <code>a+0i</code> حسابيًا. | ||
يمكن إنشاء الأعداد العقدية بطريقة حرفية، وأيضا باستخدام التوابع <code>Kernel.Complex</code> أو <code>::rect</code> أو :<code>:polar</code> أو <code>.to_c</code>. إليك الأمثلة التالية:<syntaxhighlight lang="ruby"> | |||
يمكن إنشاء الأعداد العقدية بطريقة حرفية، وأيضا باستخدام التوابع <code>Kernel | |||
2+1i #=> (2+1i) | 2+1i #=> (2+1i) | ||
Complex(1) #=> (1+0i) | Complex(1) #=> (1+0i) | ||
سطر 12: | سطر 11: | ||
Complex.polar(2, 3) #=> (-1.9799849932008908+0.2822400161197344i) | Complex.polar(2, 3) #=> (-1.9799849932008908+0.2822400161197344i) | ||
3.to_c #=> (3+0i) | 3.to_c #=> (3+0i) | ||
</syntaxhighlight>يمكنك أيضا إنشاء الكائنات العقدية من الأعداد | </syntaxhighlight>يمكنك أيضا إنشاء الكائنات العقدية من الأعداد العشرية أو من السلاسل النصية كما توضح الأمثلة التالية:<syntaxhighlight lang="ruby"> | ||
Complex(0.3) #=> (0.3+0i) | Complex(0.3) #=> (0.3+0i) | ||
Complex('0.3-0.5i') #=> (0.3-0.5i) | Complex('0.3-0.5i') #=> (0.3-0.5i) | ||
سطر 22: | سطر 21: | ||
'2/3+3/4i'.to_c #=> ((2/3)+(3/4)*i) | '2/3+3/4i'.to_c #=> ((2/3)+(3/4)*i) | ||
'1@2'.to_c #=> (-0.4161468365471424+0.9092974268256817i) | '1@2'.to_c #=> (-0.4161468365471424+0.9092974268256817i) | ||
</syntaxhighlight>تُصنّف الأعداد العقدية إلى مضبوطة (exact) | </syntaxhighlight>تُصنّف الأعداد العقدية إلى أعداد مضبوطة (exact) و غير مضبوطة (inexact):<syntaxhighlight lang="ruby"> | ||
Complex(1, 1) / 2 #=> ((1/2)+(1/2)*i) | Complex(1, 1) / 2 #=> ((1/2)+(1/2)*i) | ||
Complex(1, 1) / 2.0 #=> (0.5+0.5i) | Complex(1, 1) / 2.0 #=> (0.5+0.5i) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==الثوابت== | |||
===الثابت التخيلي <code rel="mw:WikiLink" title="Ruby/Complex/I" href="./Ruby/Complex/I">[[Ruby/Complex/I|I]]</code>=== | |||
يمثل العدد التخيلي للأعداد العقدية. | |||
==توابع الصنف العامة (Public Class Methods)== | |||
===[[Ruby/Complex/polar|<code>polar</code>]]=== | |||
يعيد عددا عقديًّا وفق الشكل القطبي (polar form). | |||
===[[Ruby/Complex/rect|<code>rect</code>]]=== | |||
يعيد عددًا عقديًا وفق الشكل الجبري أو المستطيلي (rectangular form). | |||
==توابع الكائن العامة (Public Instance Methods)== | |||
===[[Ruby/Complex/star|<code>*</code>]]=== | |||
يجري عملية الضرب على الأعداد العقدية. | |||
== | ===[[Ruby/Complex/exp|<code>**</code>]]=== | ||
يرفع عددًا عقديًّا إلى قوة عددٍ محدَّدٍ. | |||
===[[Ruby/Complex/plus|<code>+</code>]]=== | |||
يجري عملية الجمع على الأعداد العقدية. | |||
===[[Ruby/Complex/-|<code>-</code>]]=== | |||
يجري عملية الطرح بين عددين عقديين. | |||
===[[Ruby/Complex/negation|<code>-</code>]]=== | |||
يُستعمَل لنفي العدد العقدي (القيمة السالبة منه أن كان موجبًا). | |||
===[[Ruby/Complex/div|<code>/</code>]]=== | |||
يجري عملية القسمة على الأعداد العقدية. | |||
===[[Ruby/Complex/equality operator|<code>==</code>]]=== | |||
يتحقق من تساوي عددين عقديين. | |||
===[[Ruby/Complex/abs|<code>abs</code>]]=== | |||
يحسب الطويلة (r) للعدد العقدي بشكله القطبي الذي استدعي معه ثم يعيدها. | |||
===[[Ruby/Complex/abs2|<code>abs2</code>]]=== | |||
يعيد مربع الطويلة (r2) للعدد العقدي الذي استدعي معه. | |||
===[[Ruby/Complex/angle|<code>angle</code>]]=== | |||
يحسب الجزء الزاوي (الزاوية θ) للشكل القطبي من العدد العقدي الذي استدعي معه. | |||
===[[Ruby/Complex/arg|<code>arg</code>]]=== | |||
يعيد التابع arg الجزء الزاوي (الزاوية θ) للشكل القطبي من العدد العقدي الذي استدعي معه. | |||
===<code rel="mw:WikiLink" title="Ruby/Complex/arg" href="./Ruby/Complex/arg">[[Ruby/Complex/conj|conj]]</code>=== | |||
يعيد مرافق العدد العقدي الذي استدعي معه. | |||
===<code rel="mw:WikiLink" title="Ruby/Complex/arg" href="./Ruby/Complex/arg">[[Ruby/Complex/conjugate|conjugate]]</code>=== | |||
يعيد مرافق العدد العقدي الذي استدعي معه. | |||
===[[Ruby/Complex/denominator|<code>denominator</code>]]=== | |||
يعيد قاسم (denominator) العدد العقدي، أي القاسم المشترك الأصغر (LCM، اختصارٌ للعبارة lowest common multiple) للجزأين الحقيقي والتخيلي. | |||
===[[Ruby/Complex/fdiv|<code>fdiv</code>]]=== | |||
يجري عملية القسمة على العدد العقدي. | |||
===[[Ruby/Complex/finite|<code>finite?</code>]]=== | |||
يتحقق مما إذا كانت قيمة الطويلة (r) للشكل القطبي من العدد العقدي الذي استُدعي معه منتهية (finite). | |||
===[[Ruby/Complex/imag|<code>imag</code>]]=== | |||
يعيد الجزء التخيلي <nowiki/>[[Ruby/Complex|للعدد العقدي]] الذي استدعي معه. | |||
===[[Ruby/Complex/imaginary|<code>imaginary</code>]]=== | |||
يعيد الجزء التخيلي <nowiki/>[[Ruby/Complex|للعدد العقدي]] الذي استدعي معه. | |||
===[[Ruby/Complex/infinite|<code>infinite?</code>]]=== | |||
يعيد قيمةً تشير إذا كانت قيمة الطويلة (r) للشكل القطبي من العدد العقدي منتهية أو غير منتهية (infinite). | |||
=== | === [[Ruby/Complex/inspect|<code>inspect</code>]] === | ||
يعيد العدد العقدي على شكل سلسلة نصية لأجل فحصها (inspection). | |||
يعيد | |||
=== [[Ruby/Complex/magnitude|<code>magnitude</code>]] === | |||
يعيد التابع <code>magnitude</code> الجزء المطلق (absolute part) للشكل القطبي للعدد العقدي. | يعيد التابع <code>magnitude</code> الجزء المطلق (absolute part) للشكل القطبي للعدد العقدي. | ||
===[[Ruby/Complex/numerator|<code>'''numerator'''</code>]]=== | |||
يعيد التابع <code>numerator</code> بسط (numerator) العدد العقدي الكسري. | |||
===[[Ruby/Complex/phase|<code>phase</code>]]=== | |||
يعيد الجزء الزاوي (الزاوية θ) للشكل القطبي من العدد العقدي الذي استُدعي معه. | |||
===[[Ruby/Complex/quo|<code>quo</code>]]=== | |||
يجري عملية القسمة على الأعداد العقدية. | |||
===[[Ruby/Complex/rationalize|<code>rationalize</code>]]=== | |||
يعيد القيمة الجذرية (rational) المقابلة للعدد العقدي (ينبغي أن يكون الجزء التخيلي معدومًا). | |||
=== [[Ruby/Complex/ | === [[Ruby/Complex/real|<code>real</code>]] === | ||
يعيد | يعيد الجزء الحقيقي (real part) للعدد العقدي الذي استدعي معه. | ||
===[[Ruby/Complex/real-3F|<code>real?</code>]]=== | |||
=== [[Ruby/Complex/ | يعيد القيمة <code>false</code> دائمًا مع العدد العقدي. | ||
===[[Ruby/Complex/to c|<code>to_c</code>]]=== | |||
يعيد العدد العقدي المعطى نفسه. | |||
=== [[Ruby/Complex/ | ===[[Ruby/Complex/to f|<code>to_f</code>]]=== | ||
يحول العدد العقدي الذي استدعي معه إلى عدد عشري إن كان ذلك ممكنًا (ينبغي أن يساوي الجزء التخيلي القيمة 0 تمامًا، وإلا فسيُطلَق الخطأ <code>RangeError</code>). | |||
===[[Ruby/Complex/to i|<code>to_i</code>]]=== | |||
[[Ruby/Complex/ | يحول العدد العقدي الذي استدعي معه إلى عدد صحيح إن كان ذلك ممكنًا (ينبغي أن يساوي الجزء التخيلي القيمة 0 تمامًا، وإلا فسيُطلَق الخطأ <code>RangeError</code>). | ||
===[[Ruby/Complex/to s|<code>to_s</code>]]=== | |||
يحول العدد العقدي الذي استدعي معه إلى سلسلة نصية إن كان ذلك ممكنًا (ينبغي أن يساوي الجزء التخيلي القيمة 0 تمامًا، وإلا فسيُطلَق الخطأ <code>RangeError</code>). | |||
===[[Ruby/Complex/to r|<code>to_r</code>]]=== | |||
== مصادر == | يحول العدد العقدي الذي استدعي معه إلى عدد من النوع <code>rational</code> إن كان ذلك ممكنًا (ينبغي أن يساوي الجزء التخيلي القيمة 0 تمامًا، وإلا فسيطلق الخطأ <code>RangeError</code> ). | ||
* [http://ruby-doc.org/core-2.5.1/Complex.html قسم | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Complex.html قسم الصنف Complex في توثيق روبي الرسمي.] |
المراجعة الحالية بتاريخ 12:27، 21 نوفمبر 2018
يمكن تمثيل الأعداد العقدية (تُسمّى أيضًا أعدادًا مركبةً [complex number]) كزوج مكون من عدد حقيقي ووحدة تخلية (العدد i
) وفق الشكل a+bi
، إذ a
هو الجزء الحقيقي، و b
هو الجزء التخيلي و i
هو الوحدة الخيالية. العدد الحقيقي a
يساوي العدد العقدي a+0i
حسابيًا.
يمكن إنشاء الأعداد العقدية بطريقة حرفية، وأيضا باستخدام التوابع Kernel.Complex
أو ::rect
أو ::polar
أو .to_c
. إليك الأمثلة التالية:
2+1i #=> (2+1i)
Complex(1) #=> (1+0i)
Complex(2, 3) #=> (2+3i)
Complex.polar(2, 3) #=> (-1.9799849932008908+0.2822400161197344i)
3.to_c #=> (3+0i)
يمكنك أيضا إنشاء الكائنات العقدية من الأعداد العشرية أو من السلاسل النصية كما توضح الأمثلة التالية:
Complex(0.3) #=> (0.3+0i)
Complex('0.3-0.5i') #=> (0.3-0.5i)
Complex('2/3+3/4i') #=> ((2/3)+(3/4)*i)
Complex('1@2') #=> (-0.4161468365471424+0.9092974268256817i)
0.3.to_c #=> (0.3+0i)
'0.3-0.5i'.to_c #=> (0.3-0.5i)
'2/3+3/4i'.to_c #=> ((2/3)+(3/4)*i)
'1@2'.to_c #=> (-0.4161468365471424+0.9092974268256817i)
تُصنّف الأعداد العقدية إلى أعداد مضبوطة (exact) و غير مضبوطة (inexact):
Complex(1, 1) / 2 #=> ((1/2)+(1/2)*i)
Complex(1, 1) / 2.0 #=> (0.5+0.5i)
الثوابت
الثابت التخيلي I
يمثل العدد التخيلي للأعداد العقدية.
توابع الصنف العامة (Public Class Methods)
polar
يعيد عددا عقديًّا وفق الشكل القطبي (polar form).
rect
يعيد عددًا عقديًا وفق الشكل الجبري أو المستطيلي (rectangular form).
توابع الكائن العامة (Public Instance Methods)
*
يجري عملية الضرب على الأعداد العقدية.
**
يرفع عددًا عقديًّا إلى قوة عددٍ محدَّدٍ.
+
يجري عملية الجمع على الأعداد العقدية.
-
يجري عملية الطرح بين عددين عقديين.
-
يُستعمَل لنفي العدد العقدي (القيمة السالبة منه أن كان موجبًا).
/
يجري عملية القسمة على الأعداد العقدية.
==
يتحقق من تساوي عددين عقديين.
abs
يحسب الطويلة (r) للعدد العقدي بشكله القطبي الذي استدعي معه ثم يعيدها.
abs2
يعيد مربع الطويلة (r2) للعدد العقدي الذي استدعي معه.
angle
يحسب الجزء الزاوي (الزاوية θ) للشكل القطبي من العدد العقدي الذي استدعي معه.
arg
يعيد التابع arg الجزء الزاوي (الزاوية θ) للشكل القطبي من العدد العقدي الذي استدعي معه.
conj
يعيد مرافق العدد العقدي الذي استدعي معه.
conjugate
يعيد مرافق العدد العقدي الذي استدعي معه.
denominator
يعيد قاسم (denominator) العدد العقدي، أي القاسم المشترك الأصغر (LCM، اختصارٌ للعبارة lowest common multiple) للجزأين الحقيقي والتخيلي.
fdiv
يجري عملية القسمة على العدد العقدي.
finite?
يتحقق مما إذا كانت قيمة الطويلة (r) للشكل القطبي من العدد العقدي الذي استُدعي معه منتهية (finite).
imag
يعيد الجزء التخيلي للعدد العقدي الذي استدعي معه.
imaginary
يعيد الجزء التخيلي للعدد العقدي الذي استدعي معه.
infinite?
يعيد قيمةً تشير إذا كانت قيمة الطويلة (r) للشكل القطبي من العدد العقدي منتهية أو غير منتهية (infinite).
inspect
يعيد العدد العقدي على شكل سلسلة نصية لأجل فحصها (inspection).
magnitude
يعيد التابع magnitude
الجزء المطلق (absolute part) للشكل القطبي للعدد العقدي.
numerator
يعيد التابع numerator
بسط (numerator) العدد العقدي الكسري.
phase
يعيد الجزء الزاوي (الزاوية θ) للشكل القطبي من العدد العقدي الذي استُدعي معه.
quo
يجري عملية القسمة على الأعداد العقدية.
rationalize
يعيد القيمة الجذرية (rational) المقابلة للعدد العقدي (ينبغي أن يكون الجزء التخيلي معدومًا).
real
يعيد الجزء الحقيقي (real part) للعدد العقدي الذي استدعي معه.
real?
يعيد القيمة false
دائمًا مع العدد العقدي.
to_c
يعيد العدد العقدي المعطى نفسه.
to_f
يحول العدد العقدي الذي استدعي معه إلى عدد عشري إن كان ذلك ممكنًا (ينبغي أن يساوي الجزء التخيلي القيمة 0 تمامًا، وإلا فسيُطلَق الخطأ RangeError
).
to_i
يحول العدد العقدي الذي استدعي معه إلى عدد صحيح إن كان ذلك ممكنًا (ينبغي أن يساوي الجزء التخيلي القيمة 0 تمامًا، وإلا فسيُطلَق الخطأ RangeError
).
to_s
يحول العدد العقدي الذي استدعي معه إلى سلسلة نصية إن كان ذلك ممكنًا (ينبغي أن يساوي الجزء التخيلي القيمة 0 تمامًا، وإلا فسيُطلَق الخطأ RangeError
).
to_r
يحول العدد العقدي الذي استدعي معه إلى عدد من النوع rational
إن كان ذلك ممكنًا (ينبغي أن يساوي الجزء التخيلي القيمة 0 تمامًا، وإلا فسيطلق الخطأ RangeError
).