مقارنة لغات البرمجة (المصفوفة)
تقارن هذه المقارنة بين لغات البرمجة (المصفوفات) ميزات هياكل بيانات المصفوفات أو معالجة المصفوفات للغات برمجة الحاسوب المختلفة .
بناء الجملة
أبعاد المصفوفة
تحتوي القائمة التالية على أمثلة لصيغة كيفية تحديد الأبعاد (فهرس العنصر الأول، أو العنصر الأخير، أو الحجم بالعناصر).
بعض اللغات تبدأ الفهرسة من الصفر، وبعضها من الواحد، وبعضها لا يفرض مثل هذا القيد، أو حتى يسمح بالفهرسة بواسطة أي نوع مُعدّد، وليس فقط الأعداد الصحيحة.
| اللغات | مقاس | أولاً | آخر |
|---|---|---|---|
| آدا | الاسم 'الطول | الاسم الأول | الاسم الأخير |
| ALGOL 68 | اسم UPB - اسم LWB +1 2 اسم UPB - 2 اسم LWB +1 إلخ. | اسم قاعدة العجلات الطويلة 2 اسم قاعدة العجلات الطويلة إلخ. | اسم UPB 2 اسم UPB وما إلى ذلك. |
| APL | ⍴ اسم (⍴ اسم )[ فهرس ] | ⎕IO | (⍴ الاسم )-~⎕IO (⍴ الاسم )[ الفهرس ]-~⎕IO |
| أوك | طول | 1 | تشكيلة |
| سي شارب ، فيجوال بيسك (.NET) ، ويندوز باور شيل ، إف شارب | الاسم.الطول | name.GetLowerBound ( dimension ) | name.GetUpperBound ( dimension ) |
| CFML | arrayLen( name ) name .len() | 1 | name.len () |
| الفصل | أقصى (شكل ( الاسم )) | 0 | أقصى (شكل ( الاسم )) - 1 |
| لغة الشفرة الشائعة | (طول الاسم ) | 0 | (1- (طول الاسم )) |
| د | طول الاسم | 0 | name .length-1 $-1 |
| فورتران | حجم ( الاسم ) | lbound( name ) | ubound( name ) |
| يذهب | طول ( الاسم ) | 0 | طول ( الاسم ) - 1 |
| هاسكل | rangeSize (bounds name ) | fst ( اسم النطاق ) | snd ( اسم الحدود ) |
| لغة ISLISP | (طول الاسم ) | 0 | (1- (طول الاسم )) |
| رمز | * اسم | 1 | * اسم |
| كوبرا د هاكس جافا جافا سكريبت سكالا | طول الاسم | 0 | طول الاسم - 1 |
| ج | # اسم | 0 | <:@# الاسم |
| جافا سكريبت ( ES2022 ) | طول الاسم | 0 اسم .at(0) [ 1 ] | name.length - 1 name.at (-1) [ 1 ] |
| جوليا | طول ( الاسم ) حجم ( الاسم ) | ابدأ أولاً.(المحاور( الاسم )) | end last.(axes( name )) |
| لغة عامية | عدد ( الاسم ) | 1 | getLast( name ) |
| LiveCode | طول ( الاسم ) | 1 أولاً | -1 الأخير |
| لغة لوا | # اسم | 1 حسب الاصطلاح؛ أي عدد صحيح [ 2 ] | # اسم |
| ماثيماتيكا | الطول[ الاسم ] | 1 الاسم الأول | -1 الاسم الأخير[ الاسم ] |
| MATLAB ، GNU Octave | طول ( الاسم ) | 1 | نهاية |
| نيم | الاسم.الطول | name .low [ 3 ] | اسم .عالي |
| أوبرون | طول ( الاسم ) | 0 | LEN( name ) - 1 |
| أوبجكت باسكال | رقم ( الاسم ) | 0 منخفض ( الاسم ) | الطول ( الاسم ) - 1 الارتفاع ( الاسم ) |
لغة البرمجة Objective-C ( NSArray *فقط) | [ عدد الأسماء ] | 0 | [ عدد الأسماء ] - 1 |
| أوكاميل | اسم طول المصفوفة | 0 | Array.length name - 1 |
| بيرل | قيمة عددية (@ الاسم ) | $[ | $# الاسم |
| PHP | عدد ( الاسم ) | 0 | عدد ( الاسم ) - 1 |
| PL/I | dim( name [,dim]) | lbound( name [,dim]) | hbound( name [,dim]) |
| بايثون | طول ( الاسم ) | 0 | -1 طول ( الاسم ) - 1 |
| R | طول ( الاسم ) | 1 | طول ( الاسم ) |
| راكو | @ الاسم .العناصر | 0 | @ الاسم .نهاية |
| ريبول ، أحمر | الطول؟ الاسم | الاسم الأول /1 الاسم الأول | اسم العائلة |
| روبي | الاسم .الحجم | 0 الاسم الأول | -1 اسم.الحجم -1 اسم.الأخير |
| الصدأ | name.len () | 0 | name.len () - 1 |
| دارجة | طول ( الاسم ) | 0 | -1 طول ( الاسم ) -1 |
| مخطط | ( متجه ذو طول متجه ) | 0 | (- (متجه طوله متجه ) 1) |
| أحاديث قصيرة | حجم الاسم | الاسم الأول | الاسم الحجم الاسم الأخير |
| سويفت | الاسم. العدد | 0 | الاسم. العدد - 1 |
| يونيكون | * اسم | 1 | * اسم |
| فيجوال بيسك | الحد الأعلى ( الاسم ) - الحد الأدنى ( الاسم ) + 1 | LBound( name ) | UBound( name ) |
| لغة وولفرام | الطول[ الاسم ] | 1 الاسم الأول | -1 الاسم الأخير[ الاسم ] |
| زوجو | UBound( name ) | 0 | UBound( name ) |
| XPath / XQuery | عدد($ الاسم ) | 1 | count($ name ) last() array:size( name ) [ 4 ] |
الفهرسة
تحتوي القائمة التالية على أمثلة لصيغة كيفية الوصول إلى عنصر واحد من مصفوفة.
| شكل | اللغات |
|---|---|
| الاسم [ الفهرس ] أو الاسم [ الفهرس 1 ، الفهرس 2 ] إلخ. | ALGOL 58 ، ALGOL 60 ، ALGOL 68 ، AWK ، Julia ، Modula ، Pascal ، Object Pascal ، C# ، S-Lang [ 5 ] Icon ، Unicon |
| الاسم [ الفهرس ] أو الاسم [ الفهرس 1 ؛ الفهرس 2 ] إلخ. أو الفهرس ⌷ الاسم أو الفهرس 1 الفهرس 2 ⌷ الاسم إلخ. | APL |
| الاسم [ الفهرس ] | ActionScript ، C ، CFML ، Ch ، Cobra ، C ++ ، D ، Go ، Haxe ، Java ، JavaScript ، Lingo ، Lua ، Nim ، Objective - C NSArray *، Perl ، PHP ، Python ، R ، Ruby ، Rust ، Swift |
| $ name [ index ] | بيرل ، [ 5 ] ويندوز باور شيل ، [ 5 ] إكس باث / إكس كويري [ 4 ] |
| @ الاسم [ الفهرس ] | راكو |
| الاسم ( الفهرس ) أو الاسم ( الفهرس 1 ، الفهرس 2 ) إلخ. | أدا ، ألغول دبليو ، بيسك ، كوبول ، فورتران ، آر بي جي ، جنو أوكتاف ، ماتلاب ، بي إل/آي ، سكالا ، فيجوال بيسك ، فيجوال بيسك (.NET) ، زوجو |
| $ name ( index ) | XPath / XQuery [ 4 ] |
| الاسم .( الفهرس ) | أوكاميل |
| الاسم .[ الفهرس ] | F# ، OCaml |
| الاسم/الفهرس | ريبول ، أحمر |
| الاسم ! الفهرس | هاسكل |
| $ name ? index | XPath / XQuery [ 4 ] |
| ( مؤشر اسم المرجع المتجهي ) | مخطط |
| (فهرس أسماء المناطق ) | لغة الشفرة الشائعة |
| ( فهرس أسماء العناصر ) | لغة ISLISP |
| الاسم [[ الفهرس ]] | ماثيماتيكا ، [ 5 ] لغة وولفرام |
| الاسم في: الفهرس | أحاديث قصيرة |
| [ اسم الكائن في الفهرس: الفهرس ] | لغة البرمجة Objective-C ( NSArray *فقط) |
| فهرس { اسم | ج |
| name.item(index) or name @ index [ 6 ] | إيفل |
التقطيع
تحتوي القائمة التالية على أمثلة لصيغة كيفية الوصول إلى نطاق من عناصر المصفوفة.
في الجدول التالي:
- أولًا - فهرس العنصر الأول في الشريحة
- الأخير – فهرس العنصر الأخير في الشريحة
- النهاية - واحد أكثر من فهرس العنصر الأخير في الشريحة
- len – طول الشريحة (= النهاية - الأولى)
- الخطوة – عدد عناصر المصفوفة في كل منها (الافتراضي 1)
| شكل | اللغات |
|---|---|
| الاسم [ الاسم الأول : الاسم الأخير ] | ALGOL 68 , [ 7 ] جوليا , أيقونة , Unicon |
| الاسم [ الاسم الأول + ( طول الاسم ) - (عدد المدخلات والمخرجات)] | APL |
| الاسم [ الأول : النهاية : الخطوة ] | بايثون [ 8 ] [ 9 ] |
| الاسم [ الأول : النهاية ] | يذهب |
| الاسم [ الاسم الأول .. الاسم الأخير ] | باسكال ، أوبجكت باسكال ، دلفي ، نيم |
| $ name [ first..last ] | ويندوز باور شيل |
| @ الاسم [ الاسم الأول .. الاسم الأخير ] | بيرل [ 10 ] |
| الاسم [ الاسم الأول .. الاسم الأخير ] الاسم [ الاسم الأول ... الاسم الأخير ] الاسم [ الاسم الأول ، الطول ] | روبي [ 9 ] |
| نسخ/تخطي جزء الاسم الطول الأول | ريبول ، أحمر |
| الاسم ( الأول .. الأخير ) | آدا [ 7 ] |
| الاسم ( الاسم الأول : الاسم الأخير ) | فورتران ، [ 7 ] [ 8 ] جنو أوكتاف ، ماتلاب [ 7 ] [ 10 ] |
| الاسم [[ الاسم الأول ;; الاسم الأخير ;; الخطوة ]] | ماثيماتيكا ، [ 7 ] [ 8 ] [ 9 ] لغة وولفرام |
| الاسم [[ الاسم الأول : الاسم الأخير ]] | S-Lang [ 7 ] [ 8 ] [ 10 ] |
| الاسم .[ الاسم الأول .. الخطوة .. الاسم الأخير ] | فا# |
| name.slice ( first , end ) | هاكس ، جافا سكريبت ، سكالا |
| name.slice ( first , len ) | CFML |
| array_slice( name , first , len ) | PHP [ 9 ] |
| (الاسم الفرعي الأول النهاية ) | لغة الشفرة الشائعة |
| (الاسم الفرعي الأول النهاية ) | لغة ISLISP |
| Array.sub name first len | أوكاميل |
| [ name subarrayWithRange:NSMakeRange( first , len )] | لغة البرمجة Objective-C ( NSArray *فقط) |
( الأول ([+i.@(-~) النهاية ) { الاسم | ج |
| الاسم [ الأول ..< النهاية ] الاسم [ الأول ... الأخير ] | سويفت |
| اسم النسخة من: الاسم الأول إلى: اسم العائلة نسخة من: الاسم الأول العدد: الطول | أحاديث قصيرة |
| الاسم [ الأول .. النهاية ] | D ، C# [ 11 ] [ 12 ] |
| الاسم [ الأول .. النهاية ] الاسم [ الأول ..= الأخير ] | الصدأ |
| الاسم [ الأول : النهاية ] | الكوبرا |
table.move(name,first,last,1,{}) | Lua [ 13 ] |
قائمة المراجع المتبادلة لنظام المصفوفات
| لغة | فهرس القاعدة الافتراضي | نوع الفهرس القابل للتحديد [ 14 ] | مؤشر أساسي قابل للتحديد | شيك ملزم | متعدد الأبعاد | حجم ديناميكي | العمليات الموجهة |
|---|---|---|---|---|---|---|---|
| آدا | نوع الفهرس [ 15 ] | نعم | نعم | تم التحقق | نعم | init [ 16 ] | بعضها، والبعض الآخر قابل للتحديد [ 17 ] |
| ALGOL 68 | 1 | لا [ 18 ] | نعم | يختلف | نعم | نعم | قابل للتحديد من قبل المستخدم |
| APL | 1 | ؟ | 0 أو 1 [ 19 ] | تم التحقق | نعم | نعم | نعم |
| أوك | 1 | نعم، ضمنيًا | لا | غير خاضع للرقابة | نعم، كسلسلة محددة | نعم، مُعاد صياغته | لا |
| أساسي | 0 | ؟ | لا | تم التحقق | لا | init [ 16 ] | ؟ |
| ج | 0 | لا | لا [ 20 ] | غير خاضع للرقابة | جزئيا | init, [ 16 ] [ 21 ] heap [ 22 ] | لا |
| الفصل | 0 | لا | لا | تم التحقق | نعم، وأيضًا مصفوفة من المصفوفات [ 23 ] | init, [ 16 ] [ 21 ] heap [ 22 ] | نعم |
| سي++ [ 17 ] | 0 | لا | لا [ 20 ] | غير خاضع للرقابة | نعم، وأيضًا مصفوفة من المصفوفات [ 23 ] | كومة [ 22 ] | لا |
| سي شارب | 0 | لا | جزئي [ 24 ] | تم التحقق | نعم | كومة [ 22 ] [ 25 ] | نعم ( اختيار LINQ ) |
| CFML | 1 | لا | لا | تم التحقق | نعم، وأيضًا مصفوفة من المصفوفات [ 23 ] | نعم | لا |
| كوبول | 1 | لا [ 26 ] | لا | تم التحقق | مصفوفة من المصفوفات [ 23 ] [ 27 ] | لا [ 28 ] | بعض الخصائص الجوهرية |
| الكوبرا | 0 | لا | لا | تم التحقق | مصفوفة من المصفوفات [ 23 ] | كومة | ؟ |
| لغة الشفرة الشائعة | 0 | ؟ | لا | تم التحقق [ 29 ] | نعم | نعم | نعم (خريطة أو خريطة-إلى) |
| د | 0 | نعم [ 30 ] | لا | يختلف [ 31 ] | نعم | نعم | ؟ |
| فا# | 0 | لا | جزئي [ 24 ] | تم التحقق | نعم | كومة [ 22 ] [ 25 ] | نعم (خريطة) |
| فري بيسيك | 0 | لا | نعم | تم التحقق | نعم | init, [ 16 ] init [ 32 ] | ؟ |
| فورتران | 1 | نعم | نعم | يختلف [ 33 ] | نعم | نعم | نعم |
| فوكس برو | 1 | ؟ | لا | تم التحقق | نعم | نعم | ؟ |
| يذهب | 0 | لا | لا | تم التحقق | مصفوفة من المصفوفات [ 23 ] | لا [ 34 ] | لا |
| اختراق | 0 | نعم | نعم | تم التحقق | نعم | نعم | نعم |
| هاسكل | 0 | نعم [ 35 ] | نعم | تم التحقق | نعم، وأيضًا مصفوفة من المصفوفات [ 23 ] | init [ 16 ] | ؟ |
| IDL | 0 | ؟ | لا | تم التحقق | نعم | نعم | نعم |
| لغة ISLISP | 0 | ؟ | لا | تم التحقق | نعم | init [ 16 ] | نعم (خريطة أو خريطة-إلى) |
| ج | 0 | ؟ | لا | تم التحقق | نعم | نعم | نعم |
| جافا [ 17 ] | 0 | لا | لا | تم التحقق | مصفوفة من المصفوفات [ 23 ] | init [ 16 ] | ؟ |
| جافا سكريبت | 0 | لا | لا | تم التحقق [ 36 ] | مصفوفة من المصفوفات [ 23 ] | نعم | نعم |
| جوليا | 1 | نعم | نعم | تم التحقق (يمكن تخطيه محليًا؛ أو عالميًا بواسطة المستخدم) | نعم، وكذلك مصفوفة من المصفوفات | نعم | نعم |
| لغة عامية | 1 | ؟ | ؟ | غير خاضع للرقابة | نعم | نعم | نعم |
| لغة لوا | 1 | ؟ | جزئي [ 37 ] | تم التحقق | مصفوفة من المصفوفات [ 23 ] | نعم | ؟ |
| ماثيماتيكا | 1 | لا | لا | تم التحقق | نعم | نعم | نعم |
| MATLAB | 1 | ؟ | لا | تم التحقق | نعم [ 38 ] | نعم | نعم |
| نيم | 0 | نعم [ 3 ] | نعم | اختياري [ 39 ] | مصفوفة من المصفوفات [ 23 ] | نعم | نعم [ 40 ] |
| أوبرون | 0 | ؟ | لا | تم التحقق | نعم | لا | ؟ |
| أوبرون-2 | 0 | ؟ | لا | تم التحقق | نعم | نعم | ؟ |
| أوبجيكتيف-سي [ 17 ] | 0 | لا | لا | تم التحقق | مصفوفة من المصفوفات [ 23 ] | نعم | لا |
| أوكاميل | 0 | لا | لا | محدد افتراضيا | مصفوفة من المصفوفات [ 23 ] | init [ 16 ] | ؟ |
| باسكال ، أوبجكت باسكال | نوع الفهرس [ 15 ] | نعم | نعم | يختلف [ 41 ] | نعم | يختلف [ 42 ] | بعض |
| بيرل | 0 | لا | نعم ( $[) | تم التحقق [ 36 ] | مصفوفة من المصفوفات [ 23 ] | نعم | لا [ 43 ] |
| راكو | 0 | لا | لا | تم التحقق [ 36 ] | نعم | نعم | نعم |
| PHP | 0 | نعم [ 44 ] | نعم [ 44 ] | تم التحقق [ 44 ] | نعم | نعم | نعم |
| PL/I | 1 | نعم | نعم | خياري | نعم | لا | نعم [ 45 ] |
| بايثون | 0 | لا | لا | تم التحقق | مصفوفة من المصفوفات [ 23 ] | نعم | لا [ 46 ] |
| لعبة تقمص الأدوار | 1 | لا | لا | ؟ | لا | لا | ؟ |
| R | 1 | ؟ | لا | غير خاضع للرقابة | نعم، وكذلك مصفوفة من المصفوفات | نعم | نعم |
| روبي | 0 | لا | لا | تم التحقق [ 36 ] | مصفوفة من المصفوفات [ 23 ] | نعم | ؟ |
| الصدأ | 0 | لا | لا | تم التحقق | مصفوفة من المصفوفات [ 23 ] | لا | ؟ |
| ساس | 1 | لا | لا | تم التحقق | مصفوفة من المصفوفات [ 23 ] | init [ 31 ] | ؟ |
| دارجة | 0 | ؟ | لا | تم التحقق | نعم | نعم | نعم |
| سكالا | 0 | لا | لا | تم التحقق | مصفوفة من المصفوفات [ 23 ] | init [ 16 ] | نعم (خريطة) |
| مخطط | 0 | ؟ | لا | تم التحقق | مصفوفة من المصفوفات [ 23 ] | init [ 16 ] | نعم (خريطة) |
| المحادثات القصيرة [ 17 ] | 1 | ؟ | لا | تم التحقق | مصفوفة من المصفوفات [ 23 ] | نعم [ 47 ] | ؟ |
| سويفت | 0 | لا | لا | تم التحقق | مصفوفة من المصفوفات [ 23 ] | نعم | ؟ |
| فيجوال بيسك (الكلاسيكي) | 0 أو 1 أو نوع الفهرس [ 48 ] | لا | نعم | تم التحقق | نعم | نعم | ؟ |
| فيجوال بيسك (.NET) | 0 أو نوع الفهرس [ 48 ] | لا | جزئي [ 24 ] | تم التحقق | نعم | نعم | نعم ( اختيار LINQ ) |
| لغة وولفرام | 1 | لا | لا | تم التحقق | نعم | نعم | نعم |
| ويندوز باور شيل | 0 | لا | لا | تم التحقق | نعم | كومة | ؟ |
| زوجو | 0 | لا | لا | تم التحقق | نعم | نعم | لا |
| XPath / XQuery | 1 | لا | لا | تم التحقق | مصفوفة من المصفوفات [ 4 ] [ 23 ] | نعم | نعم |
عمليات المصفوفات المتجهة
تدعم بعض لغات البرمجة المترجمة، مثل Ada و Fortran ، وبعض لغات البرمجة النصية، مثل IDL و MATLAB و S-Lang ، العمليات المتجهة على المصفوفات بشكل أصلي. على سبيل المثال، لإجراء عملية جمع عنصرًا بعنصر لمصفوفتين a و b لإنتاج مصفوفة ثالثة c ، يكفي كتابة
ج = أ + ب
إضافةً إلى دعم العمليات الحسابية والعلائقية المتجهة، تدعم هذه اللغات أيضًا الدوال الرياضية الشائعة مثل دالة الجيب. على سبيل المثال، إذا كان x عبارة عن مصفوفة، فإن
y = sin (x)
سينتج عن ذلك مصفوفة y عناصرها هي جيب القيم المقابلة للعناصر في المصفوفة x .
كما يدعم النظام عمليات الفهرسة المتجهة. على سبيل المثال،
زوجي = س ( 2 :: 2 )؛ فردي = س ( :: 2 )؛هذه هي الطريقة التي يمكن بها استخدام لغة فورتران لإنشاء مصفوفات من العناصر الزوجية والفردية لمصفوفة أخرى. ومن الاستخدامات الشائعة الأخرى للفهارس المتجهة عملية التصفية. لنفترض عملية قص لموجة جيبية حيث يتم ضبط السعات الأكبر من 0.5 على 0.5. باستخدام لغة S-Lang ، يمكن القيام بذلك عن طريق
y = sin(x); y[where(abs(y)>0.5)] = 0.5;
عمليات المصفوفات الرياضية
| مكتبة /لغة | يخلق | المحدد | ترانس | عنصر | عمود | صف | القيم الذاتية |
|---|---|---|---|---|---|---|---|
| APL | m←dims⍴x11x12... | -.×m | ⍉m | m[i;j]أوij⌷m | m[;j]أو أو أوj⌷[2]mj⌷⍤1⊢mj⌷⍉m | m[i;]أوi⌷m | ⌹⍠1⊢m |
| فورتران | m = RESHAPE([x11, x12, ...], SHAPE(m)) | TRANSPOSE(m) | m(i,j) | m(:,j) | m(i,:) | ||
| الفصل [ 49 ] | m = {...} | determinant(m) | transpose(m) | m[i-1][j-1] | shape(m,0) | shape(m,1) | eigen(output, m, NULL) |
جوليا ومكتبتها القياسية LinearAlgebra | m=[12;34]أو م = [ 1 2 3 4 ] | det(m) | transpose(m)أو
| m[i,j] | m[:,j] | m[i,:] | eigen(m).values |
| لغة ماثيماتيكا / وولفرام | {{x11,x12,...},...} | Det[m] | Transpose[m] | m[[i,j]] | m[[;;,j]] | m[[i]] | Eigenvalues[m] |
| MATLAB / GNU Octave | m = [...] | det(m) | m.' | m(i,j) | m(:,j) | m(i,:) | eig(m) |
| NumPy | m = mat(...) | linalg.det(m) | m.T | m[i-1,j-1] | m[:,j-1] | m[i-1,:] | linalg.eigvals(m) |
| R | m <- matrix(...)أوm <- array(...) | det(m) | t(m) | m[i, j] | m[, j] | m[i, ] | eigen(m) |
| دارجة | m = reshape([x11, x12, ...], [new-dims]) | m = transpose(m) | m[i,j] | m[*,j] | m[j,*] | ||
| SymPy | m = Matrix(...) | m.det() | m.T | m[i-1,j-1] | m.col(j-1) | m.row(i-1) | m.eigenvals() |
مراجع
- 1 2 "مواصفات لغة ECMAScript® 2025" .
- ↑ "البرمجة بلغة Lua : 11.1" .
- 1 2 "دليل Nim (الجزء الأول)" .
- يحتوي XPath / XQuery على نوعين من المصفوفات. التسلسلات (1،2،3) التي لا يمكن تداخلها، وفي إصدار XPath/XQuery 3.1، المصفوفات array { 1،2،3 } أو [1،2،3] التي يمكن تداخلها.
- 1 2 3 4 5 6 7 قد يكون الفهرس رقمًا سالبًا، مما يشير إلى عدد الأماكن المقابلة قبل نهاية المصفوفة.
- ↑ "Eiffeldoc : ARRAY" .
- 1 2 3 4 5 6 يتم أيضًا دعم وتعريف الشرائح للمصفوفات متعددة الأبعاد بشكل مشابه.
- 1 2 3 4 يتم دعمشرائح من هذا النوع
first:last:step - 1 2 3 4 last أو end قد يكون رقمًا سالبًا، مما يشير إلى التوقف عند عدد الأماكن المقابل قبل نهاية المصفوفة.
- 1 2 3 بشكل عام، بالنسبة للمصفوفات أحادية البعد، تسمح لغة بيرل ولغة S-Lang بشرائح من الشكل، حيثيمكن أن يكون نطاقًا كما هو مذكور في الحاشية 2 أو قائمة صريحة من المؤشرات، على سبيل المثال، ''، أو مزيج من الاثنين، على سبيل المثال،.
array[indices]indices[0,9,3,4]A[[[0:3]],7,9,[11:2:-3]]] - ↑ ميزة مقترحة في لغة C# 8.0 (اعتبارًا من 29 أغسطس 2019)
- ↑ "نطاقات - مقترحات لغة C# 8.0" . وثائق مايكروسوفت . مايكروسوفت . تم الاطلاع عليه بتاريخ 29 أغسطس 2019 .
- ↑ "دليل مرجع Lua 5.3" . www.lua.org . تم الاطلاع عليه بتاريخ 2022-04-02 .
- ↑ يمكن أن يكون نوع الفهرس عددًا صحيحًا أو عددًا مُعدَّدًا أو حرفًا، حسب اختيارك . للاطلاع على المصفوفات ذات أنواع الفهرس غير المضغوطة، انظر: المصفوفة الترابطية
- 1 2 يكون فهرس الأساس الافتراضي هو أدنى قيمة لنوع الفهرس المستخدم
- 1 2 3 4 5 6 7 8 9 10 11 لا يمكن اختيار الحجم إلا عند التهيئة وبعد ذلك يتم تثبيته.
- ١ ٢ ٣ ٤ ٥ هذه القائمة تقارن ميزات اللغات فقط. في كل لغة (حتى لغة التجميع )، من الممكن تحسين معالجة المصفوفات عبر مكتبات إضافية. تتميز هذه اللغة بتحسين معالجة المصفوفات كجزء من مكتبتها القياسية.
- ↑ يجب فهرسة مصفوفات ALGOL 68 (وتقطيعها) باستخدام النوع INT . ومع ذلك، يمكن استخدام دالة التجزئة لتحويل الأنواع الأخرى إلى INT . على سبيل المثال: name [ hash("string") ]
- ↑ يمكن أن تكون قيمة أساس الفهرسة 0 أو 1 وفقًا لمتغير النظام ⎕IO . قد تنطبق هذه القيمة على "مساحة العمل" بأكملها، أو يمكن تحديدها لوظيفة معرفة من قبل المستخدم أو لوظيفة أساسية واحدة باستخدام عامل التشغيل Variant ( ⍠ ).
- 1 2 نظرًا لأن لغة C لا تتحقق من حدود الفهارس، يمكن تعريف مؤشر إلى داخل أي مصفوفة يعمل بشكل رمزي كمصفوفة زائفة تستوعب الفهارس السالبة أو أي أصل فهرس صحيح.
- يسمح معيار C99 باستخدام المصفوفات ذات الأحجام المتغيرة؛ ومع ذلك، لا يوجد تقريبًا أي مترجم متاح لدعم هذه الميزة الجديدة.
- ١ ٢ ٣ ٤ ٥ لا يمكن تحديد حجم الذاكرة إلا عند التهيئة، وذلك عندما يتم تخصيص الذاكرة في الكومة (heap)، على عكس تخصيصها في المكدس (stack). ولا داعي لذكر هذه الملاحظة في اللغات التي تُخصص المصفوفات دائمًا في الكومة.
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 يسمح بمصفوفات من المصفوفات التي يمكن استخدامها لمحاكاة معظم جوانب المصفوفات متعددة الأبعاد - ولكن ليس جميعها .
- يمكن تغيير الأساس عند التهيئة باستخدام System.Array.CreateInstance ( الذي يُرجع System.Array )، ولكن ليس عند استخدام صيغة اللغة. المصفوفات ذات مؤشرات الأساس غير الصفرية ليست من نفس نوع المصفوفات ذات مؤشرات الأساس الصفرية، ولا يمكن التعامل معها باستخدام صيغة اللغة ( يجب استخدام دالتي GetValue و SetValue بدلاً من ذلك) أو تحويلها إلى نوع محدد ( T[] في C# ، أو T() في VB.NET)، مما يمنع حدوث أعطال في التعليمات البرمجية التي تفترض مؤشرات أساس صفرية.
- 1 2 يسمح بإنشاء مصفوفات ذات حجم ثابت في التعليمات البرمجية "غير الآمنة"، مما يسمح بتحسين التوافق مع لغات البرمجة الأخرى
- ↑ يمكن فهرسة مصفوفات COBOL باستخدام أنواع "INDEX"، وهي تختلف عن أنواع الأعداد الصحيحة.
- ↑ على الرغم من أن لغة كوبول لا تحتوي إلا على مصفوفات من المصفوفات، إلا أنه يمكن الوصول إلى عناصر المصفوفة باستخدام صيغة تشبه المصفوفات متعددة الأبعاد، حيث تقوم اللغة تلقائيًا بمطابقة الفهارس مع المصفوفات التي تحتوي على العنصر المشار إليه.
- ↑ توفر لغة كوبول طريقة لتحديد أن الحجم القابل للاستخدام للمصفوفة متغير، ولكن لا يمكن أن يتجاوز هذا الحجم الحد الأقصى المعلن عنه، وهو أيضًا الحجم المخصص.
- ↑ تسمح معظم تطبيقات لغة Common Lisp بتعطيل التحقق بشكل انتقائي
- ↑ المصفوفات الترابطية - لغة البرمجة D
- يمكن ضبط السلوك عبر مفاتيح المُصرّف. كما هو الحال في DMD 1.0، يتم التحقق من الحدود في وضع التصحيح وإلغاء التحقق منها في وضع الإصدار لتحسين الكفاءة .
- يدعم FreeBASIC كلاً من المصفوفات ذات الأطوال المتغيرة والمصفوفات ذات الأطوال الثابتة. تُنشأ المصفوفات المُعلنة بدون نطاق فهرس كمصفوفات ذات أطوال متغيرة، بينما تُنشأ المصفوفات ذات النطاق المُعلن كمصفوفات ذات أطوال ثابتة.
- ↑ توفر جميع تطبيقات فورتران تقريبًا خيارات فحص الحدود عبر مفاتيح المُصرّف. ومع ذلك، يكون فحص الحدود مُعطّلاً عادةً بشكل افتراضي لتحسين الأداء.
- ↑ على الرغم من أن نوع Array في لغة Golang ليس له حجم ديناميكي، إلا أن نوع البيانات Slice له حجم ديناميكي وهو أكثر شيوعًا في الاستخدام من المصفوفات.
- تسمح مصفوفات هاسكل ( Data.Array ) باستخدام أي نوع من أنواع Ix كنوع فهرس. لذا، يمكن تعريف نوع مخصص واستخدامه كنوع فهرس طالما أنه من أنواع Ix. كما أن مجموعات أنواع Ix هي أيضًا من أنواع Ix؛ ويُستخدم هذا عادةً لتنفيذ المصفوفات متعددة الأبعاد.
- في هذه اللغات ، يُمكن الوصول إلى فهرس مصفوفة أو الكتابة إليه إذا كان أكبر من أو يساوي طول المصفوفة، وستنمو المصفوفة تلقائيًا إلى ذلك الحجم. قد يبدو الأمر في البداية وكأن حدود المصفوفة غير مُدققة؛ إلا أن الحدود تُدقق لتحديد ما إذا كان ينبغي توسيع المصفوفة، ولا يوجد وصول غير آمن إلى الذاكرة كما هو الحال في لغة C.
- ↑ بتحديد فهرس أساسي، يمكن إنشاء مصفوفات بفهرس أساسي عشوائي. مع ذلك، افتراضيًا، لا يأخذ عامل حساب الطول في لغة Lua الفهرس الأساسي للمصفوفة في الحسبان عند حساب الطول. يمكن تغيير هذا السلوك عبر الدوال الوصفية.
- ↑ على الأقل بعدين (الأعداد العددية هي مصفوفات 1×1، والمتجهات هي مصفوفات 1×n أو n×1).
- ↑ "دليل مستخدم مُجمِّع لغة نيم" .
- ↑ "التحويل إلى متجه - عملية المتجهات المنطقية على نمط لغة R في لغة Nim" .
- ↑ تسمح العديد من التطبيقات ( Turbo Pascal و Object Pascal ( Delphi ) و Free Pascal ) بتغيير السلوك عن طريق مفاتيح المُصرّف والتوجيهات المضمنة.
- ↑ يختلف باختلاف التنفيذ. تسمح التطبيقات الأحدث ( فري باسكال ، أوبجكت باسكال ( دلفي )) بالمصفوفات الديناميكية القائمة على الكومة.
- ↑ لا تدعم أنواع بيانات المصفوفاتالقياسية في لغة بيرل العمليات المتجهة كما هو موضح هنا. ومع ذلك، يضيف ملحق لغة بيانات بيرل كائنات المصفوفات بهذه الإمكانية.
- ١ ٢ ٣ تُعتبر "المصفوفات" في لغة PHP مصفوفات ترابطية. يمكنك استخدام الأعداد الصحيحة والسلاسل النصية كمفاتيح (فهارس)؛ كما يمكن استخدام الأعداد العشرية كمفاتيح، ولكن يتم اقتطاعها إلى أعداد صحيحة. لا يوجد في الواقع ما يُسمى "فهرس أساسي" أو "حدود".
- ↑ يمكن اختيار الحجم عند تعريف المصفوفة، أو عند تخصيصها، وبعد ذلك يتم تثبيته.
- ↑ لا يدعم نوع المصفوفة القياسي في بايثون، ، العمليات المتجهة كما هو موضح هنا. ومع ذلك،يضيفامتداد numpy كائنات المصفوفة بهذه الإمكانية.
list - ↑ فئة Array ذات حجم ثابت، بينما فئة OrderedCollection ديناميكية
- كانت لغات البرمجة Microsoft QBASIC و QuickBASIC وVisual Basic وVBA تدعم تحديد الخيار Option Base 1 ، مما كان يجعل جميع المصفوفات في الوحدة تبدأ افتراضيًا من 1 بدلًا من 0.وقد تم إيقاف دعم الخيار Option Base في Visual Basic (.NET) . في العديد من تطبيقات Microsoft BASIC، يمكن تحديد أبعاد المصفوفات باستخدام DIMension لتحديد قيم الفهرس الدنيا والقصوى (على سبيل المثال، DIM MyArray(2 to 50) AS STRING سيبدأ الفهرس الأول من 2 بدلًا من القيمة الافتراضية).
- ↑ الميزات العددية للفصل
- المصفوفات
- مقارنات لغات البرمجة
