كيف تصنع حلقة لا نهاية لها في المعبود. تنفيذ خوارزميات دورية تعتمد على نظام "المعبود". أوامر الروبوت البسيطة

ضع في اعتبارك المشكلة:

المدخلات في البرنامج رقم طبيعي لا يتجاوز 2 * 10 9. حدد مجموع أرقام هذا الرقم.

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

في خوارزميات التكرار ، حيث لا يمكن الحصول على عدد التكرارات لمجموعة معينة من الأوامر حتى اللحظة التي تبدأ فيها ، يتم استخدام الحلقات الشرطية.

دورة وداعا

أحد هذه التركيبات في لغة برمجة Kumir هو دورة وداعا... هذه الدورة ، وغالبًا ما يشار إليها باسم حلقة الشرط المسبق، لديها التنسيق التاليالسجلات:

  • nc حتى الآن
  • دورة_جسم

الشرط المكتوب بعد حتى الآن هو تعبير منطقي.

يتم تنفيذ الحلقة على النحو التالي:

  1. يتم احتساب القيمة تعبير منطقي.
  2. إذا كانت نتيجة الحساب لا ، فإن تنفيذ الدورة سينتهي ، وينتقل المعبود إلى الأمر الأول بعد دورة الوداع. إذا كانت نتيجة الحساب نعم ، فسيتم تنفيذ جسم الحلقة ، وبعد ذلك يتم حساب قيمة التعبير بالقيمة الجديدة مرة أخرى.

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

لنستخدم الآن حلقة while لحل مشكلتنا.

  • إدخال الأسطوانات
  • nc بينما الأسطوانات> 0
  • المجموع: = sum + mod (num، 10)
  • الأسطوانات: = div (num، 10)
  • كمية السحب

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

الدورة "حتى ذلك الحين"

في Kumir ، توجد نسخة أخرى من الحلقة ذات الشرط ، تسمى الحلقة الحلقية حتى ذلك الحين ، والتي تكون بالتنسيق التالي:

  • دورة_جسم
  • kts في حالة

إذا كان في الحلقة أثناء فحص الحالة قبل جسم الحلقة ، ثم في الحلقة حتى ذلك الحين - بعد ذلك. لذلك ، غالبًا ما تسمى هذه الدورة حلقة مع حالة لاحقة... سيتم دائمًا تنفيذ جسم هذه الحلقة مرة واحدة على الأقل.

حتى ذلك الحين ، تعمل الدورة على النحو التالي:

  1. يتم تنفيذ جسم الحلقة
  2. يتم تقييم قيمة التعبير المنطقي. إذا كانت نتيجة الحساب لا ، فسيبدأ جسم الحلقة في التنفيذ مرة أخرى ، وهكذا. إذا كانت نتيجة الحساب نعم ، تنتهي الحلقة ، ويبدأ المعبود في تنفيذ الأمر التالي بعد عقدة.

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

(مقتطف من رمز البرنامج)

  • إدخال الأسطوانات
  • إذا كان العدد 0
  • ثم k: = k + 1
  • kts عند الأسطوانات = 0
  • زهري

المحاضرة 4. التعبيرات الحسابية

التعبيرات الحسابية وقواعد لكتابتها. خوارزميات التغذية الراجعة. وداعا الأمر. الشروط في لغة حسابية... أوامر إذا والاختيار. فرق المراقبة. عرض "مرئي" للأوامر. الاستطراد: قواعد وشكل كتابة التعبيرات الحسابية في فورتران من القرن الحادي والعشرين.

رقم الجريدة

المحاضرة 1. الأهداف الرئيسية للدورة. منهجية بناء مقرر دراسي. نهج إشكالي. يتم تعلم النظرية من خلال الممارسة. نظام كومير هو دعم فعال للمفاهيم التقليدية للغات البرمجة الإجرائية وطرق التصحيح التقليدية. أمثلة على استخدام "كومير" في دورات ما قبل الاحتراف.

المحاضرة الثانية: التعارف العملي على نظام كومير: روبوت المؤدي. مفهوم الخوارزمية. التحكم في أداء الروبوت باستخدام جهاز التحكم عن بعد. الخوارزميات الخطية. سجل الخوارزمية. تراجع: Karel-Robot in الدورة الأوليةالبرمجة في جامعة ستانفورد.

المحاضرة 3. طرق التسجيل "المرئي" للخوارزمية. روبوت تحكم مبرمج. دورة " نذات مرة". استخدام الخوارزميات المساعدة. كتابة الخوارزميات بلغة حسابية.

أعمال الفحص رقم 1.

المحاضرة 4. التعبيرات الحسابية وقواعد كتابتها. خوارزميات التغذية الراجعة. وداعا الأمر. الشروط بلغة حسابية. أوامر إذا والاختيار. فرق المراقبة. عرض "مرئي" للأوامر. الاستطراد: قواعد وشكل كتابة التعبيرات الحسابية في فورتران من القرن الحادي والعشرين.

المحاضرة 5. الكميات في اللغة الخوارزمية. أوامر إدخال / إخراج المعلومات. أمر التعيين. الخوارزميات المساعدة. خوارزميات مع نتائج ووظائف الخوارزميات. دورة "لـ". القيم الجدولية... القيم المنطقية والرمزية والحرفية.

عمل الاختبار رقم 2.

المحاضرة 6. طرق الخوارزمية. تكرار العلاقات. طريقة التكرار. دورة ثابتة. العودية.

المحاضرة 7. الأساسيات الماديةأجهزة الكمبيوتر الحديثة. المعالج الدقيق هو قلب الكمبيوتر الحديث. كيف تصنع جهاز كمبيوتر.

المحاضرة 8. المؤدون الواقعيون والافتراضيون في نظام "كومير". فنان رسام. Lego Robot هو مؤدٍ يتحكم فيه برنامج "Kumir". النص التشعبي في نظام كومير. تحضير الواجبات للطلاب والتحقق منها آليًا.

العمل النهائي.

أثناء قيام الطالب "بتجميع" البرنامج في "PiktoMir" ، ليس عليه عمليًا إتقان "عالم كمبيوتر" جديد وغير عادي. بالطبع يجب أن يتعلم الطفل تشغيل الماوس للحصول على النتيجة المرجوة من الكمبيوتر ، لكن الواجهة ككل تعتمد على المفاهيم والإجراءات المألوفة للطفل ، وهي "شفافة" ولا تتطلب من الطفل التركيز كثيرًا عن عملية التفاعل مع الكمبيوتر. في هذه اللحظة ، يركز الطالب ما يقرب من 100٪ من جهوده (أو ، من الأفضل أن نقول ، "مدى الانتباه") على خوارزمية لحل المشكلة. ولكن بمجرد الانتقال من البرمجة الرسومية إلى البرمجة النصية التقليدية ، يبدأ الطالب في مواجهة "عالم مختلف" ، تختلف قوانينه عن القوانين المعتادة التي سبق دراستها في المدرسة. يتعلق الأمر بشكل أساسي بكتابة التعبيرات الحسابية ، فقد أمضى الطالب عشرات الساعات في إتقان مهارات التلاعب بها في دروس الرياضيات في المدرسة وحقق آلية معينة.

