المتغيرات والتكرارات | الوحدة الثالثة | الدرس الثاني

المتغيرات والتكرارات هو عنوان الدرس الثاني من الوحدة الثالثة التي تحمل اسم “البرمجة بواسطة المايكروبت” في الفصل الدراسي الثالث من مقرر “تقنية رقمية 1 – 3”.
ستتعرف في هذا الموضوع على المتغيرات واستخدامها لإجراء العمليات الرياضية في بايثون. ستتعرف أيضًا على نظام الإحداثيات في المايكروبت وطريقة عمل التكرارات وكيفية استخدامها في بايثون.
لذا قم بقراءة نواتج التعلُّم بعناية، ثم أعد قراءتها وتأكَّد من تحصيل كافة محتوياتها بعد انتهائك من دراسة الموضوع.
نواتج التعلُّم
- إجراء العمليات الرياضية باستخدام الأرقام والمتغيرات في بايثون.
- معرفة الإحداثيات في المايكروبت.
- التعامل مع أوامر اللعب في المايكروبت..
- إنشاء كائن رسومي وجعله يتحرك في شاشة LED.
- استخدام التكرارات في بايثون والتمييز بأنواعها.
- استخدام المسافة البادئة بحذر أثناء إنشاء المقاطع البرمجية.
هيا لنبدأ!
مقدمة – المتغيرات والتكرارات
بعد أن تعرَّفت في الموضوع السابق على بيئة مايكروسوفت ميك كود، ستتعلَّم في هذا الموضوع كيفية إجراء العمليات الرياضية باستخدام الأرقام، وكيفية التعامل مع الإحداثيات، كما ستتعرَّف على كيفية تنفيذ التكرار أثناء البرمجة، وعملية التكرار من المزايا الموجودة في معظم لغات البرمجة.
الحسابات والأرقام
يمكِنك استخدام بايثون لإجراء أي نوع من العمليات الرياضية، ولكن يجب ملاحظة أن العمليات، مثل: الجمع والطرح والضرب والقسمة يتم كتابتها في البرمجة بطريقة مختلفة عن تلك التي تُكتب بها العمليات الرياضية (الحسابية)، حيث يتم استخدام المعاملات الرياضية التالية لتمثيل العمليات الحسابية الأساسية.
على سبيل المثال، يجب أن تتم كتابة المعادلة الرياضية التالية:
يُحدِّد ترتيب العمليات في بايثون سابقًا، وتنطبق عليها نفس القواعد التي سبق أن تعلَّمتها في مايكروسوفت إكسل بشأن استخدام الأقواس.
يتم حساب عمليات الضرب والقسمة قبل عمليات الجمع والطرح، وهذا يعني مثلًا أن ناتج 5 * 2 + 4 هو 14 وليس 30.
في حال أردت تغيير أولوية العمليات الحسابية، يتعيَّن عليك استخدام الأقواس.
يظهر ترتيب العمليات الحسابية كما في الجدول المجاور، حيث يتم تنفيذ المعاملات في نفس المستوى بالترتيب من اليسار إلى اليمين.
يمكِنك العثور على المعاملات الرياضية في مايكروسوفت ميك كود في فئة حساب (Math).
أنشئ مقطعًا برمجيًا في مايكروسوفت ميك كود بايثون يجمع رقمين عند اهتزاز المايكروبت.
لإضافة عملية الجمع:
- من فئة Variables (متغيرات)، اسحب وأفلت أمر item = 0 (العنصر =0)، اكتب اسم المتغيِّر add (إضافة).
- من فئة Input (الإدخال)، اسحب وأفلت دالة run code on Gesture.Shake (run code عند Shake).
- اكتب الأمر global add (إضافة عامة).
- من فئة Variables (المتغيرات)، اسحب وأفلت أمر المساواة، واكتب add (إضافة) على الجانب الأيسر.
- من فئة Math (حساب)، اسحب وأفلت أمر الجمع داخل الجملة البرمجية ثم اكتب الأرقام التي تريد جمعها.
- من فئة Basic (أساسي)، اسحب وأفلت أمر show number (إظهار الرقم)، واكتب add (إضافة) داخل الأقواس.
لاحظ أن
يُطلق على الرموز التي تساعدك على إجراء العمليات الرياضية اسم المعاملات الرياضية.
لمعرفة المزيد من المعلومات عن العمليات الحسابية في بايثون، قم بالاطّلاع على الرابط التالي:
الإحداثيات في بايثون
يتم تمثيل مصابيح Led الموجودة في مايكروبت على شكل شبكة إحداثيات بمحور سيني (x) أفقي ومحور صادي (y) عمودي، وتحتوي هذه الشبكة على 5 صفوف و5 أعمدة من المصابيح.
يختلف نظام التمثيل هذا عن نظام الإحداثيات الديكارتي المعتاد المُستخدَم في الرياضيات، حيث يشبه نظام إحداثيات مقلوبة.
توجد النقطة (0, 0) في الزاوية اليسرى العلوية وتسمى نقطة الأصل التي تُمكِّنك من تحديد موضع مصابيح Led باستخدام الإحداثيات الثنائية.
وتتراوح قيم إحداثيات x بين 0 إلى 4 تمامًا كما هو الحال في شبكة الإحداثيات المُستخدَمة في الرياضيات، وتزداد قيمها من اليسار إلى اليمين. بينما إحداثيات y تتراوح قيمها بين 0 إلى 4 وتزداد قيمها من الأعلى إلى الأسفل.
بإمكانك مراجعة محتوى موضوع “المتغيرات والتكرارات” من بدايته وحتى نهاية هذا القسم، من خلال الرابط التالي:
أوامر اللعب
حان الوقت لتتعرَّف على كيفية إنشاء لعبة بسيطة باستخدام المايكروبت. ستكون “شخصية” لعبتك هي كائن ضوئي، ويتم تحديد موقعه والتحكُّم في حركته باستخدام نظام الإحداثيات.
ستُنشئ مقطعًا برمجيًا يتحرك فيه الكائن إلى اليسار عند الضغط على الزر A.
لمحة تاريخية
يعدُّ رينيه ديكارت (1596 – 1650) الفيلسوف وعالم الرياضيات الفرنسي أول من طوَّر نظام الإحداثيات المُستخدَم في أيامنا هذه، وقد حدث ذلك حين كان مستلقيًا على سريره وأراد إيجاد طريقة دقيقة لتحديد موضع الذبابة التي لاحظها على سقف الغرفة.
لإنشاء الكائن الرسومي:
- من فئة Variables (متغيرات)، اسحب وأفلت أمر item = 0 (العنصر = 0)، واكتب player (لاعب) على الجانب الأيسر.
- اضغط على فئة Advanced (متقدم).
- من فئة Game (اللعبة)، اسحب وأفلت الأمر create sprite at x:2 y:2 (إنشاء كائن رسومي في x:2 وy:2).
- اضبط موضع اللاعب على إحداثيات (4, 2) من شاشة LED.
لجعل الكائن الرسومي يتحرك في شاشة LED:
- من فئة Input (الإدخال)، اسحب وأفلت أمر run code on button pressed (عندما يكون زر run code مضغوط).
- من فئة Game (اللعبة)، اسحب وأفلت الأمر sprite move by 1 (نقل الكائن الرسومي بمقدار 1).
- اكتب player (لاعب) على الجانب الأيسر وأضف القيمة -1 داخل الأقواس.
- اضغط على زر A في المحاكي للتحقُّق من النتيجة.
التكرارات
تحتاج أحيانًا إلى تكرار جزء من المقطع البرمجي عدة مرات في البرمجة، ولهذا السبب فإن معظم لغات البرمجة توفر دوال مختلفة خاصة بالتكرارات البرمجية.
تسمح لك التكرارات بتنفيذ سطر واحد أو مجموعة من التعليمات البرمجية لعدة مرات.
توفر بايثون عددًا من أوامر التكرار التي تساعدك على تجنُب إعادة كتابة أوامر التعليمات البرمجية، وتدعم بايثون نوعين من التكرارات: تكرار for وتكرار while.
الفرق بين تكرار for وتكرار while هو أنه في تكرار for يكون عدد التكرارات التي يتعيَّن إجراؤها محدَّد بالفعل ويُستخدَم للحصول على نتيجة محدَّدة بينما يعمل الأمر أثناء تكرار while حتى يتم الوصول إلى حالة معيَّنة ويتم إثبات العبارة خاطئة.
التكرارات في مايكروبت بلغة بايثون
تكرار for
يتم استخدام تكرار for إذا أردت تكرار مجموعة من الأوامر لعد محدَّد من المرات. يتم تحديد عدد التكرارات في نطاق (range).
مثال برمجي: سقوط المطر
تعرَّفت في الموضوع السابق على مثال يحرِّك به اللاعب كائنًا يسارًا بالضغط على الزر A. سترى في هذا المثال كيف يمكِنك تطبيق تكرار for لجعل الكائن يبدو كأنه يسقط من أعلى.
ستُنشئ مقطعًا برمجيًا يُمثل سقوط المطر على شاشة المايكروبت.
لإنشاء كائن رسومي للمطر:
- من فئة Basic (أساسي)، اسحب وأفلت دالة run code forever (للأبد run code).
- عرِّف متغيِّر باسم rain (مطر) ومن فئة Game (اللعبة)، اسحب وأفلت create sprite at x:2 y:2 (إنشاء كائن رسومي في x:2 وy:2) على الجانب الأيمن.
- من فئة Math (حساب)، اسحب وأفلت أمر randint وعيِّن القيم داخل الأقواس كالتالي ((0, 4), 0).
لاحظ أن
يتيح لك تكرار “للأبد” (forever) تشغيل جزء من البرنامج بشكل مستمر في الخلفية. وفي كل تكرار يسمح بتشغيل المقاطع البرمجية الأخرى في نفس الوقت، حيث أن المقطع البرمجي الموجود داخل تكرار “للأبد” (forever) سينتج عن المقطع الآخر الموجود في برنامجك.
اتبع الخطوات التالية لإكمال المقطع البرمجي لسقوط المطر.
لإنشاء الكائن الرسومي باستخدام التكرارات:
- اضغط على فئة Loops (حلقات).
- حدِّد دالة for وضعها داخل دالة run code forever (للأبد run code).
- من فئة Game (اللعبة)، اسحب وأفلت sprite change property by 1 (تغيير خاصية الكائن الرسومي بمقدار 1)، واضبط الكائن إلى rain (مطر) وproperty (خاصية) إلى Y.
- من فئة Basic (أساسي)، اسحب وأفلت أمر pause (ms) (إيقاف مؤقت (مللي ثانية)) واضبط time (الوقت) إلى 200.
- من فئة Game (اللعبة)، اسحب وأفلت أمر delete sprite (حذف الكائن الرسومي) واضبط الكائن الرسومي إلى rain (مطر).
بإمكانك مراجعة محتوى موضوع “المتغيرات والتكرارات” بدايةً من عنوان “أوامر اللعب” وحتى هذه النقطة، من خلال الرابط التالي:
يتم استخدام تكرار for عندما يكون عدد التكرارات محدَّدًا منذ البداية. ماذا تفعل عندما يكون هذا الرقم غير معروف ويعتمد التكرار على شرط؟ في مثل هذه الحالات يقدم بايثون لك تكرار while.
تكرار While
يتم استخدام تكرار while عندما يكون عدد التكرارات غير معروف (أو محدَّد) سابقًا.
كلما كان الشرط متحقِّقًا يستمر التكرار في عمله لفحص الحالة بصورة مستمرة بعد كل تكرار، وعند عدم تحقُّق الشرط، فإن التكرار يتوقف ليمرِّر التحكُّم في المقطع البرمجي إلى السطر الذي يلي التكرار.
أما عند عدم تحقُّق الشرط منذ البداية، فإن عبارات التكرار لن يتم تنفيذها إطلاقًا.
لتلق نظرة على مثال مع تكرار while. سيظهر في هذا المثال الحرف “A” على الشاشة طالما استمر المُستخدِم بالضغط على الزر A، وسينتهي التكرار عند توقُّف المُستخدِم عن الضغط على زر A.
التكرار اللانهائي
حلقة التكرار اللانهائي في بايثون هي حلقة شرطية متكرِّرة ومستمرة يتم تنفيذها حتى يتدخَّل عامل خارجي في عملية التنفيذ، مثل: الذاكرة غير الكافية أو الضغط على زر الإيقاف.
إذا لم تصبح حالة تكرار while غير متحقِّقة، يصبح لديك تكرار لا نهائي، وهو التكرار الذي يتوقَّف أبدًا. عند استخدام تكرار while، يجب عليك تضمين أمر أو مجموعة من الأوامر التي تغيِّر حالة الشرط من متحقِّق إلى غير متحقِّق.
لتطبِّق الجملة البرمجية التالية، ما الذي تلاحظه؟
في المثال السابق سيتم عرض الرسالة TRUE بشكل مستمر (إلى الأبد)، بينما لن تعرض رسالة FALSE على الشاشة نهائيًا.
بإمكانك مراجعة محتوى موضوع “المتغيرات والتكرارات” بدايةً من عنوان “تكرار While” وحتى نهاية الموضوع، من خلال الرابط التالي:
اختبر تحصيلك لمحتوى الموضوع من خلال الرابط التالي:
الواجب الإلكتروني
إلى هنا يكون قد انتهى موضوع “المتغيرات والتكرارات” لا تنسوا مراجعة نواتج التعلُّم أعلى المقال، وانتظرونا في الموضوع القادم!