# مرجع سكربت السلحفاة البرمجي

هذا مرجع لغة برمجة سلحفاتك واسمها سكربت السلحفاة.في القسم الأول من هذا الفصل، سنتحدّث عن قواعد كتابة برنامج سكربت السلحفاة. في القسم الثاني، سنتعامل مع العمليات الرياضية و العمليات المنطقية و عمليات المقارنة. القسم الثالث به قائمة كل الأوامر مشروحة واحدة واحدة. القسم الرابع يشرح كيف تُنسد قيمًا إلى المتغيرات. وفي النهاية، سنفصّل كيفية نضبط التنفيذ بـتعليمات التحكّم في القسم الخامس وطريقة إنشاء أوامر مخصّصة بالأمر `تعلم` في الفصل السادس.

## قواعد كتابة سكربت السلحفاة

كما هو الحال في أي لغة، سكربت السلحفاة فيها أنواع مختلفة من الكلمات والرموز.في اللغة العربية، نميز الأفعال (مثل "مشى يمشي" أو "أكل يأكل") والأسماء (مثل "أخت" أو "منزل")، وتستخدم استخدامها لأغراض مختلفة.سكربت السلحفاة هي لغة برمجة ، تُستخدم لتعليم سلحفاتك ما يجب القيام به.

في هذا القسم، سنشرح شرحا مختصرًا أنواعًا مختلفة من كلمات ورموز سكربت السلحفاة.سنشرح التعليقات، والأوامر وثلاثة أنواع أخرى هي : الأعداد ، و السلاسل و القيم المنطقية (صح، غلط).

### تعليقات

في البرنامج تعليمات للتنفيذ عند تشغيل البرنامج، أمّا التعليقاتُ فلا تُنفّذ، بل تتجاهلها سلحفاتك التعليقات مفيدة كي يفهم الآخرون برنامج فهمًا أفضل.كلّ ما يأتي بعد علامة `#` يُعدّ تعليقا في سكربت السلحفاة. مثلا، هذا البرنامج الصغير، لا يفعل شيئًا:

    #هذا البرنامج الصغير لا يفعل شيئا، هو تعليق فقط!

يبدو بلا فائدة، لكنه يشرح الفكرة جيّدًا.

تصبح التعليقات مفيدة للغاية عندما يصبح البرنامج أكثر تعقيدًا. قد تساعد في تقديم نصائح للمبرمجين الآخرين. في البرنامج التالي، نستخدم تعليقات الاستخدام مع الأمر اطبع

    #هذا برنامج من  تصميم أحمد.
    اطبع "هذا النص سيطبع على الرقعة"
    #السطر السابق ليس تعليقا، لكن السطر الموالي تعليق:
    #اطبع "هذا النص سيطبع على الرقعة"

السطر الأول يعرّف بالبرنامج. السطر الثاني تنفّذه سلحفاتك لطباعة `هذا النص سيطبع على الرقعة` على الرقعة. السطر الثالث تعليقٌ. أما السطر الرابع، فهو تعليق فيه تعليمات سكربت السلحفاة، فإذا حذفنا العلامة `#` ستنفذ تعليمة الطباعة من سلحفاتك. يقول المبرمجو أن تعليمة الطباعة في السطر الرابعة "مُعلّقة".

الأسطر المعلقة ملوّنة بالرمادي الفاتح في المحرر.

### أوامر

استعمال الأوامر، يأمر السلحفاة أن تعمل شيئا ما.بعض الأوامر تحتاج إلى مدخلات.

    # الأمر تقدّم  يحتاج إلى مدخل، في هذه الحالة العدد  100:
    تقدم 100

السطر الأول تعليق السطر الثاني فيه الأمر . `تقدم` و العدد `100`. العدد ليس جزءًا من الأمر، بل يُعدّ "مدخلا" للأمر.

بعض الأوامر مثل `اذهب` تحتاج إلى أكثر من مدخل واحد. تُفصل المداخل المتعددة بفاصلة `،`.

لتفاصيل أكثر عن كل أوامر طالع هنا . الأوامر الجاهزة تُميّز بلون أزرق غامق.

### أعداد