في المهام الأولى للتحكم في الروبوت ، يوضح الكمبيوتر قدراته كآلة تحكم وليس كآلة حوسبة. ولكن بعد ذلك تظهر دورة N مرة ، وعند حل بعض المشكلات ، قد يحتاج الطالب إلى أخذ N رقمًا يظهر كنتيجة لبعض العمليات الحسابية ، على سبيل المثال ، عدد الخلايا في حقل بحجم 9؟ 14. اتضح أنه ليس من الضروري على الإطلاق حساب العدد الإجمالي لخلايا هذا الحقل بنفسك (في عقلك أو على الورق أو باستخدام الآلة الحاسبة) و "إدخال" النتيجة في البرنامج. اتضح أن الكمبيوتر نفسه سيكون قادرًا على إجراء جميع الحسابات اللازمة بمجرد إخباره (كتابته في البرنامج) بما يجب حسابه بالضبط. بمعنى ، تقريبًا ، لحل مشكلة على جهاز كمبيوتر ، لا تحتاج إلى معرفة الكثير "كم سيكون ضعف اثنين" ، ولكن لتتمكن من إخبار الكمبيوتر أنك بحاجة إلى أخذ نتيجة إجراء العملية " مرتين أو العملية "9 مرات في 14".

لا توجد مشاكل في الجمع والطرح. في التسجيل دورة 3 + 3 مراتلا شيء جديد على الطالب. بنفس الشكل تمامًا في دروس الرياضيات ، يكتب الطلاب ، ونأمل أن يحسبوا ، مجاميع واختلافات مختلفة دون استخدام آلة حاسبة. ولكن بالنسبة للتعبيرات الحسابية الأكثر تعقيدًا ، تبدأ قواعد الكتابة في الرياضيات المدرسية واللغات الخوارزمية التقليدية بالاختلاف نوعًا ما.

الحقيقة هي أنه عندما نعمل على الورق وعلى السبورة ، فإننا "نرسم" الصيغ الرياضية - الجذور والكسور والدرجات والمؤشرات - وهذا أمر مريح للغاية. وفي لغات البرمجة التقليدية ، لا يمكن رسم تعبير حسابي ، ولكن يجب "ترميزه" بالضغط على الأزرار الموجودة على لوحة مفاتيح الكمبيوتر. لهذا السبب ، تطور تقليد ما يسمى بالتدوين "الخطي" للصيغ في البرمجة ، والذي يجب على الطالب في بداية القرن الحادي والعشرين أن يعتاد عليه ويتكيف معه. (ربما ، بحلول منتصف القرن ، لن يكون هذا ضروريًا ، انظر البرنامج في أسفل اليمين.) لذلك ، عند إدخال الصيغ المطلوبة (التعبيرات الحسابية) في البرنامج ، سيتعين علينا استخدام لوحة مفاتيح الكمبيوتر والتشفير (تشفير) هذه الصيغ بطريقة معينة. كما هو الحال مع أي مشكلة تتعلق بتشفير المعلومات أو تشفيرها ، قد تصبح هذه المشكلة التقنية البسيطة جذابة لبعض أطفال المدارس (الذين سئموا التحكم في الروبوت). عند حل هذه المشكلة ، اتضح أن هناك رمز نقطة على لوحة المفاتيح ، لكن لا يوجد رمز مضاعف "؟" ، كما أن النقطة أيضًا لا تعمل على الإطلاق كرمز للضرب. كما تبين أنه ليس من المعتاد كتابة المعادلات الحسابية بالصيغة 8 (2 + 3) بعلامة الضرب المفقودة. يمكن للكمبيوتر (بتعبير أدق ، مترجم لغة البرمجة) فهم هذه الصيغ ، لكنه تقليديًا يرفض القيام بذلك ويتطلب إدخال علامة النجمة في الصيغة - علامة الضرب: 8 * (2 + 3). لكن الكمبيوتر ، كقاعدة عامة ، يرى علامتين نجميتين متتاليتين كعلامة على الأس.

تشكل كل هذه التفاصيل الصغيرة مجتمعة العقبة التي يحتاج الطالب للتغلب عليها. هذا عادة ما يكون مباشرًا.

الأطفال ، كقاعدة عامة ، لا يخطئون ، باستثناء واحد واسع الانتشار: كسور النموذج

ويتم كتابتها على شكل 3 + 5/2 و 3 * 5/2 بدون أقواس ، بدلاً من الترميز الصحيح (3 + 5) / 2 و (3 * 5) / 2.

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

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

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

الحروف العالية / المنخفضة والكسور:

الصيغ التي تحتوي على علامات الضرب المحذوفة:

الصيغ التي لا يتم فيها وضع وسيطات الوظائف الأولية بين قوسين:

وضع علامات العملية

وهذه مجرد البداية ، في غضون عقدين من الزمن ستكون نصوص البرامج التي يستخدمها العلماء والمهندسون المظهر الخارجيتشبه الكتب المدرسية للرياضيات الابتدائية والعالية.

خوارزميات التغذية الراجعة. وداعا الأمر

حتى الآن ، عملنا مع الروبوت بأسلوب رسومات Turtle في LOGO ، أي أمر بدون أي ملاحظات. لذلك ، ما فعلناه (من وجهة نظر منهجية) يمكن أن يتم بنفس النجاح ، على سبيل المثال ، في نفس الشعار. يمكن تعلم الخوارزميات المساعدة (مع أو بدون وسيطات) باستخدام الروبوت أو السلاحف.

في البداية ، عند تجميع البرامج للروبوت (أو لـ Vertun) ، كقاعدة عامة ، كان لدينا مسبقًا معلومات شاملة حول وضع الروبوت. لكن الروبوت (وفيرتون) ، من وجهة نظر منهجية ، أكثر ثراءً من السلاحف ، لأنه يحتوي على أوامر تغذية راجعة. وباستخدام هذه الأوامر ، يمكن للرجل الحصول بسرعة على معلومات حول الموقف حول روبوت بعيد منه ، ويمكن للكمبيوتر تلقي المعلومات بسرعة عند تنفيذ البرنامج. على سبيل المثال ، عند تنفيذ الأمر "حر إلى اليسار" ، بغض النظر عمن يأتي ، يقوم الروبوت بنقل جزء من المعلومات حول الموقف الذي هو فيه في الوقت الحالي. يمكن الحصول على معلومة أخرى عن طريق سؤال الروبوت عما إذا كانت الخلية التي يقف عليها مطلية.

عند استخدام جهاز التحكم عن بعد الموضح أعلاه ، يقرأ الشخص إجابات الروبوت من اللوحة في شكل نصي. يمكن لجهاز تحكم عن بعد أرخص أن يحاكي استجابة الروبوت عن طريق إضاءة مصباح (LED). عندما يتم التحكم في الروبوت بواسطة كمبيوتر ، يتم تحويل استجابة الروبوت إلى مستويات إشارة كهربائية. لكن جوهر العملية هو نفسه: عند تنفيذ أمر التغذية الراجعة ، لا تنتقل المعلومات إلى الروبوت فحسب ، بل تنتقل أيضًا في الاتجاه المعاكس ، من الروبوت إلى الكمبيوتر أو الإنسان. ومن هنا جاء مصطلح التغذية الراجعة. من الناحية النظرية ، كان من الممكن القيام بأمر سؤال واحد فقط من كل زوج من النوع: Free Right - Wall Right. ومع ذلك ، فإن هذا من شأنه أن يعقد كتابة الخوارزمية ، لأنه سيتطلب إدخال النفي ، والذي في مرحلة مبكرة من التدريب غير مبرر منهجيًا ، مما يعقد قواعد كتابة البرامج وتنفيذها. بدلاً من التدوين الطبيعي "أعلى الجدار" ، يجب على المرء أن يكتب شيئًا مثل "أعلاه ليس حرًا" ، مما يشير إلى نوع من الازدواجية ، وماذا لو كان هناك شيء بجانب الجدار؟

ما هي المفروشات الروبوتية

