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

من موسوعة حسوب
لا ملخص تعديل
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الصنف<code>Complex</code> في روبي}}</noinclude>
يمكن تمثيل الأعداد العقدية (تُسمّى أيضًا أعدادًا مركبة) كزوج مكون من عدد حقيقي ووحدة تخلية (العدد <code>i</code>) ؛ وفق الشكل <code>a+bi</code>، حيث <code>a</code> هو الجزء الحقيقي، و <code>b</code> هو الجزء التخيلي و <code>i</code> هو الوحدة الخيالية.
[[تصنيف: Ruby]]
[[تصنيف: Ruby Complex]]
يمكن تمثيل الأعداد العقدية (تُسمّى أيضًا أعدادًا مركبة) كزوج مكون من عدد حقيقي ووحدة تخلية (العدد <code>i</code>) ؛ وفق الشكل <code>a+bi</code>، حيث <code>a</code> هو الجزء الحقيقي، و <code>b</code> هو الجزء التخيلي و <code>i</code> هو الوحدة الخيالية.


العدد الحقيقي <code>a</code> يساوي رياضياتيًا العدد العقدي <code>a+0i</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#Complex</code> أو  ‏‎<code>::rect</code> أو  ‏‎:<code>:polar</code> أو <code>‎#to_c.</code> إليك الأمثلة التالية:<syntaxhighlight lang="ruby">
2+1i                #=> (2+1i)
2+1i                #=> (2+1i)
Complex(1)          #=> (1+0i)
Complex(1)          #=> (1+0i)
سطر 12: سطر 9:
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>يمكنك أيضا إنشاء الكائنات العقدية من الأعداد من النوع  <code>float</code> أو من السلاسل النصية كما توضح الأمثلة التالية: <syntaxhighlight lang="ruby">
</syntaxhighlight>يمكنك أيضا إنشاء الكائنات العقدية من الأعداد من النوع  <code>float</code> أو من السلاسل النصية كما توضح الأمثلة التالية:<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: سطر 19:
'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 lang="ruby">
</syntaxhighlight>تُصنّف الأعداد العقدية إلى مضبوطة (exact) أو غير مضبوطة:<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>
 
==الثوابت==
== الثوابت ==
===[[Ruby/Complex/I|الثابت التخيلي <code>I</code>]]===
 
===[[Ruby/Complex/I|الثابت التخيلي <code>I</code>]] ===
يمثل الثابت <code>i</code> العدد التخيلي للأعداد العقدية.
يمثل الثابت <code>i</code> العدد التخيلي للأعداد العقدية.
 
==توابع الصنف العامة (Public Class Methods)==
== توابع الصنف العامة (Public Class Methods) ==
===[[Ruby/Complex/polar|التابع <code>polar</code>]]===
 
===[[Ruby/Complex/polar|التابع <code>polar</code>]] ===
يعيد التابع ‎<code>polar</code> عددا عقديا وفق الشكل القطبي (polar form).
يعيد التابع ‎<code>polar</code> عددا عقديا وفق الشكل القطبي (polar form).
 
===[[Ruby/Complex/rect|التابع <code>rect</code>]]===
===[[Ruby/Complex/rect|التابع <code>rect</code>]] ===
يعيد التابع ‎<code>rect</code> عددا عقديا وفق الشكل الجبري أو المستطيلي (rectangular form).
يعيد التابع ‎<code>rect</code> عددا عقديا وفق الشكل الجبري أو المستطيلي (rectangular form).
 
===[[Ruby/Complex/rectangular|التابع <code>rectangular </code>]]===
===[[Ruby/Complex/rectangular|التابع <code>rectangular </code>]] ===
يعيد التابع ‎<code>rectangular</code> عددا عقديا وفق الشكل الجبري أو المستطيلي (rectangular form).
يعيد التابع ‎<code>rectangular</code> عددا عقديا وفق الشكل الجبري أو المستطيلي (rectangular form).
 
==توابع الكائن العامة (Public Instance Methods)==
== توابع الكائن العامة (Public Instance Methods) ==
===[[Ruby/Complex/star|المعامل <code>*</code>]]===
 
===[[Ruby/Complex/star|المعامل <code>*</code>]] ===
يؤدي المعامل ‎<code>*</code>عملية الضرب على الأعداد العقدية.
يؤدي المعامل ‎<code>*</code>عملية الضرب على الأعداد العقدية.
 