لابد أنّك تعرف الأعداد. طريقة استخدام الأعداد في سلحفاتك لا يختلف كثيرًا عن اللغة المنطوقة أو الرياضيات.

لدينا الأعداد الطبيعية: `0`، `1`، `2`، `3`، `4`، `5`، إلى أخره والأعداد السالبة : `-1`، `-2`، `-3`، إلى أخره والأعداد العشرية مثل: `0.1`، `3.14`، `33.3333`، `-5.05`، `-1.0`. الفاصلة `.` تفصل بين الجزء الصحيح والجزء العشري.

تستعمل الأعداد في العمليات الحسابية و عمليات المقارنة. وتُحفظ في متغيرات. الأعداد تُميّز بالأحمر الغامق.

### سلاسل

سنبدأ بمثال:

    اطبع "سلام، أنا سلسلة حروف."

في هذا المثال الأمر`اطبع` يطبع سلسلة حروف `"سلام، أنا سلسلة حروف."`. تبدأ السلاسل وتنتهي بعلامة اقتباس`"`، تعتبر سلحفاتك ما بين علامتي اقتباس سلسلة حروف.

تُحفظ السلاسل فيمتغيرات، مثل ، الأعداد. Yet، لكن على عكس الأعداد، السلاسل لا تستعمل في العمليات الحسابية أو عمليات المقارنة . السلاسل تُميّز بالأحمر.

### قيم منطقية (صح، غلط)

لدينا قيمتان منطقيتان هما: `صح`
و `غلط`
. قد تسمى هاتان القيمتان: `صواب` و `خطأ`، `نعم` و `لا`، `واحد` و `صفر`. لكن في سكربت السلحفاة سندعوها، `صح` و `غلط`. طالع هذا المثال سكربت السلحفاة:

    $س = صح

إذا نظرت إلى المفتش سترى أن قيمة المتغير `$س` تساوي `صح`، ونوعها منطقي.

عادة القيم المنطقية ناتجة عن عمليات مقارنة، كما في المثال الآتي سكربت السلحفاة:

    $جواب = 10 > 3

قيمة المتغير `$جواب` هي `صح` لأنّ `10` أكبر من `3`.

القيم المنطقية، `صح` و `غلط` تُميّز بالأحمر الغامق.

## عوامل رياضية ومنطقية ومقارنة

قد يبدو عنوان هذا القسم صعبًا للغاية، إلا أنه ليس بالصعوبة التي يبدو عليها.

### عوامل رياضية

علامات العمليات الحسابية هي:: الجمع (`+`)، الطرح (`-`)، الضرب (`*`)، القسمة (`/`) والقوة (الأس) (`^`).

هذه أمثلة عن العمليات الحسابية في سكربت السلحفاة:

    $مجموع      = 1 + 1
    $فرق = 20 - 5
    $جداء = 15 * 2
    $حاصل   = 30 / 30
    $أس    = 2 ^ 2

القيم الناتجة عن العمليات تُسند إلى متغيرات. باستعمال المفتّش يمكنك رؤية قيم المتغيرات.

إن رغبت في إجراء عملية حسابية بسيطة، اصنع مثل هذا:

    اطبع 2010-12

والآن إليك مثالًا عن الأقواس:

    اطبع ((20 - 5) * 2/30) + 1

سيُحسب ما داخل الأقواس أولاً. في هذا المثال ، ستُحسب 20-5 ، ثم يضرب الناتج في 2 ، ثم يُقسم على 30 ، ثم يضاف 1 (والنتيجة 2). تُستخدم الأقواس في حالات أخرى.

في سلحفاتك دوّال رياضية متقدمة. اطّلع على الأوامر الآتية، ولكن انتبه أنها وظائف متقدمّة: تقريب، عشوائي، جذر ، pi طا، sin جا، cos جتا، tan ظا، arcsin قوس_جا، arccos قوس_جتا، arctan قوس_ظا.

### عمليات منطقية (صح، غلط)