بيئة الروبوت عبارة عن حقل مستطيل محاط بسور ومنقسم إلى خلايا ، ويتم وصفه بالقيم التالية: 1) حجم الحقل - عدد الصفوف (من 1 إلى 10) وعدد الأعمدة (من 1) إلى 16) ؛ 2) لكل زنزانة: وجود جدران حول الزنزانة ؛ علامة التظليل كمية الإشعاع (المقاسة بوحدات عشوائية ، يمكن أن تأخذ أي قيمة حقيقية من 0 إلى 100) ؛ درجة الحرارة (تقاس بالدرجات المئوية ، يمكن أن تأخذ أي قيمة حقيقية من -273 إلى +233). ملحوظة. أدنى درجة حرارة ممكنة هي (تقريبًا) الصفر المطلق (0 درجة كلفن). درجة الحرارة العليا هي درجة حرارة حرق الكتب (451 درجة فهرنهايت). درجة الحرارة هذه معروفة لجميع قراء القصة الشهيرة لراي برادبري "فهرنهايت 451".

يسمح نظام أوامر الروبوت له بتحديد قيم كل خصائص الخلية هذه. بالإضافة إلى ذلك ، قد يحتوي القفص على علامات مرئية للمراقب ، ولكن يتعذر الوصول إليها من قبل "حواس" الروبوت: رموز في الزاوية اليسرى العلوية والسفلية اليسرى من القفص ، نقطة في الركن الأيمن السفلي من القفص. جزء لا يتجزأ من البيئة هو الروبوت نفسه (بتعبير أدق ، موقعه في الميدان). لا توجد أوامر في نظام أوامر الروبوت تسمح لك بطلب إحداثيات الروبوت في الميدان.

يحتوي الروبوت على ثلاث مجموعات من أوامر التغذية الراجعة. تسمح لك المجموعة الأولى بتحليل وجود أو عدم وجود جدران من الأعلى والأسفل واليمين واليسار. المجموعة الثانية تتكون من أمرين متعارضين تمامًا - هل القفص مرسوم؟ و "هل القفص نظيف؟"

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

الصف الأفقي المكون من خمس خلايا مع إشعاع معين في كل خلية (10 و 10 و 30 و 20 و 40) هو نظير دقيق لجدول خطي لأعداد حقيقية من خمسة عناصر. ويمكن إعادة صياغة كل مشكلة جداول بيانات خطية تقريبًا كمشكلة روبوت. في مثل هذه الصيغة ، سيكون من الواضح سبب ظهور مثل هذه المشكلة ولماذا يجب حلها. لنتخيل أنه يوجد في حقل الروبوت على اليمين جدار يتعين على الناس الذهاب إليه - ربما رجال الإنقاذ. تحتاج أولاً إلى معرفة مدى خطورة المرور على طول الممر على الصحة ، وما هو مستوى الإشعاع. إذا تحرك الناس بسرعة ثابتة تقريبًا ، فإن جرعة الإشعاع التي يتلقونها ستكون متناسبة مع مجموع مستويات الإشعاع في جميع خلايا الممر إلى الجدار. لذلك ، يمكن إعادة صياغة تحليل درجة خطورة هذا الممر على حياة المنقذين كمشكلة حساب الإشعاع الكلي في خلايا المرور. هذه هي مشكلة إيجاد مجموع عناصر الجدول ، تمت صياغته من حيث التحكم في الروبوت. وبالمثل ، يمكنك إعادة صياغة أي مهمة تقريبًا لمعالجة الجداول (المصفوفات).

التمرين... إعادة صياغة المهام "الحد الأدنى لعنصر الصفيف" و "فهرس الحد الأدنى لعنصر الصفيف" من حيث التحكم في الروبوت.

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

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

كما ترى ، تستخدم خوارزمية مجموع العناصر حلقة "وداعًا" لم نقدمها بعد. هنا تقدمنا ​​قليلا على أنفسنا. يجب تقديم حلقة "bye" عند مناقشة بعض المشاكل (نهج إشكالي) ، على سبيل المثال ، كما هو الحال في الكتاب المدرسي:

"يوجد جدار في مكان ما أسفل الروبوت في الملعب. من الضروري تحريك الروبوت عموديًا إلى الحائط ، أي. ضع الروبوت في القفص مباشرة فوق الحائط على نفس الوضع الرأسي للروبوت ". يمكنك محاولة حل هذه المشكلة يدويًا أولاً. يمكن للمدرس حتى رسم حقل روبوت على ورقة ، وفي الوقت الحالي ، عدم إظهار الورقة لتلاميذ المدارس ، اتبع أوامرهم. قريباً ، سوف يفهم تلاميذ المدارس أنه يتعين عليهم أن يسألوا طوال الوقت ، "هل هو خالٍ من الأسفل؟" (أو "أسفل الحائط؟") وأمر "لأسفل" حتى يصبح الروبوت حراً.

عادة ، بعد 10 دقائق من هذه اللعبة ، يكون لدى كل طالب في الفصل فكرة مفصلة عن كيفية قيادة الروبوت من أجل حل المشكلة. هذا الفهم هو الهدف المنهجي لمثل هذه "اللعبة".

إن التقنية المنهجية لمثل هذا الإدخال لتصميم جديد للغة البرمجة G.V. وصف ليبيديف في محاضراته ما يلي:

"عندما يكتشف الطلاب بالتفصيل كيفية حل المشكلة المذكورة أعلاه أثناء التحكم في الروبوت" يدويًا "، تحدث معارضة رئيسية لطريقتنا المنهجية بين هذا العمل" يدويًا "ونظام التحكم المبرمج.

"رائع! - يقول المعلم. - اكتشف الجميع كيفية التحكم في الروبوت. لكننا لا نتعامل مع التحكم اليدوي في الروبوت ، ولكن مع علوم الكمبيوتر. لذلك ، مهمتنا هي كتابة خوارزمية للكمبيوتر ، عند تنفيذها ، سيصدر الكمبيوتر أوامر الروبوت حتى يتم حل المشكلة. لاحظ أن المسافة من الروبوت إلى الحائط غير معروفة ، لكن الكمبيوتر ، الذي يقوم بتشغيل الخوارزمية (ولا يعرف المسافة) ، يجب أن ينقل الروبوت إلى الحائط. حاول كتابة خوارزمية كهذه. بعد كل شيء ، أنت تفهم كيف تحتاج إلى التحكم في الروبوت ، وما الأوامر التي يجب أن يصدرها الكمبيوتر إلى الروبوت. لذا قم بتدوينها في شكل خوارزمية حاسوبية ". أود أن ألفت انتباهكم مرة أخرى إلى هذا النهج الإشكالي. بعد كل شيء ، عمليا في هذا المكان نطلب من تلاميذ المدارس أن يبتكروا دورة "وداعا". أي ، على عكس التسلسل القياسي (شكل الترميز أولاً ، ثم دلالاته (المعنى) ، ثم حل المشكلات) ، نحدد المشكلة أولاً ، ثم نحلل كيفية حلها ، أي نحن نفهم معنى (دلالات) البناء المستقبلي ، ثم نطلب من الطلاب أن يبتكروا شكلاً من أشكال التسجيل ".

حلقة while هي بناء معقد للغاية. وعملية إتقانها أفضل لجعلها مرئية. يشرح البرنامج التعليمي هذه الدورة بواسطة طرق مختلفة، بما في ذلك استخدام مخطط كتلة. إن التفسير المرئي لعمل دورة "الوداع" لا يقل أهمية عن وضع التنفيذ التدريجي في "Kumir" ، نظرًا لأن الصور الرسومية والملاحظات في عملية نشاط الفرد يتم استيعابها بشكل أفضل من خلال وعي الطالب أكثر من الكلام والصيغ الرياضية المنبثقة من المعلم.