===[[Ruby/Complex/exp|المعامل <code>**</code>]]===
===[[Ruby/Complex/exp|المعامل <code>**</code>]] ===
يؤدي المعامل ‎<code>**</code>عملية الأسّ (exponentiation) على الأعداد العقدية.
يؤدي المعامل ‎<code>**</code>عملية الأسّ (exponentiation) على الأعداد العقدية.
 
===[[Ruby/Complex/plus|المعامل <code>+</code>]]===
===[[Ruby/Complex/plus|المعامل <code>+</code>]] ===
يؤدي المعامل ‎<code>+</code>عملية الجمع على الأعداد العقدية.
يؤدي المعامل ‎<code>+</code>عملية الجمع على الأعداد العقدية.
 
===[[Ruby/Complex/-|المعامل <code>-</code>]]===
===[[Ruby/Complex/-|المعامل <code>-</code>]] ===
يؤدي المعامل ‎<code>-</code>عملية الطرح على الأعداد العقدية.
يؤدي المعامل ‎<code>-</code>عملية الطرح على الأعداد العقدية.
 
===[[Ruby/Complex/negation|معامل النفي <code>-</code>]]===
===[[Ruby/Complex/negation|معامل النفي <code>-</code>]] ===
يعيد معامل النفي ‎<code>-</code> نفي (مقابل) العدد العقدي. 
يعيد معامل النفي ‎<code>-</code> نفي (مقابل) العدد العقدي. 
 
===[[Ruby/Complex/div|المعامل <code>/</code>]]===
===[[Ruby/Complex/div|المعامل <code>/</code>]] ===
يؤدي المعامل ‎<code>/</code>عملية القسمة على الأعداد العقدية.
يؤدي المعامل ‎<code>/</code>عملية القسمة على الأعداد العقدية.
 
===[[Ruby/Complex/equality operator|المعامل <code>==</code>]]===
===[[Ruby/Complex/equality operator|المعامل <code>==</code>]] ===
يتحقق المعامل ‎<code>==</code>من تساوي عددين عقديين.
يتحقق المعامل ‎<code>==</code>من تساوي عددين عقديين.
 
===[[Ruby/Complex/abs|التابع <code>abs</code>]]===
=== [[Ruby/Complex/abs|التابع <code>abs</code>]] ===
يعيد التابع ‎<code>abs</code> منظم (القيمة المطلقة) للعدد العقدي الذي استدعي معه.
يعيد التابع ‎<code>abs</code> منظم (القيمة المطلقة) للعدد العقدي الذي استدعي معه.
 
===[[Ruby/Complex/abs2|التابع <code>abs2</code>]]===
===[[Ruby/Complex/abs2|التابع <code>abs2</code>]] ===
يعيد  التابع ‎<code>abs2</code> مربع القيمة المطلقة للعدد العقدي الذي استدعي معه.
يعيد  التابع ‎<code>abs2</code> مربع القيمة المطلقة للعدد العقدي الذي استدعي معه.
 
===[[Ruby/Complex/angle|التابع ‎<code>angle</code>]]===
=== [[Ruby/Complex/angle|التابع ‎<code>angle</code>]] ===
يعيد  التابع ‎<code>angle</code> الجزء الزاوري (angle part) للشكل القطبي للعدد العقدي الذي استدعي معه.
يعيد  التابع ‎<code>angle</code> الجزء الزاوري (angle part) للشكل القطبي للعدد العقدي الذي استدعي معه.
 
===[[Ruby/Complex/arg|التابع <code>arg</code>]]===
=== [[Ruby/Complex/arg|التابع <code>arg</code>]] ===
يعيد التابع ‎<code>arg</code> منظم (arg  part) العدد العقدي الذي استدعي معه وفق الشكل القطبي.
يعيد التابع ‎<code>arg</code> منظم (arg  part) العدد العقدي الذي استدعي معه وفق الشكل القطبي.
 
===[[Ruby/Complex/arg|التابع <code>arg</code>]]===
=== [[Ruby/Complex/arg|التابع <code>arg</code>]] ===
يعيد التابع ‎<code>conj</code> مرافق العدد العقدي.
يعيد التابع ‎<code>conj</code> مرافق العدد العقدي.
 