العمليات الحسابية للأعداد، أمّا العمليات المنطقية فتخصّالقيم المنطقية (`صح` و `غلط`). العمليات المنطقية ثلاثة هي: `و`
، `أو`
، `ليس`
. إليك بعض الأمثلة:

    $وصل_1_1 = صح و صح    # -> صح
    $وصل_1_0 = صح و غلط   # -> غلط
    $وصل_0_1 = غلط و صح   # -> غلط
    $وصل_0_0 = غلط و غلط  # -> غلط

    $فصل_1_1 = صح أو صح    # -> صح
    $أو_1_0 = صح أو غلط   # -> صح
    $أو_0_1 = غلط أو صح   # -> صح
    $أو_0_0 = غلط أو غلط  # -> غلط

    $نفي_1 = ليس صح   # -> غلط
    $نفي_0 = ليس غلط  # -> صح

باستعمال المفتش ترى قيم كل المتغيرات، كما أننا وضعنا تعليقات صغيرة في نهاية كل سطر توضح النتيجة.. `و` تنتج `صح` فقط إن كان الطرفان `صح`. `أو` تنتج `صح` إن كان أحد الطرفين `صح`. و `ليس` تجعل `صح` `غلطا` و `غلط` `صح`.

العمليات المنطقية تميّز بالوردي.

#### أمثلة إضافية متقدمة

إليك هذا المثال عن الوصل `و`:

    $ج = 1
    $ب = 5
    إذا (($ج < 10) و ($ب == 5)) و ($ج < $ب) {
     اطبع "تمام"
    }

في هذا البرنامج الصغير، نتيجة عمليات المقارنة تربط بعمليات وصل `و`. مما سيعطي صح فيؤدي إلى طباعة تمام.

هذا مثال للفصل بـ `أو`:

    $ع = 1
    إذا ($ع < 10) أو ($ع == 2) {
      اطبع "تمام"
    }

في هذا المثال، الطرف الأيمن قبل `أو` يعطي صح، الطرف الأيسر يعطي غلط. وبما أنّ أحد طرفي العملية `أو` صح، فالناتج صح. مما يعني أن تمام ستُطبع.

وأخيرًا هذا مثال عن النفي بـ`ليس` التي تغيّر صح إلى غلط و غلط إلى صح. انظر:

    $ع = 1
    إذا ليس ($ع == 3) {
      اطبع "تمام"
    } وإلا {
      اطبع "ليس تمام ;-)"
    }

### عوامل المقارنة

لتكن المقارنة الآتية:

    $جواب = 10 > 3

هنا `10` تقارن مع `3` بالعامل أكبر من . نتيجة المقارنة هي قيمة منطقية `صح` تُحفظ في المتغيّر `$جواب`.

كل الأعداد و المتغيرات (التي تحوي أعدادًا) يُمكن مقارنتها بواسطة عمليات المقارنة.

هذه بعض المقارنات:

#### أنواع الأسئلة

`$ج == $ب` | تساوي | الجواب هو صح إذا `$ج` يساوي `$ب`
`$ج != $ب` | لا تساوي | الجواب صح إذا `$ج` لا يساوي `$ب`
`$ج > $ب` | أكبر من | الجواب صح إذا `$ج` أكبر من `$ب`
`$ج < $ب` | أصغر من | الجواب صح إذا `$ج` أصغر من `$ب`
`$ج >= $ب` | أكبر من أو يساوي | الجواب صح إذا `$ج` أكبر من `$B` أو يساويه
`$ج <= $ب` | أصغر من أو يساوي | الجواب صح إذا `$ج` أصغر من `$ب` أو يساويه

رجاء، لاحظ أنّ `$ج` و `$ب` عددان أو متغيران يحويان أعداد.

## أوامر

باستخدام الأوامر تطلب من السلحفاة أو سلحفاتك فعل شيء ما. بعض الأوامر تحتاج إلى مدخلات، وبعضها يعطي مخرجات. في هذا القسم نشرح كل أوامر سلحفاتك. بدلاً من ذلك ، يمكن استخدام الأمر `تعلم` لإنشاء أوامرك الخاصة.الأوامر المضمنة التي نناقشها هنا مميّزة باللون الأزرق الداكن.

### تحريك السلحفاة

توجد عدة أوامر لتحريك السلحفاة على الشاشة.

تقدم (أمام)

      تقدم س

  `تقدم` تحرّك السلحفاة إلى الأمام بعدد من البكسلات أو النقاط. إذا كان القلم منخفضا، تترك السلحفاة خطًا. يمكن كتابة `تقدم` بـ `أمام`.