ينفذ خطوة واحدة من البرنامج ويدخل في وضع PAUSE. عندما يبدأ في حالة التحرير والتحليل ، فإنه يتخطى سطور "الاستخدام" ويتوقف قبل تنفيذ السطر الأول من مقدمة البرنامج الرئيسي (إن وجد) أو قبل تنفيذ السطر الذي يحتوي على كلمة "alg" من الخوارزمية الرئيسية. يتم التعامل مع تنفيذ الأمر لاستدعاء إجراء الخوارزمية كخطوة واحدة. إخراج نتائج العمليات الحسابية وفحوصات الحالة إلى الحقول.

يتم تنفيذه بشكل مشابه لأمر "STEP". يكمن الاختلاف في تنفيذ الأمر لاستدعاء إجراء الخوارزمية أو حساب قيمة وظيفة الخوارزمية (إذا تم تقديمها في نافذة العمل). في هذه الحالات ، فإن الخطوة التالية هي تنفيذ سطر العنوان خوارزمية مساعدة... في المستقبل ، سيؤدي الأمر "step" أو "STEP" إلى تنفيذ الخطوة التالية ضمن الخوارزمية المساعدة التي يتم تنفيذها.

دعنا نحاول تنفيذ الخوارزمية "المشي حتى النهاية". سنقوم بتنفيذ البرنامج خطوة بخطوة من خلال النقر على أيقونة STEP. نحن مهتمون بتنفيذ دورة "الوداع". أولاً ، يتم فحص الشرط "مجاني إلى الأمام". الجواب هو "نعم" ، مما يعني أنه يجب تنفيذ جسم الحلقة. والروبوت يتحرك لأسفل خلية واحدة. عندما ينتهي جسم الحلقة ، نعود ونفحص الحالة مرة أخرى. وهكذا ، حتى اليوم التالي ( التمرين: ما النتيجة؟) عند الخطوة ، سيصطدم الروبوت بالحائط وسيؤدي التحقق من الحالة إلى النتيجة "لا". ثم ننتهي من تنفيذ الدورة ونبدأ بتنفيذ الأوامر المكتوبة في البرنامج بعد kts.

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

ماذا لو كانت بيئة الروبوت مختلفة وكان يقف بالفعل فوق الحائط قبل اكتمال الدورة؟ دعنا نحاول تنفيذ الخوارزمية بمثل هذه الشروط الأولية. القليل من الخوف

ولكن ماذا لو تعطل الروبوت؟ لا شيء من هذا القبيل. لم ينكسر الروبوت ، وانتهت الدورة ، لأن الشرط "خالٍ من الأسفل" في الفحص الأول لم يتم استيفائه ، وبالتالي ، لا يتم تنفيذ جسم الدورة ولو مرة واحدة. هذه إحدى السمات المهمة لدورة الوداع.

ميزة أخرى مهمة لتنفيذ حلقة "bye" هي إمكانية التكرار - التنفيذ اللانهائي لجسم الحلقة. لنفترض أننا اختلطنا الأمر وبدلاً من الأمر "down" ، كتبنا أمر "الرسام" داخل الحلقة. إذا كان مجانيًا أسفل الروبوت ، فلن يتحرك الروبوت في أي مكان ، ولكنه سيقف ثابتًا ولأجل غير مسمى يرسم فوق الخلية التي يقف فيها. إذا قمت بتشغيل مثل هذا البرنامج ، فيمكنك معرفة الحلقات من خلال عدد الخطوات التي يقوم بها البرنامج ، والتي ستزداد بسرعة أمام أعيننا ، بينما يقف الروبوت ثابتًا.

الميزة الثالثة والأخيرة لحلقة "bye" هي أن شرط استمرار الحلقة أثناء تنفيذ جسم الحلقة لم يتم التحقق منه. دعونا نغير الخوارزمية قليلاً مرة أخرى عن طريق إضافة أمر "down" آخر إلى جسم الحلقة. دع الروبوت يكمل المهمة بشكل أسرع. كقاعدة عامة ، لا يرى الطلاب خطأ مثل هذا البرنامج ، بافتراض غير صحيح أن حالة الحلقة يتم التحقق منها بطريقة سحرية في كل لحظة من تنفيذ جسم الحلقة. هذا، بطبيعة الحال، ليس هو الحال. المثال المعطى يوضح ما نشأ خطا وقت التشغيل، على الرغم من أن شرط الحلقة كان (في صيغة الماضي) القيمة "نعم". ولكن قبل الخطوة الثانية "لأسفل" ، لم يتحقق أحد من الحالة. وبسبب هذا ، كان هناك رفض في البرنامج.

الشروط بلغة حسابية. إذا وحدد الأوامر

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

يتم الحصول على الخوارزمية بمجرد إعادة صياغة الحل للمشكلة السابقة ، ما عليك سوى إضافة الأمر "if".

يمكن العثور على السؤال المنهجي حول سبب ظهور "إذا" في الدورة التدريبية بعد إنشاء "وداعًا" في "12 محاضرة" بواسطة G.V. ليبيديفا: "بالطبع ، من السهل تقديم وشرح الأمر" if "باستخدام بعض الأمثلة على الخطوة" الحذرة ":" إذا كان القاع مجانيًا ، فكل شيء معطل ". المشكلة ، في رأينا ، هي أنه إذا بدأت من هذا (وخاصة إذا أدخلت أمر "if" قبل الدورات) ، فلن يكون لدى أطفال المدارس أي سياق خارجي (وإن لم يكن رسميًا) في رؤوسهم ، والذي من خلاله ستكون كتابة هذا الفريق مفيدة لحل بعض المهام ذات المعنى. بعد تحليل مثال واحد على الأقل بحلقة وبداخله "if" ، يظهر هذا السياق الخارجي. ثم من الممكن بالفعل دراسة الأمر "إذا" بدون دورات - سيتخيل الطلاب الموقف الذي تنشأ فيه الحاجة إلى مثل هذا الأمر. ولكن عند التعامل مع هذا المثال الأول (مع الحلقة و "if") ، فإن الأمر "if" ليس لديه ما يتعلمه. الأمثلة التوضيحية الأخرى ليست مطلوبة ببساطة - تحتاج إلى حل المشكلات. لذلك ، نعتقد أنه لأول مرة يجب أن يظهر الأمر "if" داخل الحلقة. " يمكن أن يكمن تعقيد الأمر "if" في سجل الشرط فقط. يمكنك طرح مشكلة لأطفال المدارس - اكتب رسميًا الحالة "الروبوت يقف في الزاوية":

(الجدار الأيسر والجدار العلوي)

أو(أعلى الجدار والجدار الأيمن)

أو(الجدار الأيمن والجدار السفلي)

أو(الجدار السفلي والجدار الأيسر)

أمر الاختيار

الأمر "select" هو الأمر الأول "غير الضروري" في اللغة الخوارزمية. من المستحيل صياغة مشكلة لا يمكن حلها بدون هذا الأمر. يبسط الأمر "select" التسجيل فقط في المواقف التي توجد فيها العديد من الخيارات. ولكن حتى في هذه الحالة ، يمكن تدوين الخوارزمية ، وتقتصر على استخدام الأمر "if" فقط.

عرض "مرئي" للأوامر