===[[Ruby/Complex/arg|التابع <code>conjugate</code>]]===
=== [[Ruby/Complex/arg|التابع <code>conjugate</code>]] ===
يعيد التابع ‎<code>conjugate</code> مرافق العدد العقدي. 
يعيد التابع ‎<code>conjugate</code> مرافق العدد العقدي. 
 
===[[Ruby/Complex/denominator|التابع <code>denominator</code>]]===
=== [[Ruby/Complex/denominator|التابع <code>denominator</code>]] ===
يعيد التابع ‎<code>denominator</code> قاسم (denominator) العدد العقدي، أي المضاعف المشترك الأصغر (lcm) للجزءين الحقيقي والتخيلي.
يعيد التابع ‎<code>denominator</code> قاسم (denominator) العدد العقدي، أي المضاعف المشترك الأصغر (lcm) للجزءين الحقيقي والتخيلي.
 
===[[Ruby/Complex/fdiv|التابع <code>fdiv</code>]]===
=== [[Ruby/Complex/fdiv|التابع <code>fdiv</code>]] ===
يقوم التابع ‎<code>fdiv</code> بعملية القسمة على العدد العقدي.
يقوم التابع ‎<code>fdiv</code> بعملية القسمة على العدد العقدي.
 
===[[Ruby/Complex/finite|التابع <code>finite?‎</code>]]===
=== [[Ruby/Complex/finite|التابع <code>finite?‎</code>]] ===
يتحقق التابع ‎<code>finite?‎</code> مما إذا كانت القيمة المطلقة (absolute part) للشكل القطبي للعدد العقدي الذي استُدعي معه منتهيًا (finite). 
يتحقق التابع ‎<code>finite?‎</code> مما إذا كانت القيمة المطلقة (absolute part) للشكل القطبي للعدد العقدي الذي استُدعي معه منتهيًا (finite). 
 
===[[Ruby/Complex/imag|التابع <code>imag</code>]]===
=== [[Ruby/Complex/imag|التابع <code>imag</code>]] ===
يعيد التابع ‎<code>imag</code> الجزء التخيلي للعدد العقدي. 
يعيد التابع ‎<code>imag</code> الجزء التخيلي للعدد العقدي. 
 
===[[Ruby/Complex/imaginary|التابع <code>imaginary</code>]]===
=== [[Ruby/Complex/imaginary|التابع <code>imaginary</code>]] ===
يعيد التابع ‎<code>imaginary</code> الجزء التخيلي (imaginary part) للعدد العقدي. 
يعيد التابع ‎<code>imaginary</code> الجزء التخيلي (imaginary part) للعدد العقدي. 
 
===[[Ruby/Complex/infinite|التابع <code>‎infinite?‎</code>]]===
=== [[Ruby/Complex/infinite|التابع <code>‎infinite?‎</code>]] ===
يعيد التابع ‎<code>infinite?‎</code> قيمة بحسب ما إذا كانت القيمة المطلقة (absolute part) للشكل القطبي للعدد العقدي منتهية أو غير منتهية (infinite).
يعيد التابع ‎<code>infinite?‎</code> قيمة بحسب ما إذا كانت القيمة المطلقة (absolute part) للشكل القطبي للعدد العقدي منتهية أو غير منتهية (infinite).


سطر 109: سطر 80:


يعيد التابع ‎<code>magnitude</code> الجزء المطلق (absolute part) للشكل القطبي للعدد العقدي.
يعيد التابع ‎<code>magnitude</code> الجزء المطلق (absolute part) للشكل القطبي للعدد العقدي.
 
===[[Ruby/Complex/numerator|التابع <code>‎numerator‎</code>]]===
=== [[Ruby/Complex/numerator|التابع <code>‎numerator‎</code>]] ===
يعيد التابع ‎<code>numerator</code> مقام (numerator) العدد العقدي. 
يعيد التابع ‎<code>numerator</code> مقام (numerator) العدد العقدي. 
 
===[[Ruby/Complex/phase|التابع <code>phase</code>]]===
=== [[Ruby/Complex/phase|التابع <code>phase</code>]] ===
 يعيد التابع ‎<code>phase</code> الجزء الزاوي (angle part) للشكل القطبي للعدد العقدي الذي استُدعي معه.
 يعيد التابع ‎<code>phase</code> الجزء الزاوي (angle part) للشكل القطبي للعدد العقدي الذي استُدعي معه.
 