وراء (خلف)

      وراء س

  `وراء` حرّك السلحفاة إلى الوراء بعدد من البكسلات أو النقاط. إذا كان القلم منخفضا، تترك السلحفاة خطًا. يمكن كتابة `وراء` بـ `خلف`.

در_يسار (يسار)

      در_يسار س

  `در_يسار` تأمر السلحفاة بالدوران نحو اليسار بعدد من الدرجات. `در_يسار` تختصر إلى`يسار`.

در_يمين (يمين)

      در_يمين س

  `در_يمين` تأمر السلحفاة بالدوران نحو اليمين بعدد من الدرجات. `در_يمين` تختصر إلى`يمين`.

اتجاه (جهة)

      اتجاه س

  `اتجاه` اضبط اتجاه السلحفاة على مقدار درجات انطلاقا من الصفر، أي لا تتعلق الزاوية باتجاه السلحفاة السابق. `اتجاه` تختصر إلى `جهة`.

هات_اتجاه

      هات_اتجاه

  يعرض `هات-اتجاه` زاوية اتجاه السلحفاة بالدرجات انطلاقا من الصفر، حيث الزاوية صفر هي اتجاه السلحفاة حين تشير إلى الأعلى.

وسط

      وسط

  `وسط` يحرك السلحفاة إلى المركز على الرقعة.

اذهب

      اذهب س، ع

  يأمر `اذهب` السلحفاة بالذهاب إلى مكان معين على الرقعة. يقع هذا المكان على بعد عدد س بسكل من يسار اللوحة، و عدد ص بكسل من أعلى اللوحة.

اذهب_س

      اذهب_س س

  `اذهب_س` باستخدام هذا الأمر ، ستنتقل السلحفاة إلى عدد س بكسل من يسار الرقعة، لكن تبقى على نفس الارتفاع. يختصر `اذهب_س` إلى `سين`.

اذهب_ص

      اذهب_ص

  `اذهب_ص` باستخدام هذا الأمر ، ستنتقل السلحفاة إلى عدد ص بكسل من أعلى الرقعة، لكن تبقى على نفس البعد عن اليسار. يختصر `اذهب_ص` إلى `صاد`.

عند استعمال الأوامر `اذهب`، `اذهب_س` و `اذهب_ص` و `وسط`لن ترسم السلحفاة خطًا، سواءً كان القلم مرفوعا أو منخفضا.

### أين السلحفاة؟

هناك أمران يعطيان موضع السلحفاة على الشاشة.

هات_س

  `هات_س` تُرجع عدد وحدات البكسل من يسار الرقعة إلى الموضع الحالي للسلحفاة.

هات_ص

  `هات_ص` تُرجع عدد وحدات البكسل من أعلى الرقعة إلى الموضع الحالي للسلحفاة.

### للسلحفاة قلم

للسلحفاة قلمٌ يرسم خطاً عندما تتحرك. في هذا القسم نشرح الأوامر التي تتحكّم في القلم.

رفع_القلم (رفع)

      رفع_القلم

  `رفع_قلم` ترفع القلم عن الرقعة. حين يُرفع القلم عن الرقعة، لا يرسم خطًا عندما تتحرك السلحفاة. طالع أيضًا `ضع_قلم`. يختصر الأمر `رفع_قلم` إلى `رفع`.

ضع_القلم (ضع)

      ضع_القلم

  `ضع_قلم` يضع القلم على الرقعة. حين يُوضع القلم على الرقعة، يرسم خطًا عندما تتحرك السلحفاة. طالع أيضًا `رفع_قلم`. يختصر الأمر `ضع_قلم` إلى `ضع`.

عرض_قلم (عرض)

      عرض_قلم س

  `عرض_قلم` يضبط عرض القلم أو الخط إلى عدد من النقاط أو البكسلات. يُختصر `عرض_قلم` إلى `عرض`.

لون_القلم (لون)

      لون_القلم ح،خ،ز

  `لون_القلم` تضبط لون القلم وتأخذ قيمة لونية. RGB ح.خ.ز في المدخل. `لون_القلم` تختصر إلى `لون`.