يمكن شرح دورة "الوداع" ليس فقط لتلاميذ المدارس الذين يستخدمون "Kumir" مع الروبوت ، ولكن أيضًا لمرحلة ما قبل المدرسة ، باستخدام الأخ الأصغر لـ "Kumir" - "PiktoMir". من المحاضرة السابقة ، نحن على دراية بـ Vertun ، الذي يمكنه السير في مجال مشابه للروبوت. يعتبر Vertun مؤديًا مثيرًا للاهتمام ، ولديه أوامر ملاحظات: يمكن لـ Vertun التحقق مما إذا كان القفص الذي يقف عليه مرسومًا فوقه وما إذا كان هناك جدار أمامه. لدى Vertun ، مثل الروبوت ، مجموعة مزدوجة من أوامر الملاحظات. ولكن هناك أسباب وجيهة لذلك في PiktoMir. إذا تمكنا في "Kumir" من الحصول على ما يعادل الأمر "free right" من أمر Robot "على الجدار الأيمن" عن طريق إضافة النفي "not" داخل الأمر ، ثم في النمط المرئي للبرمجة في "PictoMir" الجسيم غير موجود. هذا يعني أنه لا يمكنك الاستغناء عن فريقين وتحتاج إلى الأربعة.

تشير الصور التوضيحية الموضحة في الشكل إلى أزواج الأوامر هذه (من اليسار إلى اليمين): "خلية مملوءة" (حقل رمادي) ؛ "جدار أمامك" (جدار من الطوب) ؛ "القفص نظيف" ( اللون الاخضرمجالات)؛ "أمامنا" (تم تدمير الجدار).

أمر الاختيار

إذا كان الشرط 1: السلسلة 1

بالشرط 2: السلسلة 2

إذا كان الشرط n: السلسلة n

وإلا فإن السلسلة n + 1

الكلمة الأساسية بخلاف ذلك ، جنبًا إلى جنب مع سلسلة الأوامر المقابلة ، قد تكون مفقودة:

إذا كان الشرط 1: السلسلة 1

بالشرط 2: السلسلة 2

إذا كان الشرط n: السلسلة n

يتحقق "Kumir" أولاً من الشرط 1. إذا تم استيفائه ، ينفذ "Kumir" الأوامر من السلسلة 1 ، ثم ينتقل إلى تنفيذ الأوامرمكتوب بعد كلمة كل شيء. خلاف ذلك ، "Kumir" يفعل الشيء نفسه مع الشرط 2 والأوامر من السلسلة 2 ، إلخ.

يتم تنفيذ الأوامر المكتوبة بعد كلمة "خلاف ذلك" عندما لا يتم استيفاء أي من الشروط.

في الأمر ، لا يتم دائمًا تحديد أكثر من سلسلة أوامر واحدة ، حتى إذا تحققت عدة شروط. ينتهي تنفيذ الأمر select بعد العثور على الشرط الأول (بالترتيب) بالقيمة yes (وتم تنفيذ سلسلة الأوامر المقابلة).

توجد ثلاثة أوامر للتحكم في التنفيذ بلغة كومير:

وافق ، نظرا ، فمن الضروري.

تنسيق المكالمة:

وافق<ЛОГ ВЫРАЖЕНИЕ>

معطى<ЛОГ ВЫРАЖЕНИЕ>

من الضروري<ЛОГ ВЫРАЖЕНИЕ>

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

كيف يمكن استخدام هذه الشروط في PiktoMir؟ يمكن وضع الشروط في بداية الخوارزميات المساعدة في خلايا خاصة. تحتوي الألوان الزرقاء على مكرر (لتنظيم الدورة N مرات) ، والأخرى الوردية - شرط تنفيذ الخوارزمية f1 - f5. كما ذكرنا سابقًا في المحاضرة 3 ، تساعد الحلقة N من المرات الطالب على حفظ الخلايا عند وضع الخوارزمية.

ولكن إذا كانت المهمة البسيطة ، على سبيل المثال ، نقل Vertun إلى اليمين إلى الحائط ، فقد يبدو البرنامج كما يلي:

في الواقع ، إذا "زقزقت" حالة Vertun ، يمكنك بسهولة حساب أن هناك 4 خطوات على الحائط. إنها مسألة أخرى إذا لم يكن الموقف مرئيًا لنا ولا يمكننا التعرف عليه إلا من خلال التعليقات الواردة من Vertun. على غرار الموقف مع الروبوت ، يجب على الطالب أن يسأل فيرتون قبل أن يتقدم إلى الأمام إذا كان هناك جدار أمامه. في لغة الخوارزميات المدرسية ، عندما يضطر الطلاب إلى التفكير في بناء دورة "الوداع" ، لا يزال لدى الأطفال مساحة كبيرة للخيال ، نظرًا لأن حدود اللغة الخوارزمية غير مرئية. في PiktoMir ، الطفل لديه ما يراه على الشاشة فقط. ولا يمكن وضع الشروط إلا في مكان واحد. عليه فقط أن يجربها.

سيعمل مثل هذا البرنامج بشكل صحيح مع البيئة الحالية لـ Vertun (وبالطبع في جميع الحالات عندما يكون الجدار أقرب من أربع خطوات من وضع البداية).

دعونا نشرح كيف تعمل الخوارزمية المساعدة f1. قبل بداية الخوارزمية (المضمنة في 12 خلية قابلة للتنفيذ) ، يتم تنفيذ أمر Vertun الموجود في المربع الوردي. إذا كانت الإجابة "نعم" ، فسيتم تنفيذ الخوارزمية عدة مرات كما هو موضح في الحقل الأزرق. في هذه الحالة ، يتم تخطي الخلايا الفارغة ، ويتم استدعاء الأمر من الحقل الوردي في كل مرة قبل دورة التنفيذ التالية للخوارزمية f1.

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

nts <синее поле> فقط وداعا <розовое поле>

<команды в клетках алгоритма>

لكن لا يوجد مثل هذا البناء في لغة حسابية. في هذه الحالة ، يتحول f1 إلى نظير للبناء "if" ، في حالة وجود مكرر فارغ (حقل أزرق فارغ) أو مكرر واحد ، وتتحول خوارزمية f1 إلى حلقة "وداعًا" إذا كان الشرط موجودًا ( الحقل الوردي) والمكرر لانهائي.

التمرين... تذكر كيفية بناء حلقة من f1 N مرة.

ما الذي سيحفز الطفل على استخدام دورة الوداع (استخدم الصندوق الوردي)؟ الحقيقة هي أنه لا يوجد سوى 7 مكررين في PiktoMir: 1 مرة ، 2 مرات ، 3 مرات ، 4 مرات ، 5 مرات ، 6 مرات و "إعلان لانهائي". مع هذه المجموعة ، يمكنك الوصول إلى الحائط عندما يكون 1 أو 2 أو 3 أو 4 أو 5 أو 6 خطوات. ولكن ماذا تفعل عندما يكون هناك 7 خطوات على الحائط أو عندما يكون هناك العديد من الخطوات بحيث لا يستطيع الطفل ببساطة حساب رقمه؟ هناك تكرار "لانهائي" ، وحتى إذا لم يتقن الطفل هذا المفهوم بعد ، فبعد الاطلاع على الخيارات القليلة لإنشاء البرامج في PictoWorld ، سيحاول بالتأكيد الخيار مع المكرر "اللانهاية" في قفص أزرق و شرط ضروري في قفص وردي. ستكون هذه دورة "الوداع" التي أنشأها الطفل (بوعي).

تشجع اللغة الرسومية لـ "PiktoMir" الطفل على ابتكار دورة "الوداع" بقوة أكبر من اللغة الخوارزمية لـ "Kumir". والحقيقة هي أنه عند "العبث" بـ "PiktoMir" يكون الطفل محدودًا للغاية في اختيار الوسائل. "PiktoMir" في متناول يدك ، ويمكن دراسة اللغة الخوارزمية لفترة طويلة. في PiktoMir ، يمكنك استعراض جميع خيارات البرمجة بسرعة ، وبما أنه توجد أيضًا دورة "وداعًا" فيما بينها ، يمكنك فتحها أيضًا. الفرق بين "Kumir" و "PiktoMir" يشبه الفرق بين الشطرنج والداما. حول هذا الأخير ، كتب الكاتب الأمريكي الشهير إدغار آلان بو في القصة البوليسية "جريمة قتل في شارع مورغ" على النحو التالي:

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

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

