الدرس الثاني: المتغيرات والتكرارات
انظر إلى الجدول المقارن: الجمع والطرح والقسمة تكتب في بايثون كما تكتبها في دفترك الرياضي بـ أو أو ، بينما يختلف الضرب ليصبح نجمة واحدة ، ويختلف الأس ليصبح نجمة مزدوجة . لو أردت كتابة المعادلة برمجياً، فإن لغة بايثون تفهمها هكذا: . تذكر دائماً أن الحاسب ينفذ العمليات من اليسار إلى اليمين.
يركز هذا الدرس على العمليات الحسابية في لغة بايثون وكيفية كتابتها بطريقة برمجية صحيحة مثل تحويل الأسس إلى علامة النجمة المزدوجة، مع ترتيب أولويات العمليات بدءا من الأقواس ثم الأسس ثم الضرب والقسمة وأخيرا الجمع والطرح. كما يتعلم الطالب نظام الإحداثيات على شاشة المايكروبوت حيث تبدأ نقطة الأصل من الزاوية اليسرى العليا بالإحداثيين (0,0)، وتمتد قيم س وص حتى 4. يوضح الدرس أيضا كيفية إنشاء الكائنات الرسومية وتحريكها، وتطبيق التكرارات بنوعيها تكرار فور وتكرار وايل، حيث يستخدم تكرار فور لعدد مرات معروف بينما يستمر تكرار وايل طالما كان الشرط محققا. على سبيل المثال، لكتابة معادلة رياضية مثل x تساوي أس تربيع زائد اثنين في أ في ب زائد ب تربيع، فإننا نكتبها في بايثون بالشكل x = a2 + 2ab + b2 مع الحذر دائما عند استخدام المسافة البادئة لأنها تعبر عن بنية الجمل في لغة بايثون.
الفكرة الأساسية
يتناول الدرس كيفية كتابة العمليات الحسابية والرياضية بلغة بايثون، والتعامل مع شبكة الإحداثيات على شاشة المايكروبوت، والتحكم في الكائنات الرسومية وتحريكها، بالإضافة إلى استخدام التكرارات بأنواعها المختلفة لتنفيذ الأوامر البرمجية بكفاءة ودقة.
الشرح
تبدأ العمليات الحسابية في بايثون بكتابة العمليات الأساسية بطرق تختلف عن الرياضيات العادية، فالأسس تكتب باستخدام علامتي نجمة مثل a**2 بدلا من كتابتها بالشكل الرياضي العادي. وتخضع العمليات لنفس أولوية الحساب، فتبدأ العمليات بالأقواس، ثم الأسس، ثم الضرب والقسمة، وأخيرا الجمع والطرح من اليسار إلى اليمين. بالنسبة لنظام الإحداثيات في المايكروبوت، فهو يختلف عن النظام الديكارتي المعتاد، إذ تقع نقطة الأصل (0,0) في الزاوية اليسرى العليا، وتتراوح قيم المحور الأفقي ومحور الصادات بين 0 و4 بحيث تزيد من الأعلى إلى الأسفل ومن اليسار إلى اليمين. لتكرار تنفيذ الأوامر، يوفر بايثون نوعين من التكرار هما تكرار فور ويستخدم عندما يكون عدد التكرارات معروفا ومحددا مسبقا، وتكرار وايل الذي يستمر في العمل طالما أن الشرط محقق ويتوقف عند عدم تحققه. ومن الضروري الانتباه جدا للمسافة البادئة قبل العبارات البرمجية، لأن غياب المسافة البادئة يمنع بايثون من معرفة العبارة التالية أو تحديد اللعبة التي تنتمي إليها الأوامر.
مثال محلول خطوة بخطوة
لإنشاء كائن رسومي يسقط من الأعلى مثل المطر، نبدأ أولا بتعريف دالة التكرار المستمر، ثم نعرف متغيرا باسم rain لإنشاء كائن رسومي باستخدام أمر create_sprite على المحور السيني بموقع عشوائي باستخدام الأمر randint(0, 4) والمحور الصادي عند الصفر. بعد ذلك نستخدم حلقة فور لتكرار حركة النزول أربع مرات، ونقوم بتغيير خاصية المحور الصادي للكائن بمقدار 1 باستخدام الأمر rain.change(LedSpriteProperty.Y, 1) مع وضع مؤقت زمني قدره 200 مللي ثانية باستخدام الأمر pause لنتمكن من رؤية الحركة، ثم نحذف الكائن في نهاية المقطع.
أخطاء شائعة
من أهم الأخطاء الشائعة نسيان المسافة البادئة في بداية الأسطر البرمجية التابعة للحلقات أو الدوال، مما يسبب خطأ في الترجمة. ومن الخطأ أيضا كتابة الأسس في بايثون كرمز رياضي عادي بدلا من استخدام النجمتين المزدوجتين. كما يقع البعض في خطأ عدم تغيير حالة الشرط داخل حلقة وايل، مما يؤدي إلى وقوع البرنامج في حلقة تكرار لا نهائية لا تتوقف أبدا.
سؤالان للتدريب مع الإجابة
السؤال الأول: ما نتيجة حساب العملية الحسابية 5 زائد 6 قسمة 3 ضرب 12 في لغة بايثون؟ الإجابة: النتيجة هي 29، لأن القسمة والضرب تنفذان أولا من اليسار إلى اليمين لتصبح 6 قسمة 3 تساوي 2، ثم 2 ضرب 12 تساوي 24، وأخيرا يضاف إليها 5 لتصبح 29.
السؤال الثاني: متى نستخدم تكرار فور ومتى نستخدم تكرار وايل؟ الإجابة: نستخدم تكرار فور عندما يكون عدد مرات التكرار معروفا ومحددا منذ البداية، بينما نستخدم تكرار وايل عندما يكون عدد التكرارات غير معروف مسبقا ويعتمد على تحقق شرط معين أثناء التشغيل.