### أوامر للتحكم في الرقعة

توجد أوامر عديدة للتحكم في الرقعة.

حجم_الرقعة (حجم)

      حجم_الرقعة س،ص

  بالأمر `حجم_الرقعة` يمكنك ضبط حجم الرقعة، يأخذ الأمر مدخلات عددية س و ص. حيث س عرض الرقعةبالبكسل، وص ارتفاعها بـ البكسل. `حجم_الرقعة` يختصر إلى `حجم`.

لون_الرقعة (خلفية)

      لون_الرقعة ح،خ،ز

  `لون_الرقعة` تضبط لون الرقعة وتأخذ قيمة لونية . RGB ح.خ.ز في المدخل. `لون_الرقعة` تختصر إلى `خلفية`.

### أوامر المسح

هناك أمران لتنظيف الرقعة بعد إحداث فوضى.

امسح (مسح)

      امسح

  باستخدام الأمر `مسح` يمكنك مسح ما رُسم على الرقعة. تبقى كل الأشياء الأخرى: موضع السلحفاة وزاويتها وإمكانية رؤيتها ولون الرقعة، وحجمها.

جدد

      جدد

  الأمر `جدد` يمسح أكثر من الأمر`مسح`. بعد الأمر `جدد` كل شيء يبدو وكأنك شغّلت سلحفاتك مجددًا. تعود السلحفاة إلى وسط الشاشة، ويعود لون الرقعة أبيض. ويرجع لون القلم أسود، وحجم الرقعة يعود إلى 400×400 بكسل.

### السلحفاة جنيّة

أولاً شرح موجز لماهية النقوش المتحركة: النقوش هي صور صغيرةيمكن تحريكها حول الشاشة، كما نراها غالبًا في ألعاب الكمبيوتر.سلحفاتنا هي أيضًا نقش. لمزيد من المعلومات راجع المسرد على نقش .

بعد ذلك ستجد نظرة عامة وافية عن أوامر العمل مع النقوش المتحركة.

في هذا الإصدار من سلحفاتك لا يمكن تغيير النقش من سلحفاة إلى شيء آخر. الإصدارات المستقبلية من سلحفاتك سوف تسمح لك باستبدال السلحفاة بصورة من تصميمك.

أظهر (إظهار)

      أظهر

  `أظهر` تجعل السلحفاة ظاهرة مرة أخرى إن كانت مخفية. `أظهر` تكتب أيضا `إظهار`.

أخف (إخفاء)

      أخف

  `أخف` تجعل السلحفاة مخفية مرة أخرى إن كانت ظاهرة. `أخف` تكتب أيضا `إخفاء`.

### هل تقدر السلحفاة أن تكتب؟

الجواب: نعم . تستطيع السلحفاة أن تكتب: إنها تكتب كل ما تأمرها به.

اطبع

      اطبع س

  يُستخدم `اطبع` لأمر السلحفاة بكتابة شيء ما على الرقعة. تأخذ `اطبع` الأرقام والسلاسل كمدخلات. `اطبع` أرقامًا وسلاسل مختلفة باستخدام الرمز +. إليك هذا المثال:

      $سنة = 2003
      $كاتب = "أحمد"
      اطبع $كاتب + " بدأ مشروعه في سنة " + $سنة + " وما زال يعمل عليه مستمتعًا!"

حجم_الخط

      حجم_الخط س

  `حجم_الخط` يضبط حجم الخط الذي سيطبع بالأمر `اطبع`. `حجم_الخط` يأخذ مدخلا عدديا يعبر عن الحجم المرغوب. بـ البكسل.

### عوامل رياضية

الأوامر التالية هي أوامر رياضية أكثر تقدمًا.

تقريب

      تقريب(س)

  `تقريب` يقرّب لأقرب عدد صحيح.

      اطبع تقريب(10.8)
      تقدم 20
      اطبع تقريب(10.3)

  هذا المثال يطبع الأعداد 11 و 10.