Kushnirenko A.G.، Lebedev G.V.، Svoren R.A. أساسيات المعلوماتية وعلوم الحاسب. م: التعليم ، 1990 ، 1991 ، 1993 ، 1996.

لسوء الحظ ، من المستحيل استدعاء الخوارزمية "المشي طوال الطريق" في "Kumir" ، نظرًا لأن "قبل" كلمة رئيسيةلغة.

12 محاضرة حول الغرض من دورة علوم الكمبيوتر المدرسية وكيفية تدريسها: أ. كوشنرينكو ، ج. ليبيديف. // أدوات. موسكو: مختبر المعارف الأساسية ، 2000.

بطاقات المهام

    ابحث بين الأعداد الصحيحة التي تم إدخالها من لوحة المفاتيح عدد السالب

    يتم إعطاء رقمين تعسفيين. بينما يكون منتجهم أقل من 100 ، قم بزيادة كل رقم بمقدار 2 واعرض الأرقام النهائية على الشاشة

    يتم إدخال N- الأعداد الصحيحة بالتسلسل. أوجد عدد الخمسات في تسلسل

    يتم إدخال N- الأعداد الصحيحة بالتسلسل. أوجد الفرق بين القيم القصوى والدنيا للأرقام المعطاة

    ابحث بين الأعداد الصحيحة التي تم إدخالها من لوحة المفاتيح عدد السالب

    يتم إعطاء رقمين تعسفيين. بينما يكون منتجهم أقل من 100 ، قم بزيادة كل رقم بمقدار 2 واعرض الأرقام النهائية على الشاشة

    يتم إدخال N- الأعداد الصحيحة بالتسلسل. أوجد عدد الخمسات في تسلسل

    يتم إدخال N- الأعداد الصحيحة بالتسلسل. أوجد الفرق بين القيم القصوى والدنيا للأرقام المعطاة

    ابحث بين الأعداد الصحيحة التي تم إدخالها من لوحة المفاتيح عدد السالب

    يتم إعطاء رقمين تعسفيين. بينما يكون منتجهم أقل من 100 ، قم بزيادة كل رقم بمقدار 2 واعرض الأرقام النهائية على الشاشة

    يتم إدخال N- الأعداد الصحيحة بالتسلسل. أوجد عدد الخمسات في تسلسل

    يتم إدخال N- الأعداد الصحيحة بالتسلسل. أوجد الفرق بين القيم القصوى والدنيا للأرقام المعطاة

    ابحث بين الأعداد الصحيحة التي تم إدخالها من لوحة المفاتيح عدد السالب

    يتم إعطاء رقمين تعسفيين. بينما يكون منتجهم أقل من 100 ، قم بزيادة كل رقم بمقدار 2 واعرض الأرقام النهائية على الشاشة

    يتم إدخال N- الأعداد الصحيحة بالتسلسل. أوجد عدد الخمسات في تسلسل

    يتم إدخال N- الأعداد الصحيحة بالتسلسل. أوجد الفرق بين القيم القصوى والدنيا للأرقام المعطاة

التعرف على برنامج كومير إتقان أساسيات البرمجة.

في ذلك ، يمكن للطلاب اكتساب مهارات عملية في إنشاء وتصحيح خوارزمية ، والعمل مع فنانين مثل Robot و Draughtsman و Aquarius و Grasshopper و Turtle.

عند دراسة أحد أصعب أقسام علوم الحاسب "الخوارزميات والبرمجة".

الغرض من التطوير :

تحميل:


معاينة:

التطوير المنهجي في المعلوماتية.

الموضوع: "الروبوت المؤدي في برنامج كومير في دروس علوم الكمبيوتر"

مدرس تكنولوجيا "المعلوماتية وتكنولوجيا المعلومات والاتصالات"

ملاحظة توضيحية

هدف التنمية: لدراسة إمكانيات البرمجة على مثال روبوت منفذ معين باستخدام بيئة IDC ؛ لإعطاء المهارات العملية للعمل مع المؤدي.

التطوير المنهجيتم تجميعها لدروس المعلوماتيةتدرب على الكمبيوتر: العمل مع منفذ التدريب على الخوارزميات ؛ تجميع الخطي والمتفرعة و خوارزميات دوريةإدارة المؤدي؛ تجميع الخوارزميات ذات البنية المعقدة ؛ استخدام الخوارزميات المساعدة (الإجراءات ، الإجراءات الفرعية).

يجب أن يعرف الطلاب:

  • ما هو المؤدي SKI Robot ، بيئة أداء الروبوت ؛
  • ما هي الخوارزميةما هي الخصائص الرئيسية للخوارزمية؟
  • طرق كتابة الخوارزميات: المخططات القُطرية ، واللغة الخوارزمية التعليمية ؛الإنشاءات الخوارزمية الأساسية: التالية ، المتفرعة ، الحلقة ؛ الهياكل
  • الخوارزميات. ⇒ تخصيص الخوارزميات المساعدة ؛ تقنيات بناء الخوارزميات المعقدة:

يجب أن يكون الطلاب قادرين على:

  • فهم أوصاف الخوارزميات في لغة الخوارزميات التعليمية ؛
  • تتبع الخوارزمية لفناني الأداء المعروف ؛
  • يؤلف خوارزميات تحكم خطية ومتفرعة ودورية للروبوت المنفذ ؛ تسليط الضوء على المهام الفرعية ؛ تحديد واستخدام الخوارزميات المساعدة.

الدرس 1 (2 ساعة) الدرس 1.

فنان روبوت.نظام أوامر المنفذ.

خطة الدرس.

  1. وصف SKI لفناني الأداء ، بيئة المؤدي.

2. تحليل الخوارزميات النموذجية للروبوت.

خلال الفصول.

النظر في وصف المؤدي.

بيئة الفنان: Performer الروبوت قادر على الإبحار في متاهة مرسومة على طائرة مقسمة إلى خلايا.

روبوت SKI : أوامر بسيطة: أعلى ، أسفل ، يسار ، يمين ، رسم.

أوامر منطقية: (فحص الشرط)

أعلى مجانا أسفل مجانا

ترك الحق الحر مجانا.

الوصلات المنطقية: AND، NOT، OR:

مثال: (ليس اليسار مجانيًا) أو (ليس حقًا مجانيًا)

قيادة الفرع: أمر حلقة:

إذا كانت الحالة ثم nts حين الشرط

سلسلة أوامر سلسلة الأوامر

كل kts

(في KIMs لعام 2009 ، اختلفت أوامر الروبوت عن الأطفال العاديين ، مما أدى إلىارتباك :)

قيادة الفرع: أمر حلقة:

إذا كانت الحالة ثم nts بينما الشرط هو القيام به

سلسلة أوامر سلسلة الأوامر

نهاية النهاية

منظر عام لنافذة برنامج كومير. البيئة الرسومية للروبوت:

في CMMs للإصدار التجريبي 2010 ، تم تغيير تنسيق الأمر إلىمعتاد

إجراء إنشاء الخوارزمية:

1- الفرق أدوات - تحرير بيئة البدايةارسم الجدران في حقل الروبوت واضبط الروبوت على موضعه الأولي.

2- الفرق الروبوت - تغيير بيئة البدايةحافظ على البيئة الجديدة.

3- الفرق إدراج - استخدام الروبوتحدد المنفذ.

4 في نافذة المستند ، اكتب الخوارزمية باستخدام القائمةإدراج.

