نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

حلقة until في Bash

كيفية عمل حلقة until تشبه هذه الحلقةُ التكرارية حلقةَ while باستثناء أن الحلقة هنا تُنفَّذ إلى أن يُنفَّذ أمر اختباري TEST-COMMAND بنجاح، فتظل الحلقة عاملة طالما كان تنفيذ الأمر الاختباري يفشل. والبنية اللغوية لها تشبه البنية اللغوية لحلقة while : until TEST-COMMAND; do CONSEQUENT-COMMANDS; done وحالة الإعادة لهذه الحلقة هي نفسها حالة الخروج لآخر أمر يُنفَّذ من الأوامر التابعة CONSEQUENT-COMMANDS أو تكون صفرًا إن لم يُنفَّذ أي أمر. وقد يكون الأمر الاختباري TEST-COMMAND أي أمر يمكن أن يخرج بحالة نجاح أو فشل، ...

الدوال المساعدة في الحلقات التكرارية

تقدّم بايثون مجموعة من الدوال والتوابع التي تسهّل عملية إنشاء الحلقات التكرارية والاستفادة منها بصورة فعّالة في القواميس والقوائم وغيرها. التابع items()‎ عند المرور على عناصر قاموس، يمكن الحصول على المفتاح والقيمة المرتبطة به في نفس الوقت باستخدام التابع items()‎: >>> knights = {'gallahad': 'the pure', 'robin': 'the brave'} >>> for k, v in knights.items(): ...     print(k, v) ... gallahad the pure robin the brave الدالة enumerate()‎ يمكن الحصول على موقع الفهرس والقيمة المرتبطة به في نفس الوقت عند المرور على عناصر تسلسل معيّن ...

المهام التكرارية في Bash

ستتعلم في هذا القسم كيف يمكن للأوامر المتكررة أن تندمج في حلقات تكرارية، وكيف تُبنى الحلقات التكرارية باستخدام عبارات for أو while أو until إحداها أو جميعها معًا، فحلقة for تنفذ مهمة ما عددًا محددًا من المرات، وإن كنت لا تعرف كم عدد مرات تنفيذ الأمر فاستخدم عبارة until أو while لتحديد متى يجب أن تتوقف الحلقة. ويمكن مقاطعة الحلقات أو إعادة تكرارها باستخدام عبارتي break و continue، كما يمكن استخدام ملف كمُدخَل لحلقة عبر معامل إعادة توجيه المدخلات، كذلك ...

Bash/Topics

صدفة Bash وبرامج Bash البرامج الشائعة للصَّدَفة وظائف الصدفة وما تفعله إضافة إلى أنواعها المختلفة (sh، bash، csh، ... ) مزايا صدفة Bash استعراض لأهم مزايا صدفة Bash، مثل الصور المختلفة لاستدعاءات الصدفة، والتعابير الحسابية والشرطية والصدفة المحظورة، وكذلك الأوامر البديلة والمصفوفات، ... . تنفيذ الأوامر في Bash توضيح لما يحدث عند تنفيذ الأوامر في صدفة Bash، واستعراض لأهم الأوامر المُضمَّنة فيها. وحدات البناء الأساسية شرح للوحدات الأساسية التي تشكل صدفة Bash، مثل الأوامر والدوال والمعامِلات والتوسعات والبنية اللغوية، إضافة ...

الأفخاخ في Bash

عام قد تجد حالات لا تريد فيها من يستخدم شيفراتك النصية أن يخرج قبل الوقت المحدد عن طريق اختصارات لوحة المفاتيح حين تحتاج إلى مدخلات مثلًا أو عند القيام بعملية تنظيف، ويمكن استخدام أمر trap ليلتقط إشارات لوحة المفاتيح تلك، ويمكن برمجته مسبقًا لينفِّذ قائمة أوامر عند التقاط تلك الإشارات. قواعد أمر trap واضحة ومباشرة: trap [الإشارات] [الأوامر] هذا يجعل أمر trap يلتقط الإشارات المُعطاة له، والتي قد تكون أسماء إشارات مع سابقة SIG أو بدونها، أو تكون أرقام إشارات. وإن ...

حلقة for في Bash

كيفية عمل حلقة for التكرارية حلقة for هي أول وحدة تكرارية في الصدفة من بين ثلاث وحدات، وتسمح تلك الحلقة بتخصيص قائمة من القِيَم، وتُنفَّذ قائمة من الأوامر لكل قيمة من تلك القيم. والبنية اللغوية لهذه الحلقة التكرارية هي كالآتي: for NAME [in LIST ]; do COMMANDS; done إن لم تكن [ in LIST] موجودة فيتم استبدال @$ in بها، وتنفذ for الأوامر (COMMANDS) مرة واحدة لكل معامل موضعي مضبوط على قيمة، انظر المتغيرات في Bash وفحص وسائط سطر الأوامر. وتكون ...

إعادة التوجيه والحلقات في Bash

إعادة توجيه المُدخلات يمكن تحديد ملف به تعليمات تُستخدم للتحكم في حلقة تكرارية بدلًا من التحكم فيها عن طريق تفقد نتيجة أمر ما أو عن طريق تدخل المستخدم يدويًا، وعادة ما يُستخدم أمر read في هذه الحالة كأمر متحكِّم، ويستمر تنفيذ الحلقة طالما تُغذَّى الحلقة التكرارية بأسطر مدخلات من ذلك الملف، وبمجرد قراءة جميع الأسطر فإن الحلقة تتوقف وتخرج. وبما أن بنية الحلقة التكرارية تُعد بنية لأمر واحد (مثل while TEST-COMMAND; do CONSEQUENT-COMMANDS; done) فإن إعادة التوجيه يجب أن تحدث ...

الأمران Break و Continue

أمر Break تُستخدم عبارة Break للخروج من الحلقة التكرارية الحالية قبل موعد خروجها الأصلي، ويحدث هذا في الحالات التي لا تعرف فيها عدد المرات التي يجب أن تنفذها الحلقة، كأن تعتمد على إدخال المستخدم مثلًا. يوضح المثال التالي حلقة while يمكن مقاطعتها، وهو مثال مُطوَّر من برنامج wisdom.sh من المثال المشروح في استخدام مُدخلات لوحة المفاتيح للتحكم في حلقة while : #!/bin/bash # هذا البرنامج يطبع أمثالًا ونصائح # يمكنك الخروج الآن بطريقة أفضل. FORTUNE=/usr/games/fortune while true; do echo "On which topic do you want advice?" echo ...

تطوير برامج Bash جيدة

خصائص الشيفرات الجيدة هذا الشرح عن آخر وحدة بناء للصدفة وهي الشيفرات النصية. إليك بعض الأمور التي يجب أن تراعيها قبل أن نكمل: يجب أن تعمل الشيفرة بدون أخطاء. يجب أن تنفذ المهمة التي كُتبت لها. يجب أن يكون منطق البرنامج محددًا وظاهرًا. لا تنفذ الشيفرة مهامًا غير ضرورية. ينبغي أن تكون الشيفرة قابلة لإعادة استخدامها. الهيكل Structure يجب أن يكون هيكل شيفرة الصدفة مرنًا للغاية، فرغم أن bash بها حرية ظاهرة، إلا أنه يجب تحقيق منطق صحيح وتحكم في ...

وحدات البناء الأساسية في Bash

وحدات بناء الصدفة البنية اللغوية للصدفة (Shell Syntax) إن كان المُدخَل ليس تعليقًا (comment) فإن الصدفة تقرؤه وتقسمه إلى كلمات ومعامِلات مطبِّقة قواعد الاقتباس (quoting rules) لتحدد معنى كل مِحرَف (character)، ثم تُترجَم تلك الكلمات والمعامِلات إلى أوامر وعناصر أخرى ينتج عنها حالة الخروج المناسبة للعملية. ولا تُطبَّق آلية fork-exec التي ذكرناها في تنفيذ الأوامر في Bash إلا بعد أن تحلل الصدفة المُدخلات وفقًا للخطوات الآتية: تقرأ الصدفة المُدخلات من ملف، سواء من نص (string) أو من طرفية المستخدم. يُقسَّم ...

التابع loop‎ الخاص بالصنف Kernel في روبي

ينفذ التابع loop الكتلة البرمجية المعطاة بشكل متكرر. في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف enumerator بدلاً من ذلك. يؤدي اطلاق الاستثناء StopIteration داخل الكتلة إلى إيقاف الحلقة التكرارية. في هذه الحالة، سيعيد التابع loop قيمة "النتيجة" المخزنة في الاستثناء. البنية العامة loop { block } loop→ an_enumerator‎ القيمة المعادة يؤدي اطلاق الاستثناء StopIteration داخل الكتلة إلى إعادة قيمة "النتيجة" المخزنة في الاستثناء. أما في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف enumerator. أمثلة مثال على ...

الدالة loop()‎ في أردوينو