عشوائي (عشو)

      عشوائي س،ع

  الأمر `عشوائي` يأخذ مدخلين ويعطي مخرجًا واحدًا. المدخلان يعرفان مجال الأعداد العشوائية التي نريدها، فالمدخل الأول للحد الأدنى والثاني للحد الأقصى. والناتج عدد عشوائي في مجال المدخلات. هنا مثال صغير:

      كرر 500 {
        $س = عشوائي 1،20
        تقدم $س
        در_يسار 10 - $س
      }

  باستعمال الأمر`عشوائي` تضيف لمسة فوضوية لبرنامجك.

باقي

      باقي س،ع

  يعرض `باقي` ما تبقى من قسمة العدد الأول على العدد الثاني.

جذر

      جذر س

  يستخدم الأمر `جذر` للحصول على الجذر التربيعي للعدد المعطى.

طا

      طا

  يعطي هذا الأمر الثابت طا (Pi)، `3.14159`.

جا
، جتا
، ظا

      جا س
      جتا س
      ظا س

  هذه الأوامر تعبّر عن الدوال المثلثية`sin جا`، `cos جتا` و `tan ظا`. مدخل هذه الأوامر عدد.

arcsin قوس جيب الزاوية
، arccos قوس جيب التمام
، arctan قوس ظل الزاوية

      قوس_جا س
      قوس_جتا س
      قوس_ظا س

  هذه الأوامر هي الدوال العكسية للدوال المثلثية sin جا، cos جتا و tan ظا. مدخل هذه الأوامر عدد.

### المدخلات وردود الفعل من خلال الحواري

الحواري أو مربع الحوار هو نافذة منبثقة صغيرة، تظهر بعض ردود الأفعال أو تطلب مدخلات ما.. سلحفاتك لها أمران للحواري: `رسالة` و `اسأل`

رسالة

      رسالة س

  الأمر `رسالة` يحتاج إلى مدخل من نوع سلسلة نصية . فتعرض نافذة منبثقة فيها نص السلسلة.

      رسالة "انطلق مشروع سلحفاتك في 2003 ومازال يعمل مستمتعًا!"

اسأل

      اسأل س

  الأمر `اسأل` يحتاج إلى مدخل من نوع سلسلة . يعرض نافذة منبثقة مثل الأمر رسالة)، مع حقل إدخال. عندما يدخل المستخدم عددًا أو سلسلة فيه، فالنتيجة تحفظ في متغيّر أو تمرّر كمعامل لـأمر ما. مثلا:

      $دخل = ask "ما عام مولدك؟"
      $خرج = 2003 - $دخل
      اطبع "في 2003 كان عمرك " + $خرج + " سنة  في وقت ما."

  إذا ألغى المستخدم حوار الإدخال، أو لم يدخل شيئا على الإطلاق، فإن المتغيّر يبقى فارغا.

## إسناد المتغيرات

أولاً ، سنلقي نظرة على المتغيرات، ثم إسناد القيم لتلك المتغيرات.

المتغيرات هي الكلمات التي تبدأ بـ $ ، في المحرر وهي مميّزة باللون الأرجواني.

المتغيرات قد تحوي عددًا أو سلسلة أو قيمة منطقية. باستعمال الإسناد `=`، يعطي المتغير مُحتواه. سيحتفظ المتغيّر بهذا المحتوى حتى ينتهي البرنامج من التنفيذ أو بعاد إسناد قيمة أخرى للمتغير.

يمكنك استخدام المتغيرات، بمجرد تعيينها، كما لو كانت تساوي محتواها.مثلا في الكود الموالي:

    $س = 10
    $س = $س / 3
    اطبع $س

أولا المتغير `$س` أسندت إليه القيمة `10`. ثم أعيد تعيين `$س` إلى نفسه مقسومًا على `3` - هذا يعني أنّ `$س` قد أسند إليه `10 / 3`. أخيرا يطبع`$س`. في السطرين الثاني والثالث نلاحظ أننا استعملنا `$س` وكأنه يساوي محتواه.

يجب تعيين المتغيرات لاستخدامها. على سبيل المثال:

    اطبع $ع

سينتج عنه رسالة خطأ.

نفرض الكود الآتي:

    $ج = 2004
    $ب = 25

    # الأمر الموالي يطبع "2029"
    اطبع $ج + $ب
    وراء 30
    # الأمر الموالي يطبع "2004 زائد 25 يساوي 2029"
    اطبع $ج + " زائد " + $ب + " يساوي " + ($ج + $ب)