5. استخدام أوامر التنفيذ - التنفيذ بشكل مستمر (أو خطوة بخطوة) لتشغيل الخوارزمية.

6. ضع في اعتبارك نتيجة الخوارزمية ، وإذا لزم الأمر ، قم بتصحيحها.

الدرس 1 (2 ساعة) الدرس 2.

العمل التطبيقي "رسم خوارزميات خطية ".

المهام: 1. إنسان آلي في نقطة عشوائية في الميدان. قم بالطلاء فوق الخلية أعلى وأسفل وعلى يمين الموضع الأصلي.

  1. روبوت في نقطة عشوائية في الميدان. انقل خلايا الروبوت 4 إلى اليمين من خلال الرسم عليها.
  2. قم بإنشاء بيئة بداية جديدة عن طريق رسم مربع به جانب مكون من 4 خلايا على السبورة. احفظ الإعداد كنقطة البداية.
  3. قم بإنشاء بيئة انطلاق جديدة من خلال رسم ممر به ممرات في الجدران في الحقل. احفظ المفروشات باسم obd2.fil. قم بتغيير بيئة البداية إلى البيئة التي تم إنشاؤها حديثًا.

الدرس 2 (2 ساعة) الدرس 1.

عنوان : التفريع والتنقيح المتسلسل للخوارزمية.

تحليل مهام CMM باستخدام مؤدي الروبوت.

استخدم الروبوت

alg kim 2009

مبكرا

إن لم يكن خاليًا من الأسفل

اذن صحيح

الكل

إن لم يكن خاليًا من الأسفل

اذن صحيح

الكل

إن لم يكن خاليًا من الأسفل

اذن صحيح

الكل

يخدع

استخدم الروبوت

alg kim 2010

مبكرا

إن لم يكن خاليًا من الأسفل

اذن صحيح

الكل

إن لم يكن خاليًا من الأسفل

اذن صحيح

الكل

إن لم يكن خاليًا من الأسفل

اذن صحيح

الكل

يخدع

إلخ. شريحة. رقم 14. تجميع وتصحيح الخوارزميات المتفرعة

مهام. انظر المرفق.

الدرس 3. الخوارزميات الدورية. الدرس 1-2

استهداف: للكشف عن جوهر مفهوم الدورة في الخوارزميات ، لإظهار أشكال دورات الكتابة للخوارزميات ، لإعطاء المهارات اللازمة لإنشاء وكتابة الخوارزميات الدورية.

إلخ. شريحة. رقم 15. تجميع وتصحيح الخوارزميات الدورية

1. قم بعمل خوارزمية ترسم جميع الخلايا الداخلية المجاورة للجدار.

استخدم الروبوت

alg

مبكرا

nts على اليمين حتى الآن مجاني

رسم أكثر؛ إلى اليمين

عقدة

nts بينما أدناه مجاني

رسم أكثر؛ تحت

عقدة

nts حتى يتم تحرير الجزء السفلي

رسم أكثر؛ إلى اليسار

عقدة

يخدع

2. عمل خوارزمية ترسم كل الخلايا الموجودة بين الروبوت والجدار. المسافة إلى الجدار غير معروفة.

استخدم الروبوت

alg

مبكرا

nts على اليمين حتى الآن مجاني

إلى اليمين؛ رسم أكثر

عقدة

يخدع

3. عمل خوارزمية ترسم جميع الخلايا بين الجدارين.

استخدم الروبوت

alg uch3

مبكرا

nts حتى (ليس من أعلى بحرية) أو (ليس من أسفل بحرية)

إلى اليمين

إذا (ليس خاليًا من أعلاه) و (ليس من أسفل مجانًا)

ومن بعد

رسم أكثر

الكل

عقدة

يخدع

4. قم بعمل خوارزمية ترسم جميع الخلايا حول الجدار المستطيل.

alg uch4

مبكرا

الطلاء على ؛ حتى

nts ليس بعد على الحق المجاني

الطلاء فوق ؛

عقدة

الطلاء على ؛ حق

nts حتى يتم تحرير الجزء السفلي

الطلاء على ؛

عقدة

الطلاء على ؛ أسفل

nts لم تترك خالية بعد

الطلاء على ؛ أسفل

عقدة

الطلاء على اليسار

nts حتى يتم تحرير الجزء العلوي

رسم أكثر؛ إلى اليسار؛

عقدة

يخدع

استخدم الروبوت

alg uch5

مبكرا

إلى اليمين

nts حتى يتم تحرير الجزء السفلي

رسم أكثر؛ إلى اليمين

عقدة

رسم أكثر؛ تحت

nts على اليسار حتى الآن مجاني

رسم أكثر؛ إلى اليسار

عقدة

nts لم تترك خالية بعد

رسم أكثر؛ تحت

عقدة

الطلاء ؛ اليسار ؛ الطلاء ؛ فوق؛

nts حتى يتم تحرير الجزء العلوي

رسم أكثر؛ فوق

عقدة

nts حتى يتم تحرير الجزء العلوي

رسم أكثر؛ إلى اليسار

عقدة

يخدع

الدرس 4 الدرس 1

الخوارزميات المساعدة.

استهداف: تقديم مفهوم الخوارزميات الرئيسية والمساعدة ؛ شرح قواعد استخدام الخوارزمية المساعدة ؛ تفكيك أمثلة الخوارزميات باستخدام المساعد.

خطة الدرس

1. إدخال مصطلحات جديدة (خوارزمية رئيسية ومساعدة ، استدعاء) وشرح مفاهيم جديدة.

2. تحليل أمثلة لحل المشكلات باستخدام خوارزمية مساعدة.

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

في عملية حل المشكلة ، يمكن ، إذا لزم الأمر ، تقسيم كل خوارزمية مساعدة إلى خوارزميات مساعدة أصغر.

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

يمكن اعتبار نفس الخوارزمية واحدة رئيسية ومساعدة فيما يتعلق بالخوارزميات الأخرى. في لغة خوارزمية ، تتم كتابة الخوارزمية الرئيسية أولاً ، متبوعة بالخوارزمية المساعدة أدناه.

مهمة 1:

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

المحلول

الاعراب على السبورة:

المهمة 2. الروبوت في الزاوية اليسرى العليا من الميدان. لا توجد جدران أو خلايا مطلية. قم بإنشاء خوارزمية تلوين مربع 8 × 8 في نمط رقعة الشطرنج.يمكن أن يكون الموضع النهائي للروبوت عشوائيًا.

الدرس 4 الدرس 2

عمل عملي على الكمبيوتر "حل المشكلة باستخدام الخوارزميات المساعدة".

استهداف : لغرس المهارات العملية في بناء الخوارزميات بطريقة الصقل المتسلسل.

خطة الدرس

1. تتم المهمة بالكامل على جهاز الكمبيوتر. يتلقى الطلاب المهام ويؤدونها في بيئة برامج Kumir. النتائج يتم حفظ العمل كملفات للتحقق لاحقًا.

مهمة 1 ... الروبوت في الزاوية اليسرى السفلية من الحقل. لا توجد جدران أو خلايا مطلية. قم بعمل خوارزمية ترسم 6 خطوط عمودية بنفس الطول في 6 خلايا. يمكن أن يكون الوضع النهائي للروبوت تعسفيًا.

المهمة 2 باستخدام الخوارزميات المساعدة ، قم بإنشاء خوارزمية لطلاء الخلايا التي تشكل الرقم 1212.

الواجب المنزلي: ابتكر خوارزمية ترسم الصورة التالية: استخدم خوارزميتين مساعدتين لحل المشكلة.

الدرس 5 ، الدرس 1-2

اختبار

"رسم خوارزمية في بيئة منفذ الروبوت."