===[[Ruby/Complex/quo|التابع <code>quo</code>]]===
=== [[Ruby/Complex/quo|التابع <code>quo</code>]] ===
يؤدي التابع ‎<code>quo</code>عملية القسمة على الأعداد العقدية.
يؤدي التابع ‎<code>quo</code>عملية القسمة على الأعداد العقدية.
===[[Ruby/Complex/rationalize|التابع <code>rationalize</code>]]===
يعيد التابع ‎<code>rationalize</code> القيمة الجذرية (rational ) المقابلة للعدد العقدي. ينبغي أن يكون الجزء التخيلي معدوما. 


[[Ruby/Complex/real|التابع <code>real</code>]]
[[Ruby/Complex/real|التابع <code>real</code>]]
سطر 123: سطر 93:
يعيد التابع ‎<code>real</code> الجزء الحقيقي (real part) للعدد العقدي.
يعيد التابع ‎<code>real</code> الجزء الحقيقي (real part) للعدد العقدي.


== مصادر ==
=== [[Ruby/Complex/real-3F|التابع <code>real?‎ </code>]] ===
* [http://ruby-doc.org/core-2.5.1/Complex.html قسم  الصنف Complex في توثيق روبي الرسمي.]
يعيد التابع ‎<code>real?‎</code> القيمة <code>false</code> دائمًا. 
 
=== [[Ruby/Complex/to c|التابع <code>to_c</code>]] ===
يعيد التابع ‎<code>to_c</code> العدد العقدي نفسه. 
 
=== [[Ruby/Complex/to f|التابع <code>to_f</code>]] ===
يعيد التابع ‎<code>to_f</code> العدد العقدي الذي استدعي معه على شكل عدد من النوع <code>float</code> إن كان ذلك ممكنًا (ينبغي أن يساوي الجزء التخيلي العدد 0 تمامًا، وإلا فسيطلق الخطأ <code>RangeError</code>).
 
=== [[Ruby/Complex/to i|التابع <code>to_i</code>]] ===
يعيد التابع ‎<code>to_i</code> العدد العقدي الذي استدعي معه على شكل عدد صحيح من النوع <code>integer</code> إن كان ذلك ممكنًا (ينبغي أن يساوي الجزء التخيلي العدد 0 تمامًا، وإلا فسيطلق الخطأ <code>RangeError</code>).
 
=== [[Ruby/Complex/to s|التابع <code>to_s</code>]] ===
يعيد التابع ‎<code>to_s</code> العدد العقدي الذي استدعي معه على شكل سلسلة نصية.
===[[Ruby/Complex/to r|التابع <code>to_r</code>]]===
يعيد التابع ‎<code>to_r</code> القيمة الجذرية (rational ) المقابلة للعدد العقدي. ينبغي أن يكون الجزء التخيلي معدوما. 
==مصادر==
<span> </span>
*[http://ruby-doc.org/core-2.5.1/Complex.html قسم  الصنف Complex في توثيق روبي الرسمي.]

مراجعة 12:15، 14 سبتمبر 2018

يمكن تمثيل الأعداد العقدية (تُسمّى أيضًا أعدادًا مركبة) كزوج مكون من عدد حقيقي ووحدة تخلية (العدد 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)

يمكنك أيضا إنشاء الكائنات العقدية من الأعداد من النوع float أو من السلاسل النصية كما توضح الأمثلة التالية:

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) أو غير مضبوطة:

Complex(1, 1) / 2    #=> ((1/2)+(1/2)*i)
Complex(1, 1) / 2.0  #=> (0.5+0.5i)

الثوابت

الثابت التخيلي I

يمثل الثابت i العدد التخيلي للأعداد العقدية.

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

التابع polar

يعيد التابع ‎polar عددا عقديا وفق الشكل القطبي (polar form).

التابع rect

يعيد التابع ‎rect عددا عقديا وفق الشكل الجبري أو المستطيلي (rectangular form).

التابع rectangular 

يعيد التابع ‎rectangular عددا عقديا وفق الشكل الجبري أو المستطيلي (rectangular form).

توابع الكائن العامة (Public Instance Methods)

المعامل *

يؤدي المعامل ‎*عملية الضرب على الأعداد العقدية.

المعامل **

يؤدي المعامل ‎**عملية الأسّ (exponentiation) على الأعداد العقدية.

المعامل +

يؤدي المعامل ‎+عملية الجمع على الأعداد العقدية.

المعامل -

يؤدي المعامل ‎-عملية الطرح على الأعداد العقدية.

معامل النفي -

يعيد معامل النفي ‎- نفي (مقابل) العدد العقدي. 

المعامل /

يؤدي المعامل ‎/عملية القسمة على الأعداد العقدية.

المعامل ==

يتحقق المعامل ‎==من تساوي عددين عقديين.

التابع abs

يعيد التابع ‎abs منظم (القيمة المطلقة) للعدد العقدي الذي استدعي معه.

التابع abs2

يعيد التابع ‎abs2 مربع القيمة المطلقة للعدد العقدي الذي استدعي معه.

التابع ‎angle

يعيد التابع ‎angle الجزء الزاوري (angle part) للشكل القطبي للعدد العقدي الذي استدعي معه.

التابع arg

يعيد التابع ‎arg منظم (arg  part) العدد العقدي الذي استدعي معه وفق الشكل القطبي.

التابع arg

يعيد التابع ‎conj مرافق العدد العقدي.

التابع conjugate

يعيد التابع ‎conjugate مرافق العدد العقدي. 

التابع denominator

يعيد التابع ‎denominator قاسم (denominator) العدد العقدي، أي المضاعف المشترك الأصغر (lcm) للجزءين الحقيقي والتخيلي.

التابع fdiv

يقوم التابع ‎fdiv بعملية القسمة على العدد العقدي.

التابع finite?‎

يتحقق التابع ‎finite?‎ مما إذا كانت القيمة المطلقة (absolute part) للشكل القطبي للعدد العقدي الذي استُدعي معه منتهيًا (finite). 

التابع imag

يعيد التابع ‎imag الجزء التخيلي للعدد العقدي. 

التابع imaginary

يعيد التابع ‎imaginary الجزء التخيلي (imaginary part) للعدد العقدي. 

التابع ‎infinite?‎

يعيد التابع ‎infinite?‎ قيمة بحسب ما إذا كانت القيمة المطلقة (absolute part) للشكل القطبي للعدد العقدي منتهية أو غير منتهية (infinite).

التابع inspect

يعيد التابع ‎inspect العدد العقدي على شكل سلسلة نصية لأجل التفتيش (inspection). 

التابع magnitude

يعيد التابع ‎magnitude الجزء المطلق (absolute part) للشكل القطبي للعدد العقدي.

التابع ‎numerator‎

يعيد التابع ‎numerator مقام (numerator) العدد العقدي. 

التابع phase

 يعيد التابع ‎phase الجزء الزاوي (angle part) للشكل القطبي للعدد العقدي الذي استُدعي معه.

التابع quo

يؤدي التابع ‎quoعملية القسمة على الأعداد العقدية.

التابع rationalize

يعيد التابع ‎rationalize القيمة الجذرية (rational ) المقابلة للعدد العقدي. ينبغي أن يكون الجزء التخيلي معدوما. 

التابع real

يعيد التابع ‎real الجزء الحقيقي (real part) للعدد العقدي.

التابع real?‎ 

يعيد التابع ‎real?‎ القيمة false دائمًا. 

التابع to_c

يعيد التابع ‎to_c العدد العقدي نفسه. 

التابع to_f

يعيد التابع ‎to_f العدد العقدي الذي استدعي معه على شكل عدد من النوع float إن كان ذلك ممكنًا (ينبغي أن يساوي الجزء التخيلي العدد 0 تمامًا، وإلا فسيطلق الخطأ RangeError).

التابع to_i

يعيد التابع ‎to_i العدد العقدي الذي استدعي معه على شكل عدد صحيح من النوع integer إن كان ذلك ممكنًا (ينبغي أن يساوي الجزء التخيلي العدد 0 تمامًا، وإلا فسيطلق الخطأ RangeError).

التابع to_s

يعيد التابع ‎to_s العدد العقدي الذي استدعي معه على شكل سلسلة نصية.

التابع to_r

يعيد التابع ‎to_r القيمة الجذرية (rational ) المقابلة للعدد العقدي. ينبغي أن يكون الجزء التخيلي معدوما. 

مصادر