في السطرين الأول والثاني، أسند المتغيران `$ج` و `$ب` إلى 2004 و25. ثم ثم تجد أمرين للطباعة `اطبع` وأمر للعودة إلى الوراء `وراء 30`. التعليقات قبل الطباعة لشرح ما سينتج. استعملنا الأمر `وراء 30` لجعل الكتابة تظهر على سطر جديد. كما قد تلاحظ فالمتغيرات تستخدم في مواضع مختلفة، وتعامل معاملة محتواها. يمكن التعامل معها بـالعمليات أو كمداخل أو معاملات لـأوامر ما.

مثال آخر:

    $اسم = اسأل "ما اسمك؟"
    اطبع "أهلا يا " + $اسم + "! بالتوفيق في تعلّم فنّ البرمجة..."

يبدو جليّا أنّ المتغير`$اسم`، يُعامل على أنه سلسلة نصية.

عند استخدام المتغيرات، يكون المفتش مفيدًا جدًا. يعرض لك محتويات جميع المتغيرات قيد الاستخدام حاليًا.

## التحكم في التنفيذ

أوامر التحكم في التنفيذ تساعدك على التحكم في سيرورة البرنامج.

أوامر التحكم في التنفيذ مميّزة بخط سميك أخضر داكن اللون. تُستخدم الأقواس الحاضنة في الغالب مع أدوات التحكم في التنفيذ و تميّز بالأسود.

### اجعل السلحفاة تنتظر

إذا برمجت قليلا في سلحفاتك ربما قد لاحظت أن السلحفاة قد تكون سريعة في الرسم. هذا الأمر سيجعل السلحفاة تنتظر فترة زمنية معينة.

انتظر

      انتظر س

  الأمر `انتظر` يجعل السلحفاة تنتظر لعدد معين من الثواني.

      كرر 36 {
        تقدم 5
        يمين 10
        انتظر 0.5
      }

  يرسم هذا الكود دائرة، لكن السلحفاة ستنتظر نصف ثانية بعد كل خطوة. مما يعطي انطباعًا أنّ سلحفاة بطيئة.

### تنفيذ إذا

إذا

      إذا شرط منطقي { ... }

  ستنفذ التعليمات التي بين حاضنتين في حالة`إذا` تحقّق الشرط المنطقي أي صح.

      $س = 6
      إذا $س > 5 {
        اطبع "$س أكبر من خمسة!"
      }

  في السطر الأول `$س` يساوي 5. في السطر الثاني نقارن `$س > 5`. فإذا تحقق هذا الشرط، لدينا 6 أكبر من 5، فيسمح أمر التحكّم `إذا` بتنفيذ التعليمات التي ما بين حاضنتين.

### إذا ليس، أو بعبارة أخرى: وإلّا

وإلا

      إذا شرط منطقي { ... } وإلا { ... }

  الأمر `وإلّا` قد يستعمل مع أمر التحكم `إذا`. التعليمات التي ما بين حاضنتين بعد `وإلا` ستنفّذ إذا كان الشرط المنطقي غير محقق أي غلطا.

      جدد
      $س = 4
      إذا $س > 5 {
        اطبع "$س أكبر من خمسة!"
      } وإلا {
        اطبع "$س أصغر من 6!"
      }

  عملية المقارنة تحسب العبارة `$س > 5`. بما أنّ 4 ليست أكبر من 5، فالعبارة غلط. هذا يعني أن ما بين حاضنتي`وإلّا` ستنفّذ.

### حلقة مادام

مادام

      مادام شرط منطقي { ... }

  أمر التحكّم `مادام` يشبه كثيرا الأمر `إذا`. الفرق بينهما أنّ `مادام` تكرر التعليمات التي بين حاضنتين حتى يصبح الشرط المنطقي غلطا.

      $س = 1
      مادام $س < 5 {
        تقدم 10
        انتظر 1
        $س = $س + 1
      }

  في السطر الأول `$س` قيمته 1. في السطر الثاني تحسب العبارة`$س < 5`. والنتيجة صج يبدأ أمر التحكم `مادام` في تنفيذ التعليمات ما بين حاضنتين حتى تصبح قيمة العبارة `$س < 5` غلط. في هذه الحالة، ينفّذ ما بين حاضنتين 4 مرات لأنه كلما نفذنا السطر الخامس زاد `$س` بـ 1.