بعد إنشاء الدالة setup()‎ التي تهيئ وتضبط القيم الأولية المراد استعمالها، تعمل الدالة loop()‎ على «تكرار» الشيفرة المكتوبة بداخلها -كما يشير اسمها بالضبط- على التوالي متيحةً بذلك لبرنامجك بالتحكم بلوحة أردوينو والتغيُّر والاستجابة للبيئة والعناصر المرتبطة بها. البنية العامة void loop() { // تكتب الشيفرة المراد تكرارها هنا } أمثلة مثالٌ على ربط زرٍ بالرجل 3 وإرسال الحرف "H" عند ضغطه أو الحرف "L" كل ثانية عبر واجهة التخاطب التسلسلية: int buttonPin = 3; // واجهة التخاطب التسلسلية وزر الإدخال setup تهيئ ...

الكلمة return المفتاحية في أردوينو

تقاطع الكلمة return المفتاحية تنفيذ أيَّ دالةٍ وتعيد قيمةً من الدالة إلى من استدعاها إن حدُّدت. البنية العامة return; return value; // value في هذه الصياغة، ستعاد القيمة يمكن أن تكون القيمة value المعادة أيُّ نوعٍ من أنواع المتغيرات أو الثوابت المراد إعادته إلى من استدعى الدالة. أمثلة يوضح المثال التالي كيفية إنشاء دالة توازن القيمة المقاسة من حساس مع عتبة معينة: int checkSensor(){ if (analogRead(0) > 400) { return 1; ...

الحلقة for التكرارية في أردوينو

تُستعمَل الحلقة for لتكرار كتلة برمجية معينة من الشيفرة عددًا محدَّدًا من المرات. يُستعمَل في هذه الحلقة عادةً عدادٌ لتتبع عدد مرات تكرار الشيفرة ومقاطعتها عند الوصول إلى عدد محدَّد. يمكن استعمال الحلقة for مع أية عملية تكرارٍ، وتُستعمَل بكثرة مع المصفوفات لتنفيذ عملية معينة على عناصرها التي قد تكون بيانات عادية أو أرجل معينة. البنية العامة for (خطوة ;الشرط ;التهيئة الأولية) { // الكتلة البرمجية المراد تكرارها; } تنفَّذ عملية التهيئة الأولية مرةً واحدةً فقط في بداية تنفيذ الحلقة. يُتحقَّق من الشرط ...

تعابير التحكم في روبي

لدى لغة روبي العديد من الطرق للتحكم في مسار تنفيذ البرنامج، وكل البنى المذكورة هنا تعيد قيمةً. في الاختبارات الشرطيّة في بنى التحكّم، تعدّ القيمة nil و false على أنّها قيم خطأ، بينما تُعدُّ القيمة true وأيّ كائن آخر على أنه قيم صحيحة. وفي هذا التوثيق، سنستخدم true للتعبير عن القيم الصحيحة و false للتعبير عن القيم الخطأ. بنية If الشرطية أبسط أشكال بنية if الشرطيّة يحتوي على جزأين، الاختبار الشّرطي، والجزء التّنفيذي then. هذه بنية if بسيطة: if true ...

التابع Queue.close في روبي

يغلق التابع close الطابور الذي استُدعي معه. لا يمكن إعادة فتح طابور الانتظار المُغلق. بعد اكتمال استدعاء طلب الإغلاق، سيكون التالي صحيحًا: سيعيد التابع ?closed  القيمة true. سيُتجاهل التابع close إن استدعي مرة أخرى مع نفس الطابور. استدعاء التابع enq أو التابع push أو المعامل>>  سيرمي استثناءً. عندما يُعيد التابع ?empty  القيمة false، سيُعيد استدعاء التابع deq أو pop أو shift كائنًا من طابور الانتظار كالمعتاد. الاستثناء ClosedQueueError موروثٌ من الصنف StopIteration، لذلك يمكنك كسر كتلة حلقة التكرار (loop block). البنية العامة close أمثلة مثالٌ عن ...

قوالب Blade في Laravel

مقدمة يقدم Laravel محرّك قولبةٍ بسيطاً لكن قويٌّ و فعّال هو Blade. على خلاف محرّكات PHP أخرى، لا يمنع Blade المستخدم من استعمال شيفرات PHP في الواجهة، بل إنّه يحوِِّل صفحات Blade إلى شيفرة PHP ويخزِّنها تخزينًا مؤقتًا إلى حين تغييرها. ممّا يعني أنّ Blade لا يتطلب أيّ جهد أو وقت إضافي من التطبيق. تنتهي صفحات Blade بالامتداد blade.php. وتوجد عادة في مجلد resources/views. توريث القوالب تعريف التخطيط إنّ من الفوائد الأساسية لاستخدام Blade هي توريث القوالب (template inheritance) واستخدام ...

قوالب Blade في Laravel

مقدمة يقدم Laravel محرّك قولبةٍ بسيطاً لكن قويٌّ و فعّال هو Blade. على خلاف محرّكات PHP أخرى، لا يمنع Blade المستخدم من استعمال شيفرات PHP في الواجهة، بل إنّه يحوِِّل صفحات Blade إلى شيفرة PHP ويخزِّنها تخزينًا مؤقتًا إلى حين تغييرها. ممّا يعني أنّ Blade لا يتطلب أيّ جهد أو وقت إضافي من التطبيق. تنتهي صفحات Blade بالامتداد blade.php. وتوجد عادة في مجلد resources/views. توريث القوالب تعريف التخطيط إنّ من الفوائد الأساسية لاستخدام Blade هي توريث القوالب (template inheritance) واستخدام ...

الدالة ‎until()‎ في Kotlin

تنشئ الدالة ‎until()‎ مجالًا (range) تصاعديًا يبدأ القيمة التي استُدعيت معها وحتى القيمة الممرّرة إليها (لا تدخل هذه القيمة ضمن المجال). البنية العامة infix fun Int.until(to: Byte): IntRange infix fun Long.until(to: Byte): LongRange infix fun Byte.until(to: Byte): IntRange infix fun Short.until(to: Byte): IntRange infix fun Long.until(to: Int): LongRange infix fun Int.until(to: Short): IntRange infix fun Long.until(to: Short): LongRange infix fun Byte.until(to: Short): IntRange infix fun Short.until(to: Short): IntRange تنشئ الدالة ‎until()‎ مجالًا تصاعديًا يبدأ من القيمة التي استُدعيت معها وينتهي عند ...

مجال المتغيرات في أردوينو

تملك المتغيرات في لغة C، التي اشتقَّت لغة أردونيو منها، خاصيةً تدعى scope (مجال) تحدِّد مجال استعمال هذه المتغيرات ومن يمكنه الوصول إليها. هذا يختلف عن الإصدارات الحديثة للغاتٍ مثل BASIC التي يكون فيها المتغير عامًّا (global) دومًا. المتغيرات العامة يمكن أن تراها جميع الدوال في البرنامج. من جهة أخرى، تكون المتغيرات المحلية (local variables) مرئية في الدالة التي عُرَّفت ضمنها فقط وغير متاحة للدوال الأخرى. في بيئة أردونيو IDE، أي متغيِّر يُعرَّف خارج دالةٍ (مثل الدالة setup()‎ والدالة loop()‎ ...

الدالة CharSequence.asSequence()‎ في Kotlin

تنشئ الدالة asSequence()‎ نسخةً من الواجهة Sequence التي تغلّف سلسلة المحارف التي استُدعيت معها لأجل استعمالها في الحلقات التكرارية، إذ تعيد كل محرف من محارفها عندما تُستخدَم في حلقات التكرار (مثل حلقة for). البنية العامة fun CharSequence.asSequence(): Sequence<Char> القيم المعادة كائن من الصنف Sequence التي تغلّف سلسلة المحارف المعطاة لاستعمالها في الحلقات التكرارية. أمثلة تعرّف الشيفرة التالية سلسلة نصية باسم str ثم تستدعي الدالة asSequence()‎ معها وتُحيل القيمة المُعادة إلى المتغير seq ثم نطبَع الناتج باستخدام الحلقة التكرارية for: fun main(args: Array<String>) ...

for...in في JavaScript

التعبير البرمجي for...in يُنشِئ حلقة تكرار تمر على الخاصيات القابلة للإحصاء (enumerable properties) التابعة لأحد الكائنات، ويمكن تنفيذ تعابير برمجية لكل خاصية من خاصيات الكائن. البنية العامة for (variable in object) { //... } variable ستُنسَد قيمة الخاصية مختلفة لهذا المتغير في كل دورة. object الكائن الذي سنمر على الخاصيات القابلة للإحصاء (enumerable properties) التابعة له. الوصف حلقة التكرار for...in تمر على الخاصيات القابلة للإحصاء (enumerable properties) فقط، فالكائنات المُنشَأة من الدوال البانية المُضمَّنة في اللغة مثل Array و Object ...

الدالة CharSequence.asIterable()‎ في Kotlin

تنشئ الدالة asIterable()‎ نسخةً من الواجهة Iterable التي تغلّف سلسلة المحارف التي استُدعيت معها لاستعمالها في الحلقات التكرارية، إذ تعيد محارفها عندما تُستخدَم في حلقات التكرار (مثل for). البنية العامة fun CharSequence.asIterable(): Iterable<Char> القيم المعادة تعاد نسخة من الواجهة Iterable التي تغلّف سلسلة المحارف المعطاة لاستعمالها في الحلقات التكرارية. أمثلة تعرّف الشيفرة التالية سلسلة نصية باسم str ثم تستدعي الدالة asIterable()‎ معها وتحيل القيمة المُعادة إلى المتغير iter لطباعة كل محرف من محارف تلك السلسلة باستخدام الحلقة التكرارية for: fun main(args: Array<String>) ...

goto في PHP

(PHP 5 >= 5.3.0, PHP 7) يمكن استخدام عامل goto للانتقال إلى قسم آخر في البرنامج، وتعيّن نقطة الانتقال هذه بواسطة وسم متبوعٍ بنقطتين رأسيتين (:)، وتكون طريقة الانتقال باستخدام العامل goto متبوعًا بالوسم المراد الانتقال إليه. هناك بعض القيود المفروضة على استخدام goto، إذ يجب أن يكون الوسم الهدف في نفس الملف ونفس السياق (context)، بمعنى أنّه لا يمكن الانتقال من داخل الدالة أو التابع إلى الخارج كما لا يمكن الانتقال إلى الداخل. لا يمكن أيضًا الانتقال إلى أي ...

goto في PHP

(PHP 5 >= 5.3.0, PHP 7) يمكن استخدام عامل goto للانتقال إلى قسم آخر في البرنامج، وتعيّن نقطة الانتقال هذه بواسطة وسم متبوعٍ بنقطتين رأسيتين (:)، وتكون طريقة الانتقال باستخدام العامل goto متبوعًا بالوسم المراد الانتقال إليه. هناك بعض القيود المفروضة على استخدام goto، إذ يجب أن يكون الوسم الهدف في نفس الملف ونفس السياق (context)، بمعنى أنّه لا يمكن الانتقال من داخل الدالة أو التابع إلى الخارج كما لا يمكن الانتقال إلى الداخل. لا يمكن أيضًا الانتقال إلى أي ...

for في JavaScript

التعبير البرمجي for يُنشِئ حلقة تكرار تتألف من ثلاثة تعبيرات برمجية اختيارية تحيط بها أقواس وتفصل بينها فواصل منقوطة، ويليها تعبيرٌ برمجيٌ (وعادةً يكون قسمًا كتليًا [block statement]) سيُنفَّذ في كل تكرار للحلقة. البنية العامة for ([initialization]; [condition]; [final-expression]) statement initialization تعبير (يتضمن تعابير الإسناد) أو تصريح عن متغير، ويُستخدَم عادةً لتهيئة متغير العدّاد؛ وهذا التعبير قد يُصرِّح اختياريًا عن متغيرات جديدة باستخدام الكلمة المحجوزة var؛ وهذه المتغيرات ليست محليةً وتابعةً لحلقة التكرار، وإنما ستكون موجودةً في نفس ...

continue في JavaScript

التعبير البرمجي continue يؤدي إلى تجاوز تنفيذ التعابير البرمجية في التكرار الحالي (iteration) في حلقة التكرار الحالية أو حلقة التكرار المسماة (عبر لافتة)، وسيستمر تنفيذ الحلقة بدءًا من التكرار التالي. البنية العامة continue [label]; label مُعرِّفٌ اختياريٌ مرتبطٌ بلافتة التعبير البرمجي. الوصف على النقيض من التعبير break، لن يؤدي التعبير continue إلى إنهاء تنفيذ الحلقة كليًّا، وإنما: في حلقات while سيؤدي إلى الانتقال إلى الشرط. في حلقات for سيؤدي إلى الانتقال إلى تعبير تحديث معاملات حلقة التكرار. يمكن أن يضمّ ...

الدالة sizeof()‎ في أردوينو

تعيد الدالة sizeof()‎ الحجم المحجوز من الذاكرة بالبايت لمتغير أو مصفوفة معيَّنة. البنية العامة sizeof(variable) المعاملات variable متغير من أي نوع من البيانات يراد معرفة حجمه، أو المصفوفة المراد معرفة حجمها الحالي. القيم المعادة تعاد عدد البايتات التي يحجزها المتغير أو المصفوفة variable. أمثلة الدالة sizeof()‎ مفيدةٌ جدًا في التعامل مع المصفوفات (مثل مصفوفات السلاسل النصية) المعرَّضة لتغيُّرٍ في الحجم دون التأثير على أجزاء أخرى من البرنامج. يطبع المثال التالي كل محرف من محارف سلسلة نصية على حدة. جرب تنفيذ ...

حلقة while في Bash

كيفية عمل حلقة while تسمح حلقة while التكرارية بالتنفيذ المتكرر لقائمة أوامر طالما أن الأمر المتحكم في حلقة while يُنفَّذ بنجاح (حالة خروجه صفر). والبنية اللغوية لهذه الحلقة هي: while CONTROL-COMMAND; do CONSEQUENT-COMMANDS; done حيث يرمز CONTROL-COMMAND -وهو الأمر الذي سيتحكم في الحلقة- إلى أي أمر يخرج بحالة فشل أو نجاح، بينما قد تكون CONSEQUENT-COMMANDS -وهي الأوامر التي ستُكرَّر- أي برنامج أو برنامج للصدفة أو أحد بُنى الصدفة المختلفة. وتخرج الحلقة فور فشل الأمر المتحكِّم فيها، وإن كانت الحلقة في برنامج ...

الدالة CharSequence.iterator()‎ في Kotlin

تنشئ الدالة iterator()‎ عنصرًا تكراريًّا (iterator) لتكرار بنيةٍ (block) برمجيةٍ على كافّة محارف السلسلة المستدعاة معه. البنية العامة operator fun CharSequence.iterator(): CharIterator وجود الكلمة المفتاحية operator يدل على أنّ هذه الدالة مرتبطٌة بمعامل التكرار (iteration operator، اطلع على المثال في الأسفل). القيم المعادة يعاد عنصرٌ تكراريٌّ (iterator) من أجل تكرار بنيةٍ (block) برمجيةٍ معينة على كافّة عناصر المصفوفة المعطاة. أمثلة مثالٌ على استعمال الدالة iterator()‎: fun main(args: Array<String>) { val str = "Hsoub" val ...

JavaScript/Topics/Statements

في هذا القسم جميع التعابير البرمجية الموجودة في لغة JavaScript. التحكم في التنفيذ block تُستخدَم الأقسام الكتلية لتجميع عدِّة تعابير برمجية معًا، ويُعرَّف القسم بزوجين من الأقواس المعقوفة {}. break يإنهاء حلقة التكرار الحالية أو التعبير switch أو label، وستنقل تنفيذ البرنامج إلى التعبير البرمجي الذي يلي التعبير الذي انتهى. continue تجاوز تنفيذ التعابير البرمجية في التكرار الحالي (iteration) في حلقة التكرار الحالية أو حلقة التكرار المسماة (عبر لافتة)، وسيستمر تنفيذ الحلقة بدءًا من التكرار التالي. Empty يُستخدَم لتجنب توفير تعبير برمجي في ...

ملفات تهيئة الصدفة

ملفات الإعدادات على مستوى النظام System-wide Configuration files الملف etc/profile/ تقرأ Bash التعليمات الموجودة في etc/profile/ إن استدعيْت بشكل تفاعلي عبر خيار login-- أو إن استدعيْت كـ sh ، تضبط تلك التعليمات عادة المتغيرات PATH - USER - MAIL - HOSTNAME - HISTSIZE ، وهي متغيرات تابعة للصدفة. كذلك تُضبط قيمة umask في etc/profile/ على بعض الأنظمة، أما في بعضها الآخر فإن هذا الملف يحتوي على موجّهات (pointers) لملفات الإعدادات الأخرى مثل: ملف etc/inputrc/ ، وهو ملف تهيئة على مستوى ...

اللافتات label في JavaScript

التعبير البرمجي label يمكن أن يُستخدَم مع التعبير البرمجي break أو continue، وهو يوضع قبل التعابير البرمجية لإضافة لافتة (مُعرِّف) لها يمكن الإشارة إليها. لاحظ أنَّ من غير الشائع استخدام حلقات تكرار مع لافتات (labels)، وتُستخدَم عادةً الدوال بدلًا القيام بقفزات بين حلقات التكرار. البنية العامة label : statement label لافتة للتعبير البرمجي، ويمكن أن تكون أيّ مُعرِّف في JavaScript صالح (وليس كلمةً محجوزةً). statement التعابير البرمجية التي ستُضاف اللافتة إليها، ويمكن استخدام التعبير البرمجي break مع أيّ ...

continue في PHP

(PHP 4, PHP 5, PHP 7) تستخدم continue في الحلقات التكرارية لتجاوز ما يأتي بعدها في الحلقة التكرارية والاستمرار في تنفيذ الشيفرة حسب الشرط المعتمد في الحلقة ثم الانتقال إلى بداية الدورة التالية. تأخذ continue معاملًا عدديًّا اختياريًا يمكن من خلاله تحديد عدد الحلقات التكرارية المحيطة بها والتي يجب تجاوزها إلى النهاية. القيمة الافتراضية هي 1 والتي تعني الانتقال إلى نهاية الحلقة الحالية. ملاحظة: تعدّ عبارة switch في PHP من الحلقات التكرارية عند الحديث عن continue. تسلك continue سلوك break ...

continue في PHP

(PHP 4, PHP 5, PHP 7) تستخدم continue في الحلقات التكرارية لتجاوز ما يأتي بعدها في الحلقة التكرارية والاستمرار في تنفيذ الشيفرة حسب الشرط المعتمد في الحلقة ثم الانتقال إلى بداية الدورة التالية. تأخذ continue معاملًا عدديًّا اختياريًا يمكن من خلاله تحديد عدد الحلقات التكرارية المحيطة بها والتي يجب تجاوزها إلى النهاية. القيمة الافتراضية هي 1 والتي تعني الانتقال إلى نهاية الحلقة الحالية. ملاحظة: تعدّ عبارة switch في PHP من الحلقات التكرارية عند الحديث عن continue. تسلك continue سلوك break ...

الدالة asIterable()‎ في Kotlin

تُنشِئ الدالة asIterable()‎نسخةً تكراريّةً (iterable instance) تُغلّف (wrap) المصفوفة الأصلية وتعيد عناصرَها عندما تُستخدَم في حلقات التكرار (مثل for). البنية العامة fun <T> Array<out T>.asIterable(): Iterable<T> fun ByteArray.asIterable(): Iterable<Byte> fun ShortArray.asIterable(): Iterable<Short> fun IntArray.asIterable(): Iterable<Int> fun LongArray.asIterable(): Iterable<Long> fun FloatArray.asIterable(): Iterable<Float> fun DoubleArray.asIterable(): Iterable<Double> fun BooleanArray.asIterable(): Iterable<Boolean> fun CharArray.asIterable(): Iterable<Char> ويمكن استدعاء الدالة asIterable()‎عبر مجموعة (collection) لتُعيدها على شكل عنصر تكراريّ (iterable): inline fun <T> Iterable<T>.asIterable(): Iterable<T> كما ويمكن استدعاء الدالة asIterable()‎عبر عنصر map وستعيد نسخةً تكراريةً (iterable instance) تُغلّف عنصر map الأصلي وتعيد مداخله (entries) ...

الدالة withIndex()‎ في Kotlin

تعيد الدالة withIndex()‎ مجموعة تكرارية خاملة (lazy Iterable) من القيم المُفهرسة لكل محرف من محارف السلسلة التي استُدعيت معها. البنية العامة fun CharSequence.withIndex(): Iterable<IndexedValue<Char>> القيم المعادة تعاد مجموعة تكرارية خاملة (lazy Iterable) من القيم المُفهرسة لكل محرف من محارف السلسلة المعطاة. أمثلة مثالٌ على استعمال الدالة ()withIndex مع سلسلة نصية ثم إسناد الناتج الذي تعيده إلى المتغير iter، لاستخدامه في حلقة تكرارية for: fun main(args: Array<String>) { val iter = "hsoub".withIndex() for (x in iter) println(x) // المخرجات ...

المعامل % في أردوينو

يحسب المعامل % باقي قسمة عددين أحدهما على الآخر. إحدى فوائد استعمال هذا المعامل هي إبقاء قيمة متغير ضمن مجال محدد (مثل حجم مصفوفة). البنية العامة remainder = dividend % divisor; المعاملات remainder متغير. الأنواع المسموح بها هي: عدد صحيح، أو عدد عشري، أو عدد عشري مضاعف. dividend متغير أو ثابت يمثل المقسوم. الأنواع المسموح بها هي: عدد صحيح. divisor متغير أو ثابت يمثل المقسوم عليه. الأنواع المسموح بها هي: عدد صحيح. أمثلة مثالٌ على استعمال المعامل %: int x ...

المعامل % في أردوينو

يحسب المعامل % باقي قسمة عددين أحدهما على الآخر. إحدى فوائد استعمال هذا المعامل هي إبقاء قيمة متغير ضمن مجال محدد (مثل حجم مصفوفة). البنية العامة remainder = dividend % divisor; المعاملات remainder متغير. الأنواع المسموح بها هي: عدد صحيح، أو عدد عشري، أو عدد عشري مضاعف. dividend متغير أو ثابت يمثل المقسوم. الأنواع المسموح بها هي: عدد صحيح. divisor متغير أو ثابت يمثل المقسوم عليه. الأنواع المسموح بها هي: عدد صحيح. أمثلة مثالٌ على استعمال المعامل %: int x ...

الكلمة continue المفتاحية في أردوينو

تتخطى الكلمة continue المفتاحية الشيفرة التي تليها في حلقة التكرار (مثل الحلقات for، أو while، أو do...while التكرارية) إلى عملية التحقق من التعبير الشرطي لتلك الحلقة ثم يُستأنَف عمل حلقة التكرار بشكل طبيعي. عمل هذه العبارة شبيه بإحداث قفزة في حلقة التكرار لتخطي تنفيذها عند تحقق شرط معين. البنية العامة continue; أمثلة في الشيفرة التالية، ستُكتب القيمة من 0 إلى 255 على الرجل PWMpin مع تخطي كتابة القيم التي تقع في المجال 41 إلى 119: for (x = 0; x ...

استخدام البُنية case

حالات مُبسطة قد يكون من السهل اللجوء إلى استخدام عبارات if لبداهة أسلوبها، لكن تلك السهولة تنقلب إلى حيرة حين تواجه بضعة اختيارات مختلفة لإجراءات محتملة يجب اتخاذها، ولمثل تلك الحالات نستخدم عبارة case، وبنيتها اللغوية هي كما يلي: case EXPRESSION in CASE1) COMMAND-LIST;; CASE2) COMMAND-LIST;; ... CASEN) COMMAND-LIST;; esac وتطابق كل حالة في التعبير السابق نمطًا (pattern)، وتُنفَّذ الأوامر التي في قائمة COMMAND-LIST لأول تطابق، ويُستخدم محرف الأنبوب | لفصل الأنماط المتعددة، وينهي معامِل ( قائمة الأنماط، ويُطلق اسم البند ...

while في JavaScript

التعبير البرمجي while يُنشِئ حلقة تكرار تُنفِّذ تعبيرًا برمجيًا معيّنًا طالما كان الشرط محققًا (true)، وسيتم التحقق من الشرط قبل تنفيذ التعبير البرمجي. البنية العامة while (condition) statement condition تعبير سيتم التحقق من صحته قبل كل تكرار، وإذا كانت قيمة الشرط condition هي true فسيُنفَّذ التعبير البرمجي statement، وعندما تصبح قيمة الشرط condition مساويةً للقيمة false فسينتقل التحكم إلى التعبير البرمجي الذي يلي حلقة while. statement  التعبير البرمجي الذي سيُنفَّذ طالما كان الشرط محققًا؛ ولتنفيذ أكثر من تعبير برمجي ...

الدالة asSequence()‎ في Kotlin

تُنشِئ الدالة asSequence()‎ نسخةً (instance) من النوع sequence والتي تُغلّف المصفوفة الأصلية وتعيد عناصرها عندما تُستخدَم في حلقات التكرار (مثل حلقة for). البنية العامة تختلف بحسب نوع المصفوفة التي تُستدعَى عبرها: fun <T> Array<out T>.asSequence(): Sequence<T> fun ByteArray.asSequence(): Sequence<Byte> fun ShortArray.asSequence(): Sequence<Short> fun IntArray.asSequence(): Sequence<Int> fun LongArray.asSequence(): Sequence<Long> fun FloatArray.asSequence(): Sequence<Float> fun DoubleArray.asSequence(): Sequence<Double> fun BooleanArray.asSequence(): Sequence<Boolean> fun CharArray.asSequence(): Sequence<Char> ويمكن استدعاء الدالة asSequence()‎عبر مجموعة (collection) وستعيد نسخةً من النوع sequence والتي تُغلّف المجموعة التي استُدعيت عبرها وتعيد عناصرها عندما تُستخدَم ...

المتغير التكراري في PHP

إن المتغير التكراري Iterable هو شبه نوع (نوع زائف، pseudo-type) عُرِّفَ في الإصدار 7.1 من PHP وهو يقبل أية مصفوفة أو كائن يستخدم واجهة Traversable (أي Traversable interface)، كلا النوعين يمكن تكراره باستخدام حلقة foreach ويمكن أن يُستخدم مع تعبير yield داخل دالة مولِّدة (generator). استخدام Iterables يمكن استخدام Iterable كنوع لمعاملات الدالة (function parameter type) للإشارة إلى الدالة تتطلب مجموعةً من القيم، لكن دون أن تهتم لصيغة القيمة لأنها ستُستخدَم مع حلقة foreach، إذا لم تكن القيم مصفوفة أو ...

المتغير التكراري في PHP

إن المتغير التكراري Iterable هو شبه نوع (نوع زائف، pseudo-type) عُرِّفَ في الإصدار 7.1 من PHP وهو يقبل أية مصفوفة أو كائن يستخدم واجهة Traversable (أي Traversable interface)، كلا النوعين يمكن تكراره باستخدام حلقة foreach ويمكن أن يُستخدم مع تعبير yield داخل دالة مولِّدة (generator). استخدام Iterables يمكن استخدام Iterable كنوع لمعاملات الدالة (function parameter type) للإشارة إلى الدالة تتطلب مجموعةً من القيم، لكن دون أن تهتم لصيغة القيمة لأنها ستُستخدَم مع حلقة foreach، إذا لم تكن القيم مصفوفة أو ...

التابع Numeric.step‎ في روبي

يستدعي التابع step الكتلة المعطاة مع تمرير سلسلة من الأعداد إليها بدءًا من العدد الذي استُدعي معه وحتى قيمة محدَّدة مع الزيادة أو الطرح بقدار خطوة ثابتة معطاة. البنية العامة step(by: step, to: limit) {|i| block }→ self step(by: step, to: limit) → an_enumerator step(limit=nil, step=1) {|i| block } → self step(limit=nil, step=1)→ an_enumerator‎ تنتهي الحلقة التكرارية عندما تكون القيمة المراد تمريرها إلى الكتلة أكبر من قيمة المعامل limit إن كان step موجبًا، أو أصغر من القيمة limit إن كان ...

for...of في JavaScript

التعبير البرمجي for...of يمر على الكائنات التي يمكن الدوران على عناصرها (iterable objects) بما في ذلك الكائن Array و Map و Set و String و TypedArray و Arguments، وتنفيذ تعابير برمجية معيّنة على قيمة كل خاصية من خاصيات تلك الكائنات. البنية العامة for (variable of iterable) { statement } variable ستُنسَد قيمة الخاصية مختلفة لهذا المتغير في كل دورة. iterable خاصيات الكائن القابلة للدوران (iterable properties). الوصف الفرق بين حلقتَي التكرار for...of و for...in التعبيران البرمجيان for...in و for...of يُستخدَمان للدوران ...

الحلقة do...while التكرارية في أردوينو

تعمل الحلقة do...while التكرارية بنفس الطريقة التي تعمل بها الحلقة while باستثناء أنه يُتحقق من الشرط في نهاية الحلقة وليس في بدايتها. هذا يعني أنَّ الحلقة ستُنفَّذ مرة واحدة على الأقل. البنية العامة do { // الكتلة البرمجية المراد تكرار تنفيذها } while (condition); الشرط condition هو تعبير منطقي وسيُقيَّم على أنه إمَّا true أو false. أمثلة مثالٌ عن استعمال الحلقة do...while في قراءة قيمةٍ من حساس وانتظار بلوغها حدًّا معيَّنًا: do { delay(50); ...

الحلقة while التكرارية في أردوينو

تكرِّر الحلقة while تنفيذ الكتلة البرمجية التي ضمنها بشكل مستمر ولا نهائي ما دامت قيمة الشرط المنطقي الموجود بين القوسين هي true (اطلع على البينة العامة)؛ متى ما أصبحت قيمة الشرط المنطقي false، تتوقف الحلقة وتخرج. يجب أن يحدث أي تغيير في قيمة الشرط وإلا لن تخرج الحلقة مطلقًا، لذا يجب أن تزيد أو تنقص قيمة المتغير الذي يُفحَص ضمن الشرط المنطقي أو يجب أن يُستعمَل شرط خارجي مثل فحص قيمة حساس أو ما شابه. البنية العامة while(condition){ // ...

صدفة Bash وبرامج Bash

تعريف بصدفة Bash Bash هي صدفة نظام جنو التي تتوافق مع صدفة بورن وتزيد عليها بعدة مزايا وخصائص مفيدة من باقي الصدفات، وحين تبدأ الصدفة فإنها تقرأ ملفات إعداداتها التي من أهمها ما يلي: etc/profile/ bash_profile./~ bashrc./~ كذلك تتصرف bash بشكل مختلف حين تكون في وضع تفاعلي، وهي متوافقة مع معايير POSIX وبها وضع محظور. ويمكن تقسيم أوامرها إلى ثلاث مجموعات: دوال الصدفة والأوامر المُضمَّنة والأوامر الموجودة داخل مجلد في نظامك. أيضًا، تدعم bash أوامر مضمَّنة أخرى ليست موجودة داخل ...

Object.values()‎

الدالة Object.values()‎ تُعيد مصفوفةً للخاصيات القابلة للإحصاء والتابعة لأحد الكائنات مباشرةً، وبنفس الترتيب الذي توفِّره حلقة التكرار for...in (والفرق بين هذه الدالة وحلقة التكرار هو أنَّ حلقة التكرار for...in ستمرّ على الخاصيات القابلة للإحصاء والموجودة في سلسلة prototype، ولن تقتصر على الخاصيات التابعة للكائن مباشرةً). البنية العامة Object.values(obj) obj الكائن الذي نريد الحصول على قيم خاصياته القابلة للإحصاء. القيمة المعادة مصفوفة تُمثِّل قيم جميع الخاصيات القابلة للإحصاء والتابعة مباشرةً للكائن المعطي. الوصف لاحظ أنَّه في معيار ECMAScript 5 كان استعمال ...

break في JavaScript

التعبير البرمجي break يؤدي إلى إنهاء حلقة التكرار الحالية أو التعبير switch أو label، وستنقل تنفيذ البرنامج إلى التعبير البرمجي الذي يلي التعبير الذي انتهى. البنية العامة break [label]; label مُعرِّفٌ اختياريٌ مرتبطٌ بلافتة التعبير البرمجي، وإذا كان التعبير ليس حلقةً تكراريةً أو switch فسيصبح هذا المُعرِّف مطلوبًا وليس اختياريًا. الوصف يتضمن التعبير break إمكانية توفير لافتة اختيارية تسمح للبرنامج بالخروج من التعبير المُسمى؛ ويجب أن يكون التعبير break موجودًا ضمن ذاك التعبير المسمى. أمثلة استخدام break مع حلقة while ...

الدالة asList()‎ في Kotlin

تُعيد الدالة asList()‎ قائمةً (list) تُغلّف المصفوفة الأصلية التي استُدعيت عبرها. البنية العامة تختلف بحسب نوع المصفوفة: fun <T> Array<out T>.asList(): List<T> fun ByteArray.asList(): List<Byte> fun ShortArray.asList(): List<Short> fun IntArray.asList(): List<Int> fun LongArray.asList(): List<Long> fun FloatArray.asList(): List<Float> fun DoubleArray.asList(): List<Double> fun BooleanArray.asList(): List<Boolean> fun CharArray.asList(): List<Char> القيم المعادة قائمة (list) تُغلّف المصفوفة الأصلية التي استُدعيت عبرها. أمثلة تعرِّف الشيفرة الآتية مصفوفةً باسم array مكوَّنة من حرفين باستخدام الدالة ()arrayOf، ثم تنشئ قائمةً باسم list من المصفوفة array وذلك باستخدام الدالة ()asList ...

المتغيرات في Bash

أنواع المتغيرات تُكتب متغيرات الصدفة بحروف إنجليزية كبيرة، وتحتفظ Bash بقائمة من نوعين من المتغيرات: المتغيرات العامة Global Variables ستجد المتغيرات العامة أو متغيرات البيئة (environment variables) في جميع الصدفات، ويمكن استخدام أوامر env أو printenv لعرض متغيرات البيئة، وتأتي تلك البرامج في حزمة sh-utils. إليك مثالًا لخرج أمر printenv: wiki ~> printenv CC=gcc CDPATH=.:~:/usr/local:/usr:/ CFLAGS=-O2 -fomit-frame-pointer COLORTERM=gnome-terminal CXXFLAGS=-O2 -fomit-frame-pointer DISPLAY=:0 DOMAIN=hq.garrels.be e= TOR=vi FCEDIT=vi FIGNORE=.o:~ G_BROKEN_FILENAMES=1 GDK_USE_XFT=1 GDMSESSION=Default GNOME_DESKTOP_SESSION_ID=Default GTK_RC_FILES=/etc/gtk/gtkrc:/nethome/wiki/.gtkrc-1.2-gnome2 GWMCOLOR=darkgreen GWMTERM=xterm HISTFILESIZE=5000 history_control=ignoredups HISTSIZE=2000 HOME=/nethome/wiki HOSTNAME=hsoub.hq.garrels.be INPUTRC=/etc/inputrc IRCNAME=wiki JAVA_HOME=/usr/java/j2sdk1.4.0 LANG=en_US LDFLAGS=-s LD_LIBRARY_PATH=/usr/lib/mozilla:/usr/lib/mozilla/plugins LESSCHARSET=latin1 LESS=-edfMQ LESSOPEN=|/usr/bin/lesspipe.sh %s LEX=flex LOCAL_MACHINE=hsoub LOGNAME=wiki LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35: MACHINES=hsoub MAILCHECK=60 MAIL=/var/mail/wiki MANPATH=/usr/man:/usr/share/man/:/usr/local/man:/usr/X11R6/man MEAN_MACHINES=hsoub MOZ_DIST_BIN=/usr/lib/mozilla MOZILLA_FIVE_HOME=/usr/lib/mozilla MOZ_PROGRAM=/usr/lib/mozilla/mozilla-bin MTOOLS_FAT_COMPATIBILITY=1 MYMALLOC=0 NNTPPORT=119 NNTPSERVER=news NPX_PLUGIN_PATH=/plugin/ns4plugin/:/usr/lib/netscape/plugins OLDPWD=/nethome/wiki OS=Linux PAGER=less PATH=/nethome/wiki/bin.Linux:/nethome/wiki/bin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:/usr/bin:/usr/sbin:/bin:/sbin:. PS1=\[\033[1;44m\]wiki is in \w\[\033[0m\] PS2=More input> PWD=/nethome/wiki SESSION_MANAGER=local/hsoub.hq.garrels.be:/tmp/.ICE-unix/22106 SHELL=/bin/bash SHELL_LOGIN=--login SHLVL=2 SSH_AGENT_PID=22161 SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass SSH_AUTH_SOCK=/tmp/ssh-XXmhQ4fC/agent.22106 START_WM=twm TERM=xterm TYPE=type USERNAME=wiki USER=wiki _=/usr/bin/printenv VISUAL=vi WINDOWID=20971661 XAPPLRESDIR=/nethome/wiki/app-defaults XAUTHORITY=/nethome/wiki/.Xauthority XENVIRONMENT=/nethome/wiki/.Xdefaults XFILESEARCHPATH=/usr/X11R6/lib/X11/%L/%T/%N%C%S:/usr/X11R6/lib/X11/%l/%T/%N%C%S:/usr/X11R6/lib/X11/%T/%N%C%S:/usr/X11R6/lib/X11/%L/%T/%N%S:/usr/X11R6/lib/X11/%l/%T/%N%S:/usr/X11R6/lib/X11/%T/%N%S XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB XMODIFIERS=@im=none XTERMID= XWINHOME=/usr/X11R6 X=X11R6 YACC=bison -y المتغيرات المحلية Local Variables لن تجد المتغيرات المحلية إلا في الصدفة الحالية، ويمكن استخدام أمر set -بدون خيارات- لعرض ...

التابع CharSequence.lineSequence()‎ في Kotlin

تقسّم الدالة lineSequence()‎ سلسلة المحارف التي استٌدعيت معها إلى سلسلة وتضع في عناصرها الأسطر المفصولة بأيٍّ من سلاسل المحارف التالية: CRLF أو LF أو CR. البنية العامة fun CharSequence.lineSequence(): Sequence<String> القيم المعادة تعاد سلسلة من سلاسل نصية تحوي الأسطر المفصولة بأيٍّ من سلاسل المحارف التالية: CRLF أو LF أو CR. أمثلة مثالٌ على استعمال الدالة lineSequence()‎: fun main(args: Array<String>) { val str = "Hsoub\nWiki\nAcademy" for (line in str.lineSequence()) ...

JavaScript/Topics

الكائنات العامة في هذا القسم جميع الكائنات العامة المُضمَّنة في لغة JavaScript، إضافةً إلى جميع الخاصيات والدوال التابعة لها. الخاصيات العامة هذه الخاصيات العامة تُعيد قيمةً بسيطةً، فهي لا تُمثِّل دوالًا أو خاصياتٍ تابعة لأحد الكائنات. Infinity NaN undefined null الدوال العامة هذه الدوال العامة -أي التي تستدعى في النطاق العام بدل استدعائها على كائن بعينه- تُعيد نتائجها إلى التعبير البرمجي الذي استدعاها. eval()‎‎ isFinite()‎ isNaN()‎ parseFloat()‎ parseInt()‎ decodeURI()‎ decodeURIComponent()‎ encodeURI()‎ encodeURIComponent()‎ escape()‎ unescape()‎ الكائنات الأساسية هذه هي الكائنات الأساسية ...

do...while في JavaScript

التعبير البرمجي do...while يُنشِئ حلقة تكرار تُنفِّذ تعبيرًا برمجيًا معيّنًا إلى أن يصبح الشرط غير محقق (false)، وسيتم التحقق من الشرط بعد تنفيذ التعبير البرمجي، مما يؤدي إلى تنفيذ التعبير البرمجي المُعيّن مرةً واحدةً على الأقل. البنية العامة do statement while (condition); statement  التعبير البرمجي الذي سيُنفَّذ مرةً واحدةً على الأقل وسيُعاد تنفيذه في كل مرة يكون فيها الشرط محققًا (أي true)؛ ولتنفيذ أكثر من تعبير برمجي فاستخدام الأقسام الكتلية (block statement) { ... } لتجميع هذا التعابير. condition ...

Object.keys()‎

الدالة Object.keys()‎ تُعيد مصفوفةً للخاصيات القابلة للإحصاء والتابعة لأحد الكائنات مباشرةً، وبنفس الترتيب الذي توفِّره حلقة التكرار for...in (والفرق بين هذه الدالة وحلقة التكرار هو أنَّ حلقة التكرار for...in ستمرّ على الخاصيات القابلة للإحصاء والموجودة في سلسلة prototype، ولن تقتصر على الخاصيات التابعة للكائن مباشرةً). البنية العامة Object.keys(obj) obj الكائن الذي نريد الحصول على خاصياته القابلة للإحصاء. القيمة المعادة مصفوفة تُمثِّل جميع الخاصيات القابلة للإحصاء والتابعة مباشرةً للكائن المعطي. الوصف لاحظ أنَّه في معيار ECMAScript 5 كان استعمال هذه الدالة ...

الكلمة goto المفتاحية في أردوينو

تنقل الكلمة goto المفتاحية البرنامج إلى موضع معين ضمن الشيفرة. البنية العامة goto label; // إرسال البرنامج لتنفيذ الكتلة البرمجية // label الموجودة عند التسمية أمثلة مثالٌ على استعمال التعبير goto: for(byte r = 0; r < 255; r++){ for(byte g = 255; g > 0; g--){ for(byte b = 0; b < 255; b++){ ...

Symbol.iterator

الرمز المعروف Symbol.iterator يُحدِّد ما هو iterator التابع للكائن، وهو يستخدم من حلقة for...of. سمات الخاصية Symbol.iterator قابلة للكتابة لا قابلة للإحصاء لا قابلة للضبط لا الوصف عند الحاجة إلى المرور (iterate) على كائن (مثل في بداية حلقة التكرار for...of)، فستستدعى الدالة ‎@@iterator دون وسائط، وسيستخدم iterator المُعاد للحصول على القيم التي سنمرّ عليها في حلقة التكرار. بعض أنواع الكائنات المُضمَّنة في اللغة تحتوي على iterator افتراضي، بينما لا يملكه غيرها (الكائن Object مثلًا)؛ الدالة ‎@@iterator الموجودة في الكائنات المُضمَّنة ...

استخدام الأمر المُضمَّن Shift في Bash

وظيفة أمر shift هو أحد أوامر صدفة بورن التي تأتي مع صدفة Bash أيضًا، ويأخذ هذا الأمر وسيطًا (argument) واحدًا ويكون ذلك الوسيط رقمًا، وتُنقل المعامِلات الموضعية إلى اليسار بمقدار هذا الرقم "N"، أما المعامِلات التي تلي ذلك، من 1+N وما بعده إلى #$ فإن أسماءها تُغيَّر إلى أسماء متغيرات من 1$ إلى #$ +1 - N. فمثلًا لنقل أن لديك أمرًا يأخذ عشرة وسائط، وN تساوي 4، إذًا 4$ تصبح 1$، و 5$ تصبح 2$ وهكذا إلى أن تصل ...

التعبير switch...case في أردوينو

يتحقَّق التعبير switch...case -كما في if- من قيمة محدَّدة بطريقة تسمح للمبرمج بتحديد عدة شيفرات تُنفَّذ إحداها بناءً على تلك القيمة المفحوصة. بتفصيلٍ أوسعٍ، يوازن التعبير switch...case قيمة متغير مع القيم المحددة ضمنه؛ عند مطابقة قيمة ذلك المتغير مع إحدى القيم أو التعابير الموجودة ضمنه، فستُنفَّذ الكتلة البرمجية المرتبطة بتلك القيمة أو التعبير. تستخدم عادةً الكلمة المفتاحية break في نهاية كل حالة من حالات التعبير switch...case للخروج منه بعد مطابقة الحالة وتنفيذ الكتلة المرتبطة بها. إن لم تُستعمَل الكلمة break ...

الكلمة else المفتاحية في أردوينو

يسمح التعبير if...else الشرطي بالتحكم بشكل أوسع بتسلسل عملية التحقق من عدة شروط معينة عند تنفيذ الشيفرة عوضًا عن التحقق من شرط وحيد عند استعمال التعبير if. ستُنفَّذ العبارة else (إن وجدت) إن لم يتحقق الشرط المعطى في العبارة if ( أي أعطى القيمة false). يمكن أيضًا استعمال العبارة else مع العبارة if بالشكل else if لإضافة شرط آخر للتحقق منه وبذلك يمكن إجراء عدة عمليات تحقق متتابعة في الوقت نفسه. في حال وجود عدة شروط يراد التحقُّق منها، سيُتحقَّق ...

التعبير switch...case في أردوينو

يتحقَّق التعبير switch...case -كما في if- من قيمة محدَّدة بطريقة تسمح للمبرمج بتحديد عدة شيفرات تُنفَّذ إحداها بناءً على تلك القيمة المفحوصة. بتفصيلٍ أوسعٍ، يوازن التعبير switch...case قيمة متغير مع القيم المحددة ضمنه؛ عند مطابقة قيمة ذلك المتغير مع إحدى القيم أو التعابير الموجودة ضمنه، فستُنفَّذ الكتلة البرمجية المرتبطة بتلك القيمة أو التعبير. تستخدم عادةً الكلمة المفتاحية break في نهاية كل حالة من حالات التعبير switch...case للخروج منه بعد مطابقة الحالة وتنفيذ الكتلة المرتبطة بها. إن لم تُستعمَل الكلمة break ...

الإشارات في Bash

صفحة man للإشارات يحتوي نظامك على صفحة man بها كل الإشارات المتاحة، لكن قد يُفتح بطريقة مختلفة اعتمادًا على نظام تشغيلك، والطريقة التي ستجدها في أغلب أنظمة لينكس هي man 7 signal، لكن إن كنت في ريب من الأمر فحدد صفحة man والقسم الذي تريده بالضبط باستخدام أوامر مثل: man -k signal | grep list أو apropos signal | grep list ستجد أسماء الإشارات باستخدام kill -l. الإشارات إلى صدفة Bash الخاصة بك تتجاهل صدفة bash التفاعلية إشارتي SIGTERM و SIGQUIT في ...

الدوال في Bash

توفر الدوال طريقة سهلة لتجميع أوامر تحتاج إلى تنفيذها بشكل متكرر، وحين تعمل الدالة فإن المعامِلات الموضعية (positional parameter) تتغير إلى معامِلات الدالة، ثم يعاد ضبط تلك المعاملات بعد توقف الدالة إلى معاملات البرنامج المُستدعِي. وكذلك فإن الدوال تشبه برامج مصغرة (mini-scripts)، ومن ثَمَّ فإنها تولِّد رموز حالة خروج (exit codes) أو رموز حالة إعادة (return codes). مقدمة إلى الدوال في Bash نظرة عامة على الدوال في Bash والبُنى اللغوية لها ومعامِلاتها الموضعية وعرضها في الصدفة. أمثلة عن الدوال في ...

بيئة Bash

يمكن إعداد بيئة Bash على مستوى النظام ككل أو لكل مستخدم على حدة، وتُستخدم ملفات الإعدادات المختلفة من أجل ضبط سلوك الصدفة، إذ تحتوي تلك الملفات على خيارات الصدفة وإعدادات المتغيرات وتعريفات الدوال ووحدات أخرى من وحدات بناء صدفة Bash التي تيسر علينا إنشاء بيئة عمل مريحة ومنجِزة. يمكن اختيار أسماء للمتغيرات كما تشاء -نوعًا ما- باستثناء الأسماء المحجوزة لصدفة بورن وصدفة Bash والمعامِلات الخاصة (special parameters). وتستخدم Bash نظام اقتباس (quoting) لاستبعاد المعاني الخاصة من محرف أو أكثر في ...

مقدمة إلى if في Bash

قد تحتاج إلى تحديد سلاسل إجراءات مختلفة داخل برامج الصدفة (shell scripts) بناءً على نجاح تنفيذ أمر أو فشله، وتأتي أداة if الشرطية من أجل مثل تلك الحالات، وأصغر بنية لغوية لأمر if هي التالية: if TEST-COMMANDS; then CONSEQUENT-COMMANDS; fi تُنفَّذ قائمة أوامر الاختبار TEST-COMMANDS، ثم تُنفَّذ قائمة الأوامر التابعة CONSEQUENT-COMMANDS إن كانت حالة الإعادة لها هي صفر. وتكون حالة الإعادة هي حالة خروج آخر أمر تم تنفيذه، أو تكون صفرًا إن لم تتحقق أي حالة من أوامر الاختبار. يتضمن أمر ...

التوسعات في Bash

بعد تقسيم الأمر في Bash إلى وحدات (Tokens) -انظر وحدات البناء الأساسية في Bash، البنية اللغوية للصدفة- فإن تلك الوحدات توسَّع (expanded) أو تُستبيَن (resolved)، وسنفصّل الآن تلك التوسعات وفقًا لترتيب كل منها، ثم بعد إتمام جميع التوسعات تُنفّذ عملية حذف الاقتباسات. توسُّع القوس المعقوف {} توسع القوس المعقوف هو آلية يمكن من خلالها إنشاء نصوص عشوائية (arbitrary strings)، إذ تأخذ الأنماط (patterns) التي سيُنفَّذ عليها توسع القوس المعقوف باستهلال اختياري (optional preamble) متبوع بسلسلة من النصوص تفصل بين كل ...

المصفوفات في Bash

إنشاء المصفوفات المصفوفة هي متغير يحتوي قيمًا متعددة، وأي متغير قد يُستخدم كمصفوفة، كذلك لا يوجد حد أقصى لحجم المصفوفة ولا يُشترط أن تُفهرس المتغيرات داخل المصفوفة أو تُعيَّن في وقت واحد، وقد تكون المصفوفات صفرية القاعدة أي يُفهرس أول عنصر برقم صفر. ينفَّذ التصريح غير المباشر عن المتغير (indirect declaration) باستخدام البنية اللغوية التالية: ARRAY[INDEXNR]=value يعامَل المفهرِس INDEXER على أنه تعبير حسابي يجب أن يٌقدَّر بعدد موجب، ويتم التصريح الواضح (explicit declaration) للمصفوفة باستخدام أمر declare: declare -a ARRAYNAME يُقبَل التصريح ...

الكلمة break المفتاحية في أردوينو

تُستعمَل الكلمة break المفتاحية للخروج من الحلقات for، أو while، أو do...while التكرارية، إذ تتخطى الشيفرة التي بعدها وشروط الحلقة المحددِّة وتخرج منها. تُستعمَل أيضًا للخروج من التعبير switch...case البرمجي. البنية العامة break; أمثلة في الشيفرة التالية، يخرج المتحكم من الحلقة for عندما تتجاوز قيمة الحساس المقاسة عتبة معينة: for (x = 0; x < 255; x ++) { analogWrite(PWMpin, x); sens = analogRead(sensorPin); if (sens > threshold){ ...

تكرار الشيفرات (Duplicate Code)

توصيف المشكلة التشابه (أو التطابق المطلق) بين مقطعين من الشيفرة في البرنامج. أسبابها تحدث هذه المشكلة عندما يعمل أكثرُ من مبرمجٍ على كتابة أجزاءَ مختلفةٍ من نفس البرنامج وبنفس الوقت، فلا يدري أحدهم أنّ الشيفرة التي يكتبها قد سبقه بها مبرمجٌ آخر ومن الممكن استخدامها نفسها دون الحاجة لتكرارها. أو قد تنتُج عن وجود جزئين من الشيفرة مختلفين شكليًّا متماثلين ضمنيًا (يؤديان نفس المهمة)، ومن الصعب كشف هذا النوع من التكرار وعلاجه. قد يكون التكرار هادفًا ببعض الأحيان، كأن يكون ...

RegExp.prototype.exec()‎

الدالة RegExp.prototype.exec()‎ تجرى بحثًا عن مطابقة للتعبير النمطي في السلسلة النصية المُحدَّدة، وتُعيد مصفوفة النتائج، أو القيمة null. إذا كانتَ تريد تنفيذ البحث لمعرفة إن كانت القيمة موجودةً أم لا فاستخدام الدالة RegExp.prototype.test()‎ أو الدالة String.prototype.search()‎. البنية العامة regexObj.exec(str) str السلسلة النصية التي سنبحث عن مُطابَقة للتعبير النمطي فيها. القيمة المعادة إذا نجحت عملية المطابقة، فستُعيد الدالة exec()‎ مصفوفةً وتُحدِّث خاصيات كائن التعابير النمطية. المصفوفة المعادة ستحتوي على النص المُطابَق في أوّل عنصر فيها، ثم العناصر التي تليه ستحتوي على ...

Object.entries()‎

الدالة Object.entries()‎ تُعيد مصفوفةً تحتوي على الخاصيات القابلة للإحصاء التابعة لأحد الكائن على شكل الأزواج [key, value] بنفس الترتيب الذي تُوفِّر حلقة التكرار for...in. الفرق بين هذه الدالة وحلقة التكرار for...in هو أنَّ حلقة for...in ستمرّ على الخاصيات القابلة للإحصاء والموجودة في سلسلة prototype أيضًا. البنية العامة Object.entries(obj) obj الكائن الذي ستُعاد الخاصيات القابلة للإحصاء التابعة له على شكل الأزواج [key, value]. القيمة المعادة مصفوفة تحتوي على قيم الخاصيات القابلة للإحصاء التابعة للكائن obj على شكل الأزواج [key, value]. أمثلة مثال عن كائن ...

الدالة CharSequence.associate()‎ في Kotlin

تعيد الدالة associate()‎ خريطة (map) تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير محارف سلسلة المحارف التي استُدعيت معها إلى الدالة الممررة إليها. إن كان لزوجين نفس المفتاح (key)، فالأخير هو الذي سيُضاف إلى الخريطة. تحافظ الخريطة المُعادة على نفس ترتيب التكرار الخاص بسلسلة المحارف الأصليَّة. البنية العامة inline fun <K, V> CharSequence.associate( transform: (Char) -> Pair<K, V> ): Map<K, V> وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions)). المعاملات transform دالةٌ ...

التعبير البرمجي الفارغ في JavaScript

التعبير البرمجي الفارغ (empty statement) يُستخدَم لتجنب توفير تعبير برمجي في المواضع التي تتطلب فيها JavaScript تعبيرًا برمجيًا واحدًا على الأقل. البنية العامة ; الوصف التعبير الفارغ هو فاصلة منقوطة ; الذي يُشير إلى عدم وجود تعبير لتنفيذه حتى لو تطلبت JavaScript تعبيرًا أو أكثر؛ وفي المقابل، إذا كانت JavaScript تقبل باستخدام تعبير واحد فمن الممكن استخدم الأقسام الكتلية (block statement) لتجميع أكثر من تعبير برمجي. أمثلة قد يُستخدَم التعبير البرمجي الفارغ مع حلقات التكرار، لاحظ المثال الآتي الذي فيه ...

switch في PHP

(PHP 4, PHP 5, PHP 7) تشبه عبارة switch سلسلةً من عبارات if مطبّقة على نفس التعبير. قد تحتاج في بعض الأحيان إلى مقارنة نفس المتغير (أو التعبير) مع قيم مختلفة (حالات cases)، وتنفيذ شيفرة مختلفة بالاعتماد على ذلك، وهذه هي وظيفة عبارة switch. ملاحظة: بخلاف بعض اللغات البرمجية، يمكن استخدام عبارة continue في switch وهي تعمل عمل العبارة break. إن كنت تستخدم switch داخل حلقة وأردت الانتقال إلى الدورة التالية في الحلقة التكرارية الخارجية، استخدم continue 2. ملاحظة: تؤدي ...

switch في PHP

(PHP 4, PHP 5, PHP 7) تشبه عبارة switch سلسلةً من عبارات if مطبّقة على نفس التعبير. قد تحتاج في بعض الأحيان إلى مقارنة نفس المتغير (أو التعبير) مع قيم مختلفة (حالات cases)، وتنفيذ شيفرة مختلفة بالاعتماد على ذلك، وهذه هي وظيفة عبارة switch. ملاحظة: بخلاف بعض اللغات البرمجية، يمكن استخدام عبارة continue في switch وهي تعمل عمل العبارة break. إن كنت تستخدم switch داخل حلقة وأردت الانتقال إلى الدورة التالية في الحلقة التكرارية الخارجية، استخدم continue 2. ملاحظة: تؤدي ...

التعبير if الشرطي في أردوينو

يتحقَّق التعبير if الشرطي من شرط معيَّن وينفِّذ الكتلة البرمجية المكتوبة ضمنه إن كان محقَّقًا (أي كانت قيمته true). البنية العامة if (condition) { // الكتلة البرمجية المراد تنفيذها عند تحقق الشرط } إنَّ الشرط condition هو تعبيرٌ منطقيٌّ أي قيمته إمَّا true أو false. أمثلة مثالٌ على استعمال التعبير if الشرطي بصيغ متعددة: if (x > 120) digitalWrite(LEDpin, HIGH); if (x > 120) digitalWrite(LEDpin, HIGH); if (x > 120){ digitalWrite(LEDpin, HIGH); } if (x > 120){ digitalWrite(LEDpin1, HIGH); digitalWrite(LEDpin2, HIGH); } ملاحظات وتحذيرات قد ...

الدالة CharSequence.associateBy()‎ في Kotlin

تعيد الدالة associateBy()‎ خريطةً (map) مكونة من الأزواج "مفتاح/قيمة"، إذ يكون المفتاح (key) هو الناتج الذي تعيده الدالة keySelector الممررة إليها وتكون القيمة (value) المقابلة لذلك المفتاح هي إمَّا محارف سلسلة المحارف المعطاة أو الناتج الذي تعيده الدالة valueTransform الممررة. إن كان لزوجين نفس المفتاح (key)، فالأخير هو الذي سيُضاف إلى الخريطة. تحافظ الخريطة المُعادة على نفس ترتيب التكرار الخاص بسلسلة المحارف الأصليَّة. البنية العامة inline fun <K> CharSequence.associateBy( keySelector: (Char) -> K ): Map<K, Char> inline fun <K, V> CharSequence.associateBy( ...

الدالة CharSequence.chunkedSequence()‎ في Kotlin

تقطِّع الدالة chunkedSequence()‎ سلسلة المحارف التي استُدعيت معها إلى عدة أجزاء لا يتجاوز كل منها حجمًا معينًا وتعيدها في سلسلة أو تطبِّق دالة معينة على كل منها وتضع الناتج الذي تعيده هذه الدالة في سلسلة. البنية العامة fun CharSequence.chunkedSequence(size: Int): Sequence<String> fun <R> CharSequence.chunkedSequence( size: Int, transform: (CharSequence) -> R ): Sequence<R> بيئة التشغيل المطلوبة: Kotlin 1.2. المعاملات size عدد صحيح يمثل عدد العناصر المراد اقتطاعها ووضعها في كل سلسلة نصية. يجب أن يكون هذا ...

الدالة CharSequence.associateTo()‎ في Kotlin

تشبه الدالة associateTo()‎ الدالة associate()‎ تمامًا باستثناء أنها تضيف الناتج الذي تعيده إلى خريطة موجودة مسبقًا.  البنية العامة inline fun <K, V, M : MutableMap<in K, in V>> CharSequence.associateTo( destination: M, transform: (Char) -> Pair<K, V> ): M وجود الكلمة المفتاحية inline يدل على أن هذه الدالة مباشرة (للمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions)). المعاملات destination خريطة متغيرة تمثل الوجهة التي ستوضع فيها الخرائط التي تعيدها الدالة associateTo()‎. transform دالةٌ يمرر إليها كل محرف من محارف ...

معامل الفاصلة في JavaScript

معامل الفاصلة (comma operator) يُقدِّر القيم التي يجري عمليته عليها (من اليسار إلى اليمين) ويُعيد قيمة آخر قيمة. البنية العامة expr1, expr2, expr3... expr1 و expr2 و expr3 أيّة تعابير (expressions) برمجية. الوصف يمكنك استخدام معامل الفاصلة عندما تريد تضمن عدِّة تعابير (expressions) في مكان يسمح بتعبيرٍ واحد؛ وأكثر استخدام شائع لهذا المعامل هو توفير أكثر من متغير لحلقة for. أمثلة استخدام معامل الفاصلة مع حلقة التكرار for إذا كانت لدينا مصفوفة باسم a وهي مصفوفةٌ ثنائيةُ الأبعاد في كل ...

الدالة any()‎ في بايثون

تعيد الدّالة any()‎ القيمة True إن كان أحد عناصر الكائن القابل للتكرار (iterable) المعطى يساوي القيمة True أو إن كان الكائن القابل للتكرار فارغًا. البنية العامة any() المعاملات iterable كائن قابل للتكرار، يُمكن أن يكون قائمةً أو مجموعةً أو سلسلةً نصيّة أو أيّ كائنٍ يُمكنك استخدام حلقة التّكرار for عليه للوصول إلى كلّ قيمةٍ من قيمه على حدى. القيمة المعادة القيمة True إن كان أحد عناصر الكائن القابل للتكرار المعطى يُساوي القيمة True أو إن كان الكائن القابل للتكرار فارغًا. ...

الدالة all()‎ في بايثون

تعيد الدّالة all()‎ القيمة True إن كانت جميع عناصر الكائن القابل للتكرار (iterable) المعطى تُساوي القيمة True أو إن كان الكائن القابل للتكرار فارغًا. البنية العامة all() المعاملات iterable كائن قابل للتكرار، يُمكن أن يكون قائمةً أو مجموعةً أو سلسلةً نصيّة أو أيّ كائنٍ يُمكنك استخدام حلقة التّكرار for عليه للوصول إلى كلّ قيمةٍ من قيمه على حدى. القيمة المعادة القيمة True إن كانت جميع عناصر الكائن القابل للتكرار المعطى تُساوي القيمة True أو إن كان الكائن القابل للتكرار فارغًا. ...

بنى التحكم في PHP

تتكون جميع شيفرات PHP من سلسلة من العبارات (statements)، ويمكن للعبارة أن تكون إسنادًا (assignment) أو استدعاءً لدالّة، أو حلقة تكرارية، أو عبارة شرطية أو حتى عبارة لا تقوم بأي عمل على الإطلاق (عبارة فارغة). تنتهي العبارات عادة بالفاصلة المنقوطة (;)، ويمكن تجميع العبارات بإحاطتها بالأقواس المعقوفة ({}) لتصبح مجموعة عبارات (statement-group)، والتي تعدّ بدورها عبارات أيضًا. سنفصل الحديث في هذا الفصل عن أنواع متعددة من العبارات. if بنية if هي واحدة من أهم الميزات المتوفّرة في العديد من اللغات ...

Arduino/Topics

بنية لغة أردوينو تخضع الشيفرة في لغة أردوينو إلى بعض التعديلات البسيطة ثم تمرَّر إلى مفسِّر ++C/C. يمكن استعمال جميع البنى والتعابير القياسية في لغة C أو ++C التي يدعمها المفسِّر في أردوينو. لن تجد في شيفرة أردوينو الدالة main()‎ المعتادة ولكن ستجد عوضًا عنها دالتين رئيسين هما: الدالة setup()‎ والدالة loop()‎ اللتان تفسران وتوصلان بالدالة الرئيسيةmain() ‎ لإنشاء البرنامج التنفيذي التكراري (cyclic executive program) عبر استعمال سلسلة أدوات GNU. يُستعمَل البرنامج avrdude المضمن ضمن أردوينو IDE لتحويل الشيفرة التنفيذية ...

Array.prototype.length

الخاصية Array.prototype.length تُعيد عدد العناصر في المصفوفة، وهذه القيمة هي عدد صحيح بطول 32 بت دون إشارة، وهي أكبر من أكبر فهرس في المصفوفة. var items = ['shoes', 'shirts', 'socks', 'sweaters']; items.length; // 4 الوصف قيمة الخاصية length هي عددٌ صحيحٌ له إشارة موجبة وقيمته تكون من 2 إلى 232. var namelistA = new Array(4294967296); //2 to the 32nd power = 4294967296 var namelistC = new Array(-100) // رقم سالب console.log(namelistA.length); //RangeError: Invalid array length console.log(namelistC.length); //RangeError: Invalid array length var namelistB ...

for في PHP

(PHP 4, PHP 5, PHP 7) تعدّ حلقات for النوع الأكثر تعقيدًا من الحلقات في PHP، وهي مشابهة لنظيرتها في لغة C، وتأخذ الصيغة التالية: for (expr1; expr2; expr3) statement ينفّذ التعبير expr1 مرة واحدة دون قيد أو شرط في بداية الحلقة، وينفّذ التعبير expr2 في بداية كل دورة، فإن كانت النتيجة هي TRUE فتستمر الحلقة في عملها وتنفّذ العبارات المضمّنة فيها، أما إن كانت النتيجة هي FALSE فتتوقف الحلقة عن العمل، أما التعبير expr3 فينفّذ في ...

for في PHP

(PHP 4, PHP 5, PHP 7) تعدّ حلقات for النوع الأكثر تعقيدًا من الحلقات في PHP، وهي مشابهة لنظيرتها في لغة C، وتأخذ الصيغة التالية: for (expr1; expr2; expr3) statement ينفّذ التعبير expr1 مرة واحدة دون قيد أو شرط في بداية الحلقة، وينفّذ التعبير expr2 في بداية كل دورة، فإن كانت النتيجة هي TRUE فتستمر الحلقة في عملها وتنفّذ العبارات المضمّنة فيها، أما إن كانت النتيجة هي FALSE فتتوقف الحلقة عن العمل، أما التعبير expr3 فينفّذ في ...

Array.prototype.forEach()‎

الدالة Array.prototype.forEach()‎ تستدعي دالةً لكل عنصر موجود في المصفوفة. const arr = ['a', 'b', 'c']; arr.forEach(function(element) { console.log(element); }); // a // b // c البنية العامة arr.forEach(callback[, thisArg]) callback الدالة التي ستُنفَّذ كل عنصر من عناصر المصفوفة، وتقبل ثلاثة وسائط. currentValue العنصر الحالي الذي يُعالِج في المصفوفة، وهذه القيمة مطلوبة. index فهرس العنصر الحالي في المصفوفة، وهذه القيمة اختيارية. array المصفوفة التي استدعيت الدالة forEach عليها، وهذه القيمة اختيارية. thisArg القيمة التي ستُستخدَم في this عند استدعاء الدالة callback، وهي قيمة ...

while في PHP

(PHP 4, PHP 5, PHP 7) تعد حلقات while التكرارية أبسط أنواع الحلقات في PHP، وتعمل بطريقة مماثلة لنظيرتها في لغة C، والصيغة الأساسية لعبارة while هي: while (expr) statement تؤدي عبارة while وظيفةً بسيطةً، وهي تنفيذ العبارة أو العبارات التي تحتضنها بصورة متكررة ما دامت العبارة الشرطية المرتبطة بحلقة while تؤول إلى TRUE. تتحقّق اللغة من قيمة التعبير في بداية كل دورة، لهذا لن يؤدي تغيير القيمة أثناء عملية التنفيذ إلى إيقاف الدورة بل ستكمل الشيفرة ...

while في PHP

(PHP 4, PHP 5, PHP 7) تعد حلقات while التكرارية أبسط أنواع الحلقات في PHP، وتعمل بطريقة مماثلة لنظيرتها في لغة C، والصيغة الأساسية لعبارة while هي: while (expr) statement تؤدي عبارة while وظيفةً بسيطةً، وهي تنفيذ العبارة أو العبارات التي تحتضنها بصورة متكررة ما دامت العبارة الشرطية المرتبطة بحلقة while تؤول إلى TRUE. تتحقّق اللغة من قيمة التعبير في بداية كل دورة، لهذا لن يؤدي تغيير القيمة أثناء عملية التنفيذ إلى إيقاف الدورة بل ستكمل الشيفرة ...

الدالة withIndex()‎ في Kotlin

تعيد الدالة withIndex()‎ مجموعة تكرارية خاملة (lazy Iterable) من القيم المُفهرسة لكل عنصر من عناصر المصفوفة أو المجموعة التكرارية التي استُدعيت معها، أو تعيد مُكرّرًا (iterator) يغلّف كل عنصر أنتجه المكرّر (Iterator) المستدعى مع الدالة مع القيمة المُفهرسة أي يعيد القيمة مع فهرسها. البنية العامة يمكن استدعاء الدالة withIndex()‎ مع المصفوفات أو المجموعات التكرارية أو المكرِّرات: fun <T> Array<out T>.withIndex(): Iterable<IndexedValue<T>> fun ByteArray.withIndex(): Iterable<IndexedValue<Byte>> fun ShortArray.withIndex(): Iterable<IndexedValue<Short>> fun IntArray.withIndex(): Iterable<IndexedValue<Int>> fun LongArray.withIndex(): Iterable<IndexedValue<Long>> fun FloatArray.withIndex(): Iterable<IndexedValue<Float>> fun DoubleArray.withIndex(): Iterable<IndexedValue<Double>> fun BooleanArray.withIndex(): Iterable<IndexedValue<Boolean>> fun ...

الدالة CharSequence.associateByTo()‎ في Kotlin

تشبه الدالة associateByTo()‎ الدالة associateBy()‎ تمامًا باستثناء أنها تضيف الناتج الذي تعيده إلى خريطة موجودة مسبقًا. البنية العامة inline fun <K, M : MutableMap<in K, in Char>> CharSequence.associateByTo( destination: M, keySelector: (Char) -> K ): M inline fun <K, V, M : MutableMap<in K, in V>> CharSequence.associateByTo( destination: M, keySelector: (Char) -> K, valueTransform: (Char) -> V ): M وجود الكلمة المفتاحية inline يدل على أن هذه الدالة ...

المزيد من خيارات Bash

ناقشنا بعض خيارات صدفة Bash التي قد تفيدك في تنقيح برامج Bash، وسننظر الآن في مزيد من تلك الخيارات بتفصيل أكثر. عرض الخيارات استخدم خيار o- لأمر set لعرض كل خيارات الصدفة: hsoub:~> set -o allexport off braceexpand on emacs ...

ميزات صدفة Bash

صدفة bash هي الصدفة الافتراضية لنظام جنو يوفّر مشروع GNU -إذ يشير الاسم إلى GNU's Not UNIX- أدواتٍ لإدارة النظم الشبيهة بنظام يونكس، وهي نظم التشغيل الحرة والمتوافقة مع معايير يونكس. وإحدى تلك الأدوات هي bash، صَدَفة متوافقة مع صدفة sh الأولى التي كتبها ستيفن بورن، وبها خصائص مفيدة من صدفتي Korn و C -اختصاراتهما ksh و csh على الترتيب-. وقد صُممت لتتوافق مع معيار IEEE POSIX P1003.2/ISO 9 945.2 للصدفات والبرامج.  كما أن بها مزايا محسّنة عن sh سواء ...

تنفيذ الأوامر في Bash

عام تحدد bash نوع البرنامج الذي يتم تنفيذه، وتكون البرامج هنا عادة أوامر للنظام في صورة مُجمّعة (compiled) على جهازك. وحين يتم تنفيذ أحد تلك البرامج، فإن bash تنشئ نسخة من نفسها، وتولد عملية جديدة بناء على ذلك، ويدعى ذلك الإجراء بالاشتقاق (forking). وتلك العملية الفرعية لديها نفس بيئة العملية الأصلية، ولا تختلفان إلا في رقم معرّف العملية (Process ID Number) لكل منهما. وتحِل بيانات العملية الجديدة محِل مساحة العنوان (address space) بعد الاشتقاق ، ويتم ذلك الإجراء من خلال ...

أنواع المتغيرات في Bash

التعيين العام للقيَم لم نركز كثيرًا في الشرح السابق لصدفة Bash على أنواع المتغيرات التي كنا نعيِّنها لأن Bash تستطيع التعامل مع أنواع متعددة من المتغيرات والمعامِلات، ونتيجة لذلك فإن متغيراتنا يمكنها احتواء أي نوع نختاره من البيانات، انظر المثال التالي للتوضيح: [hsoub in ~] VARIABLE=12 [hsoub in ~] echo $VARIABLE 12 [hsoub in ~] VARIABLE=string [hsoub in ~] echo $VARIABLE string وستكون حالات تريد فيها تجنب هذا السلوك من المثال السابق حين تتعامل مع أرقام الهواتف وغيرها مثلًا، وقد تحتاج أن تحدد متغيرًا ثابتًا (Constant ...

البُنى الشرطية في Bash

سنتعلم في هذا الباب كيف نبني سلاسل شرطية في برامجنا بحيث نستطيع اتخاذ إجراءات مختلفة بناء على نجاح الأوامر أو فشلها، وستُحدد تلك الإجراءات باستخدام عبارة if، وسيسمح هذا بتنفيذ مقارنات حسابية ونصية، واختبار رموز الخروج والمدخلات والملفات التي يحتاجها البرنامج. عادة ما يسبق الأوامر في برامج الصدفة اختبارُ if/then/fi لمنع إنشاء الخرج كي يعمل البرنامج في الخلفية أو من خلال أداة cron، أما الشروط الأكثر تعقيدًا فتوضع في عبارة case. ويخبر البرنامج الصدفة الأم عند نجاح اختبار الشرط باستخدام ...

عرض (250 السابقة | 250 التالية) (20 | 50 | 100 | 250 | 500).