سؤال س:4: تدريب 4 جرب المقطع البرمجي التالي، واكتب ما يظهر على الشاشة ومتى يحدث ذلك. def on_forever(): while input.is_gesture(Gesture.SHAKE): basic.show_string("Earthquake!") basic.show_icon(IconNames.SQUARE) basic.forever(on_forever)
الإجابة: س:4: في الحالة العادية يظهر رمز المربع (SQUARE) على الشاشة، وعند هزّ المايكروبت تظهر الرسالة "!Earthquake" (وتتكرر ما دام الهزّ مستمرًا)، ثم عند التوقف عن الهزّ يعود لعرض رمز المربع.
خطوات الحل:
- **الشرح:** لنفهم هذا المقطع البرمجي: الدالة `on_forever()` تُنفذ باستمرار بسبب الأمر `basic.forever(on_forever)`. داخل هذه الدالة، يوجد شرط `while` يتحقق من هز المايكروبت باستخدام `input.is_gesture(Gesture.SHAKE)`. - **عندما يكون المايكروبت في حالة هز**: الشرط `while` يكون صحيحاً، فيتم تنفيذ `basic.show_string("Earthquake!")` بشكل متكرر ما دام الهز مستمراً. - **عندما لا يكون هناك هز**: الشرط `while` يكون خاطئاً، فيتم تخطي الحلقة وتنفيذ الأمر التالي `basic.show_icon(IconNames.SQUARE)` الذي يعرض رمز المربع. إذن، في الحالة العادية (بدون هز) يظهر رمز المربع، وعند الهز تظهر رسالة "Earthquake!" وتتكرر طوال مدة الهز، ثم عند التوقف عن الهز يعود عرض رمز المربع.