### حلقة التكرار كرّر

كرر

      كرر عدد { ... }

  أمر التحكم `كرر` يشبه كثيرا الأمر `مادام`. الفرق أنّ `كرر` تكرر التعليمات التي ما بين حاضنتين عدة مرات حسب العدد المحدد.

### حلقة التكرار المعدود لكل

لـكل

      لكل متغير = عدد إلى عدد { ... }

  حلقة `لكل` هي حلقة تكرار معدود، أي أنها كالعدّاد. العدد الأول يضبط بداية متغيّر العدّاد. في كل دورة يزيد العداد حتى يصل إلى العدد الثاني الذي يمثل النهاية.

      لكل $س = 1 إلى 10 {
        اطبع $س * 7
        تقدم 15
      }

  في كل مرة تُنفّذ التعليمات ما بين حاضنتين، ويزيد`$س` بـ1، حتى يصل `$س` إلى 10. ما بين حاضنتين، تطبع `$س` مضروبا في 7. وفي نهاية تنفيذ البرنامج، نحصل على جدول ضرب 7 على الرقعة.

  مقدار الخطوة الافتراضي للحلقة هو 1، يمكنك استخدام قيمة أخرى له

      لكل متغير = عدد إلى عدد خطوة عدد { ... }

### مغادرة حلقة تكرار

اكسر

      اكسر

  يُنهي الحلقة الحالية على الفور وينتقل إلى تنفيذ إلى التعليمة التي تلي هذه الحلقة مباشرة.

### إيقاف تنفيذ البرنامج

اخرج

      اخرج

  إنهاء تنفيذ البرنامج.

### التحقق من التأكيدات في أثناء التشغيل

تأكيد

      تحقق شرط منطقي

  يمكن استخدامها للتحقق من البرنامج أو صحة الإدخال.

      $دخل = اسأل "ما سنة مولدك؟"
      # السنة يجب أن تكون موجبة
      تحقق $in
      > 0

## اصنع أوامرك الخاصة بالأمر تعلم

الأمر `تعلم`
أمر مميّز لأنه يستعمل لإنشاء أوامر جديدة. الأوامر الجديدة التي تنشئها تحتاج إلى مداخل وترجع مخرجًا. انظر للأمر المُنشَأ:

    تعلم دائرة $س {
      كرر 36 {
        تقدم $س
        در_يسار 10
      }
    }

الأمر الجديد `دائرة`. `دائرة` يحتاج إلى مدخل لضبط قطر الدائرة. الأمر `دائرة` لا يرجع مخرجًا. الآن، يمكن استعمال الأمر `دائرة` مثل أي أمر آخر، في ما تلاه من الكود. إليك هذا المثال:

    تعلم دائرة $س {
      كرر 36 {
        تقدم $س
        در_يسار 10
      }
    }

    اذهب 200،200
    دائرة 20

    اذهب 300،200
    دائرة 40

في المثال الموالي، سننشئ أمرًا
. قيمة

    تعلم مضروب $س {
      $ض = 1
      لكل $ي = 1 إلى $س {
        $ض = $ض * $ي
      }
      أرجع $ض
    }

    اطبع مضروب 5

في هذا المثال، أنشأنا أمرًا جديدا أسميناه `مضروب`. إذا كان مدخله العدد `5` حصلنا على نتيجة `5*4*3*2*1`. باستعمال الأمر`أرجع` قيمة المخرج ترجع أثناء التنفيذ.

بعض الأوامر قد تحتاج إلى أكثر من مدخل. في المثال الآتي، نصنع أمرًا لرسم مستطيل:

    تعلم صندوق $س، $ع {
      تقدم $ع
      يمين 90
      تقدم $س
      يمين 90
      تقدم $ع
      يمين 90
      تقدم $س
      يمين 90
    }

يمكنك الآن تنفيذ `صندوق 50، 100` وسترسم السلحفاة مستطيلا على الشاشة.