استهداف: تحقق من المعرفة المكتسبة حول الإنشاء والقدرة على تحليل الخوارزميات في بيئة برامج Kumir.

التعيينات لـ عمل الاختبارمقسمة حسب مستويات الصعوبة وتتضمن 3 مهام مع منفذ الروبوت (المهمتان 1 و 2 - للتفرع والحلقات ، المهمة 3 - لاستخدام خوارزمية مساعدة.) نصوص المهام معطاة في الملحق.

يتم تسجيل الإعدادات الأولية والنهائية والخوارزميات التي تم إنشاؤها كملف.

يتم تحديد الدرجة وفقًا لمستوى صعوبة المهمة. للطالب الحق في اختيار نوع المهمة بنفسه.

واليوم سنتحدث عن الدورات. دعونا نتعرف على ماهية الدورة وكيفية تعليم كيفية تنفيذ الخوارزميات الدورية لروبوتنا.

لذا، ما هي الدورة؟ تخيل أننا في درس التربية البدنية ونواجه مهمة هل 7 تمرين القرفصاء... يمكن صياغة هذه المهمة كخوارزمية خطية ، وبعد ذلك ستبدو كما يلي:

قم بعمل القرفصاء

قم بعمل القرفصاء

قم بعمل القرفصاء

قم بعمل القرفصاء

قم بعمل القرفصاء

قم بعمل القرفصاء

قم بعمل القرفصاء

وهذا يعني أننا كررنا أمر القرفصاء 7 مرات. هل يعقل كتابة 7 أوامر متطابقة؟ قد يكون من الأسهل إعطاء الأمر هل 7 تمرين القرفصاء؟ بالطبع ، الأمر أسهل وأكثر صحة. هذه هي الدورة... يمكنك أنت بنفسك أن تتذكر أمثلة لدورات من الحياة - هناك عدد غير قليل منها.

في هذا الطريق خوارزمية خطية ، حيث يتم تكرار نفس الأوامر ، يمكننا إصدارها في شكل خوارزمية دورية- مثل هذا:

كرر 7 مرات

قم بعمل القرفصاء

نهاية الدورة

لذلك ، في اللغة التي اخترعناها ، صممنا الدورة. يمتلك مؤدي الروبوت أيضًا القدرة على تسجيل الحلقات. علاوة على ذلك، دورات مختلفة... الخيار الذي نظرنا فيه للتو يسمى دورة العدادأو حلقة مع المعلمة.

أنواع الدورات.

حلقة مع عداد.

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

من أجل كتابة حلقة مع عداد للمنفذ ، تحتاج إلى معرفة تركيبها. وهو مثل هذا:

nts<عدد التكرارات> مرات

<команда 1>

<команда 2>

<команда n>

هنا يجب أن نشير إلى عدد التكرارات (العدد) والأوامر التي ستتكرر. يتم استدعاء الأوامر التي تتكرر في الحلقة جسم الدورة.

دعونا نلقي نظرة على هذا بمثال.

في البداية ، كان الروبوت في القفص الأيسر العلوي.

لنبدأ بحل المشكلة خطيًا. في هذه الحالة ، سوف نرسم الخلية الحالية وننقل خلية واحدة إلى اليمين ، وسيبدو البرنامج كما يلي:
استخدم الروبوت
alg
مبكرا

رسم أكثر

إلى اليمين

رسم أكثر

إلى اليمين

رسم أكثر

إلى اليمين

رسم أكثر

إلى اليمين

رسم أكثر

إلى اليمين

رسم أكثر

إلى اليمين

رسم أكثر

إلى اليمين

كما ترى ، تتكرر أوامر الرسم على اليمين 7 مرات. دعنا الآن نعيد كتابة البرنامج باستخدام حلقة. بالمناسبة ، لإدخال دورة في برنامجك ، يمكنك الانتقال إلى القائمة إدراجحدد البند nts-raz-ktsأو اضغط على إحدى مجموعات المفاتيح Esc ، ص(الحرف الروسي P) أو Esc ، H(الحرف اللاتيني H). و يجب الضغط على المفاتيح بالتتابع- أولاً Esc ، حررها وبعد ذلك فقط P أو H.

لذلك ، لدينا برنامج يحلقسيبدو مثل هذا:

استخدم الروبوت

nts 7 مرات

رسم أكثر

إلى اليمين

إذا قمنا بتشغيله ، فسنرى أن النتيجة هي نفسها - 7 خلايا مملوءة. ومع ذلك ، فقد أصبح البرنامج أقصر وأكثر ذكاءً من وجهة نظر حسابية!

كإحماء وتوحيد ، أقترح كتابة برنامج للروبوت بشكل مستقل ، والذي سيرسم مربعًا به جانب من 7 خلايا. بشكل طبيعي باستخدام حلقة. أنا في انتظار حل في التعليقات.

حلقة مع الشرط.

عند حل المشكلة 19 من GIA في المعلوماتية باستخدام الروبوت ، لن يعمل استخدام حلقة مع عداد. بما أن الحقل يوجد عادة لانهائي وليس للجدران طول محدد. لذلك ، لن نتمكن من تحديد عدد التكرارات لحلقة مع عداد. لكن هذا لا يهم - سيساعدنا حلقة شرطية.

دعنا نعود إلى التربية البدنية ونغير المشكلة. بعد كل شيء ، قد لا يقوم شخص ما بـ 7 تمرينات قرفصاء ، بينما يمكن لشخص آخر القيام بـ 27. هل يمكن أن يؤخذ هذا في الاعتبار عند إنشاء دورة؟ بالتأكيد. الآن فقط لن نستخدم عدادًا (عدد التكرارات) ، بل شرطًا. على سبيل المثال ، عندما لا تكون متعبًا ، مارس تمرين القرفصاء. في هذه الحالة ، لن يقوم الشخص بعدد محدد من القرفصاء ، بل سيجلس القرفصاء حتى يتعب. وستبدو الحلقة الخاصة بنا بلغة مجردة كما يلي:

وداعا لست متعبا

قم بعمل القرفصاء

نهاية الدورة

الكلمات لا تتعب في حالتنا - هذا شرط. عندما يكون هذا صحيحًا ، يتم تنفيذ الحلقة. إذا كانت خاطئة (متعبة) فلن يتم تنفيذ جسم الحلقة. المنفذ الروبوت له عدة شروط

خالية من فوق

من الأسفل بحرية

غادر بحرية

الحق بحرية

أعلى الجدار

الجدار السفلي

الجدار الأيسر

الجدار الأيمن

لكن في حالة المشكلة 19 من GIA ، يشار إلى الأربعة الأولى فقط ، لذلك سوف نستخدمها فقط.

الآن دعونا نحل المشكلة التالية للروبوت - ارسم خط عموديمن اليسار إلى الحد الأيمن من الحقل أستخدم حلقة مع شرط. في البداية ، يكون الروبوت في الزاوية اليسرى العليا.

لنبدأ بالصياغة الخوارزمية اللفظية- أي سنصف بالكلمات ما يحتاج الروبوت إلى القيام به. ستبدو هذه الخوارزمية كما يلي:

« أثناء وجودك على اليمين ، اتخذ خطوة إلى اليمين بحرية وقم بالطلاء فوق القفص. »

نتيجة لذلك ، سوف يمر الروبوت عبر جميع الخلايا إلى اليمين وسيقوم بطلائها حتى يكون هناك جدار على اليمين.

سيكون الكود المصدري لبرنامج الروبوت الخاص بنا شيئًا كالتالي:

استخدم الروبوت

nts على اليمين حتى الآن مجاني

إلى اليمين

رسم أكثر

نتيجة تنفيذ هذا البرنامج سوف نرى الصورة التالية: