بیایید امروز در مورد چرخه ها صحبت کنیم. بیایید بفهمیم چرخه چیست و چگونه به ربات خود آموزش دهیم تا الگوریتم های چرخه ای را انجام دهد.

بنابراین، چرخه چیست? تصور کنید در درس تربیت بدنی هستیم و با این تکلیف روبرو هستیم 7 حرکت اسکات انجام دهید. این کار را می توان به عنوان یک الگوریتم خطی رسمی کرد و سپس چیزی شبیه به این خواهد شد:

اسکات انجام دهید

اسکات انجام دهید

اسکات انجام دهید

اسکات انجام دهید

اسکات انجام دهید

اسکات انجام دهید

اسکات انجام دهید

یعنی دستور انجام اسکات را 7 بار تکرار کردیم. آیا نوشتن 7 دستور یکسان منطقی است؟ شاید دادن فرمان راحت تر باشد. 7 حرکت اسکات انجام دهید? مطمئنا راحت تر و درست تر. این چرخه است. شما می توانید نمونه هایی از چرخه های زندگی را به خاطر بسپارید - تعداد کمی از آنها وجود دارد.

به این ترتیب الگوریتم خطی، جایی که همان دستورات تکرار می شود، می توانیم صادر کنیم در قالب یک الگوریتم چرخه ای- کم و بیش مانند این:

7 بار تکرار کنید

اسکات انجام دهید

پایان چرخه

بنابراین، به زبانی که ما اختراع کردیم، چرخه را طراحی کردیم. Robot performer همچنین توانایی ضبط چرخه ها را دارد. علاوه بر این، چرخه ها متفاوت است. گزینه ای که به تازگی در نظر گرفته ایم نامیده می شود حلقه با شمارندهیا حلقه با پارامتر.

انواع چرخه ها

دوچرخه سواری با شمارنده.

حلقه با شمارندهزمانی استفاده می شود که از قبل مشخص شده باشد که چند تکرار باید انجام شود. در مثال بالا در مورد اسکات، دقیقاً همینطور است.

برای اینکه یک حلقه با شمارنده برای یک اجرا کننده بنویسید، باید نحو آن را بدانید. و او اینگونه است:

nc<تعداد تکرار> بار

<команда 1>

<команда 2>

<команда n>

در اینجا باید تعداد تکرارها (تعداد) و دستوراتی که تکرار خواهند شد را مشخص کنیم. دستوراتی که در یک چرخه تکرار می شوند نامیده می شوند بدنه حلقه.

بیایید با یک مثال به این موضوع نگاه کنیم.

در ابتدا، ربات در سلول بالا سمت چپ قرار داشت.

بیایید ابتدا مسئله را به صورت خطی حل کنیم. در این حالت، روی سلول فعلی نقاشی می کنیم و 1 سلول را به سمت راست حرکت می دهیم و برنامه به شکل زیر در می آید:
از ربات استفاده کنید
alg
زود

رنگ کردن

درست

رنگ کردن

درست

رنگ کردن

درست

رنگ کردن

درست

رنگ کردن

درست

رنگ کردن

درست

رنگ کردن

درست

همانطور که می بینید، دستورات نقاشی از سمت راست و بالا 7 بار تکرار می شود. حالا بیایید برنامه را با استفاده از یک حلقه بازنویسی کنیم. به هر حال، برای درج یک چرخه در برنامه خود، می توانید از منو استفاده کنید درج کنیدمورد را انتخاب کنید nc-time-kcیا یکی از میانبرهای صفحه کلید را فشار دهید Esc، P(حرف روسی Р) یا اسک، اچ(حرف لاتین H). و کلیدها باید به صورت متوالی فشار داده شوند- ابتدا Esc را رها کنید و فقط سپس P یا H.

پس ما اینجاست برنامه چرخهبه این صورت خواهد بود:

از ربات استفاده کنید

nc 7 بار

رنگ کردن

درست

اگر آن را اجرا کنیم، خواهیم دید که نتیجه یکسان خواهد بود - 7 سلول پر شده. با این حال، برنامه از نظر الگوریتمی کوتاه تر و بسیار هوشمندتر شده است!

به عنوان یک گرم کردن و تثبیت، من پیشنهاد می کنم به طور مستقل برنامه ای برای ربات بنویسم که مربعی با ضلع 7 سلول ترسیم می کند. به طور طبیعی، با استفاده از یک چرخه. منتظر راه حل در نظرات باشید.

حلقه مشروط

هنگام حل مسئله 19 GIA در انفورماتیک با ربات، استفاده از حلقه با شمارنده کار نخواهد کرد. از آنجایی که در آنجا میدان معمولا بی نهایت است و دیوارها طول خاصی ندارند. بنابراین، ما نمی توانیم تعداد تکرارهای یک حلقه را با شمارنده تعیین کنیم. اما مهم نیست - به ما کمک خواهد کرد حلقه با شرط.

به تربیت بدنی برگردیم و تکلیف را عوض کنیم. به هر حال، ممکن است کسی 7 اسکات انجام ندهد، در حالی که دیگری قادر به انجام 27 اسکات است. آیا می توان این را در هنگام ایجاد یک چرخه در نظر گرفت؟ البته. فقط در حال حاضر ما از یک شمارنده (تعداد تکرار) استفاده نمی کنیم، بلکه از یک شرط استفاده می کنیم. به عنوان مثال، قبل از اینکه خسته شوید، اسکات انجام دهید. در این صورت فرد تعداد مشخصی اسکات انجام نمی دهد، بلکه تا زمانی که خسته شود اسکات را انجام نمی دهد. و حلقه ما در زبان انتزاعی به شکل زیر خواهد بود:

خدا حافظ خسته نشده

اسکات انجام دهید

پایان چرخه

کلمات در مورد ما خسته نمی شوند - این یک شرط است. وقتی درست باشد، حلقه اجرا می شود. اگر false (خسته) باشد بدنه حلقه اجرا نمی شود. ربات مجری چند شرط دارد

بالا شل

پایین شل

آزاد گذاشت

حق رایگان

دیوار بالا

دیوار پایین

دیوار سمت چپ

دیوار سمت راست

اما در شرط مسئله 19 GIA فقط 4 مورد اول مشخص شده است پس فقط از آنها استفاده خواهیم کرد.

حالا بیایید کار بعدی ربات - قرعه کشی را حل کنیم خط عمودیاز سمت چپ به سمت راست فیلد از یک حلقه با شرط استفاده می کنم. در ابتدا، ربات در گوشه سمت چپ بالا قرار دارد.

اول تعریف کنیم الگوریتم کلامی- یعنی آنچه را که ربات باید انجام دهد را با کلمات توصیف می کنیم. این الگوریتم چیزی شبیه به این خواهد بود:

« در حالی که در سمت راست هستید، آزادانه یک قدم به سمت راست بردارید و روی سلول نقاشی کنید »

در نتیجه، ربات از میان تمام سلول‌ها به سمت راست می‌گذرد و روی آنها نقاشی می‌کند تا زمانی که دیوار در سمت راست قرار گیرد.

کد منبع برنامه Robot ما چیزی شبیه به این خواهد بود:

از ربات استفاده کنید

nc در حالی که حق رایگان است

درست

رنگ کردن

در نتیجه اجرای این برنامه تصویر زیر را مشاهده خواهیم کرد:

ربات مجری. الگوریتم های کمکی(2 ساعت)

هدف: مفهوم الگوریتم اصلی و کمکی را معرفی کنید. قوانین استفاده از الگوریتم کمکی را توضیح دهید. نمونه هایی از الگوریتم ها را با استفاده از یک ابزار کمکی تجزیه کنید. توسعه مهارت های عملی در ساخت الگوریتم ها با روش پالایش متوالی.

طرح درس

1. معرفی اصطلاحات جدید (الگوریتم اصلی و کمکی، فراخوانی) و توضیح مفاهیم جدید.

2. تجزیه و تحلیل نمونه هایی از حل مسائل با استفاده از یک الگوریتم کمکی.

3. کار عملی

هنگام حل برخی از مسائل، راحت است که آنها را به وظایف فرعی کوچکتر تقسیم کنید، که هر کدام می توانند به عنوان یک الگوریتم مستقل طراحی شوند. در این حالت ابتدا به اصطلاح الگوریتم اصلی کامپایل می شود که در آن از فراخوانی الگوریتم های کمکی برای حل وظایف فرعی استفاده می شود که بعداً اضافه می شوند. این نوع راه حل نامیده می شود روش پالایش متوالی این به گروهی از برنامه نویسان اجازه می دهد تا روی یک پروژه کار کنند، در حالی که هر کدام زیرکار خود را حل می کند.

در فرآیند حل مسئله، هر الگوریتم کمکی را می توان در صورت لزوم به الگوریتم های کوچکتر تقسیم کرد. الگوریتم های کمکی.

دستور اجرای الگوریتم کمکی فراخوانی می شود چالش و در بدنه الگوریتم اصلی نوشته شده است.

یک الگوریتم مشابه را می توان به عنوان اصلی و کمکی در رابطه با سایر الگوریتم ها در نظر گرفت. AT زبان الگوریتمیابتدا الگوریتم اصلی نوشته شده و الگوریتم های کمکی در یک ردیف در زیر نوشته شده اند.

وظیفه 1:

ربات در گوشه سمت چپ بالای زمین قرار دارد. هیچ دیوار یا سلول سایه دار وجود ندارد. با استفاده از الگوریتم کمکی، چهار ضربدر روی یک خط افقی، یک الگوریتم بنویسید. موقعیت نهایی ربات می تواند دلخواه باشد.

راه حل

تحلیل روی تابلو:

وظیفه 2. ربات در گوشه سمت چپ بالای زمین قرار دارد. هیچ دیوار یا سلول سایه دار وجود ندارد. الگوریتمی بنویسید که یک مربع 8*8 را به صورت شطرنجی نقاشی کند. موقعیت نهایی ربات می تواند دلخواه باشد.

کار عملی روی رایانه شخصی "حل مشکل با استفاده از الگوریتم های کمکی"

وظیفه 1 . ربات در گوشه سمت چپ پایین میدان قرار دارد. هیچ دیوار یا سلول سایه دار وجود ندارد. الگوریتمی بنویسید که 6 نوار عمودی با طول یکسان را در 6 خانه ترسیم کند. موقعیت نهایی ربات می تواند دلخواه باشد.

وظیفه 2 . با استفاده از کمکی، یک الگوریتم برای نقاشی روی سلول هایی که عدد 1212 را تشکیل می دهند بنویسید.

مشق شب : الگوریتمی بسازید که تصویر زیر را ترسیم کند: برای حل مسئله از دو الگوریتم کمکی استفاده کنید.

راهنمای روش شناسی برای معلمان انفورماتیک. اوگرافوا اولگا ولادیمیرونا، سالن بدنسازی شماره 8 کولومنا، 2013 در فرآیند مطالعه موضوع "علوم کامپیوتر و فناوری اطلاعات و ارتباطات"، دانش آموزان نه تنها فرهنگ اطلاعاتی (فرهنگ ارتباط شایسته با کامپیوتر، کاغذبازی، ارتباطات الکترونیکی) را می آموزند، بلکه به اصول برنامه نویسی نیز تسلط پیدا می کنند. یکی از موفق ترین پیشرفت های داخلی در این زمینه، سیستم برنامه نویسی کومیر است. در آن، دانش‌آموزان می‌توانند مهارت‌های عملی در ایجاد و اشکال‌زدایی یک الگوریتم را با کار با اجراکنندگان Robot و Draftsman کسب کنند. از مزایای این سیستم امکان نوشتن دستورات به زبان روسی در زبان الگوریتمی مدرسه و قابل مشاهده بودن نتیجه اجرای الگوریتم است. سیستم KuMir بر اساس نیاز طراحی شده است سیستم روسیتحصیلات. ویژگی های آن:      آزادانه توزیع می شود. چند پلتفرم؛ نیاز به منابع صفر؛ با پشتیبانی آکادمی علوم روسیه؛ در میان توسعه دهندگان، نویسندگان بسیاری از کتاب های درسی و کتابچه راهنمای انفورماتیک هستند.  پوسته برنامه رایگان Kumir را می توانید در http://www.niisi.ru/kumir/ پیدا کنید. متأسفانه، نویسندگان کتاب های درسی جدید علوم کامپیوتر توجه کافی ندارند یا به طور کلی این مجریان را دور می زنند. در همان زمان، توسعه دهندگان GIA و -1-

پ. 2

USE شامل تکالیفی با استفاده از داده های مجریان در تکالیف اوراق امتحانی است. موضوع در پایه نهم در بخش «الگوریتم سازی و برنامه نویسی» بررسی می شود. 9 ساعت برای مطالعه موضوع در نظر گرفته شده است. دانش آموزان باید بدانند: مجری چیست; ربات اسکی، ربات اجرا کننده چهارشنبه; الگوریتم چیست؛ ویژگی های اصلی الگوریتم چیست. روش های نوشتن الگوریتم ها: فلوچارت ها، زبان الگوریتمی آموزشی. ساختارهای الگوریتمی پایه: دنبال کردن، انشعاب، حلقه. تخصیص الگوریتم های کمکی دانش‌آموزان باید بتوانند: توضیحات الگوریتم‌ها را در یک زبان الگوریتمی آموزشی درک کنند. انجام یک ردیابی الگوریتم برای یک مجری شناخته شده؛ ایجاد الگوریتم های کنترل خطی، انشعاب و چرخه ای برای اجرای Robot. تخصیص وظایف فرعی؛ تعریف و استفاده از الگوریتم های کمکی طرح درس موضوعی : شماره p / p 1. 2. 3. 4. 5. تعداد ساعات کار ریا مجری ربات. سیستم فرماندهی مجری. ترکیب 1 0.5 الگوریتم های خطی. الگوریتم های چرخه ای. 3 1 کار عملی №1. کامپایل و رفع اشکال الگوریتم های چرخه ای. انشعاب و اصلاح متوالی الگوریتم. 2 1 کار عملی №2. تدوین و اشکال زدایی الگوریتم های چرخه ای و انشعاب. الگوریتم ها و زیر روال های کمکی. 2 0.5 مثال برده شماره 3. "استفاده از الگوریتم های کمکی". تست. "ایجاد الگوریتم در محیط مجری" موضوع درس تمرین 0.5 2 1 1.5 1 مواد دروس با موضوع "آموزش ربات مجری": -2-

پ. 3

درس 1 سیستم فرماندهی مجری. ربات در حین اجرای برنامه در یک میدان شطرنجی مستطیلی حرکت می کند که بین سلول های آن می توان دیواره ها را قرار داد. این فیلد توسط دکمه "Robot Window" که در نوار ابزار قرار دارد، روی صفحه نمایش داده می شود. فیلد کد ربات ربات قادر به اجرای دستورات - دستورات و دستورات - سوالات است. دستورات - دستورات: راست، چپ، بالا، پایین، رنگ کردن. اگر دیواری در سر راه باشد، فرمان را نمی توان اجرا کرد. برای کنترل مستقیم ربات، استفاده کنید از راه دور. با فشردن دکمه های روی ریموت کنترل، فرد دستورات مناسب را می دهد و ربات آنها را اجرا می کند. برای کنترل برنامهدانستن اینکه کدام دستور و در چه ترتیبی اجرا شود کافی نیست. همچنین لازم است که این دستورات را به شکلی که برای رایانه قابل درک باشد، یادداشت کنید. را در قالب یک الگوریتم قرار دهید. در ساده ترین حالت، الگوریتم ربات به صورت زیر نوشته می شود: نام الگوریتم دنباله ای از کاراکترها یا کلمات است که با فاصله از هم جدا شده اند. اولین کاراکتر نام نباید با عدد شروع شود. نام‌های صحیح: g، مجموع، نام مستعار، 12 آوریل، دوازدهم آوریل، شماره_11_cl. نام "درست" با رنگ آبی برجسته خواهد شد. استفاده از Robot alg algorithm_name شروع دنباله دستورات end برای درک بهتر الگوریتم در بدنه برنامه می توانید از نظرات استفاده کنید. نظرات با | شروع می شود. اگر نظرات چندین خط را در بر می گیرند، قبل از هر خط باید یک علامت | وجود داشته باشد. نظرات هیچ تاثیری در پیشرفت الگوریتم ندارند. مثال 1. "حرکت شوالیه" را برنامه ریزی کنید (ربات را از نقطه A به نقطه B حرکت دهید). حالت اولیه: برنامه: نتیجه: قوانین زبان الگوریتمی به شما این امکان را می دهد که چندین دستور را در یک خط که با یک نقطه ویرگول از هم جدا شده اند بنویسید. -3-

پ. چهار

مثال 2. لازم است ربات را از نقطه A به نقطه B منتقل کنید. مسیری که ربات باید طی کند را می توان به پنج بخش یکسان تقسیم کرد. گروه بندی دستورات برای عبور هر بخش در یک خط راحت است - این رکورد الگوریتم را کوتاه می کند و آن را قابل درک تر می کند. ربات تغییر محیط. برای اینکه ربات مجبور شود در یک محیط جدید عمل کند، باید با استفاده از دستورات منوی اصلی زیر بارگذاری شود: عنصر "Robot" را انتخاب کنید "تغییر محیط شروع" باز کنید. پوشه مورد نظرو یک فایل را انتخاب کنید. ایجاد یک محیط جدید. برای ایجاد یک محیط جدید برای ربات، باید دستورات منوی اصلی را اجرا کنید: آیتم "ابزارها" "ویرایش محیط شروع" را انتخاب کنید. در پنجره "تنظیمات"، عنصر "تنظیمات" را انتخاب کنید "تنظیمات جدید" تعداد سطرها و ستون ها را تنظیم کنید. دیوارها را با کلیک ماوس قرار دهید و ربات را به سلول مورد نظر منتقل کنید. محیط را با استفاده از دستورات ذخیره کنید: "Environment" "Save AS" نام فایل و پوشه را برای قرار دادن مشخص کنید. دکمه "ذخیره" را فشار دهید. افزودن/حذف دیوار – روی مرز بین سلول ها کلیک کنید. رنگ آمیزی / پاک کردن یک سلول - روی سلول کلیک کنید. یک نقطه قرار دهید / حذف کنید - در حین فشار دادن روی سلول کلیک کنید کلید Ctrl. تابش، برچسب ها را تنظیم کنید - روی دکمه سمت راست ماوس کلیک کنید. ربات را حرکت دهید - با ماوس بکشید. "اجرا" اجرای برنامه. "به طور مداوم اجرا کنید" کار مستقل روی رایانه: 1. یک محیط جدید را بارگذاری کنید، ربات را به نقطه "B" منتقل کنید، در امتداد نقاط مشخص شده با نماد "نقطه" نقاشی کنید: "Workshop for the Robot" پوشه "1" task " C” (مواد از سایت K. Polyakov http://kpolyakov.narod.ru)، یک برنامه ایجاد کنید، پنجره Robot را باز کنید و برنامه را برای اجرا اجرا کنید. برنامه را با نام "1_B" در پوشه خود ذخیره کنید. 2. یک تنظیم جدید ایجاد کنید، آن را در پوشه خود با نام "Settings_1" ذخیره کنید. یک برنامه برای محیط جدید بنویسید و آن را در پوشه خود با نام "new_environment_1" ذخیره کنید. 3. **سایر مشکلات را از پوشه شماره 1 کارگاه حل کنید. -4- ب

پ. 5

درس 2. الگوریتم های چرخه ای. چرخه N - بار. کار تکرار: پتیا یک الگوریتم برای ربات واک ساخت. کولیا یک فرمان را در آن پاک کرد. اگر مشخص است که ربات باید به آن بازگردد، مشخص کنید که کولیا کدام دستور را پاک کرده است حالت اولیه. پاسخ: به سمت راست از Robot alg Walk start استفاده کنید. بالا به سمت راست. ? . راه پایین؛ ترک کرد؛ انتهای سمت چپ nc N بار · سری دستورات kc هنگام کامپایل الگوریتم‌ها، اغلب مواردی وجود دارد که دنباله خاصی از دستورات باید چندین بار پشت سر هم اجرا شوند. مثلاً مثال شماره 2 درس آخر. برای ساده کردن نوشتن الگوریتم در چنین مواردی، می توانید از دستور - "Loop N-times" استفاده کنید. N یک عبارت عدد صحیح است که تعداد تکرارها را مشخص می کند. هنگامی که الگوریتم اجرا می شود، دنباله دستورات به صورت دوره ای به تعداد مشخص شده تکرار می شود. این عدد می تواند صفر یا حتی منفی باشد. این موارد اشتباه تلقی نمی شوند، فقط بدنه حلقه حتی یک بار هم اجرا نمی شود و کامپیوتر بلافاصله اقدام به اجرای دستورات نوشته شده بعد از kts می کند. مثال 1. لازم است ربات را از نقطه A به نقطه B منتقل کنید. A B مثال 2. در یک ردیف 16 سلولی رنگ کنید. مثال 3. یک مستطیل 5 (ردیف) x 6 (ستون) را پر کنید. استفاده از Robot Alg Rectangle start nc 5 بار kc end یک حلقه را می توان در داخل یک حلقه دیگر قرار داد. سپس به آن تودرتو می گویند. -5-

پ. 6

کار مستقل روی کامپیوتر: مثال 4. اجازه دهید ربات را از موقعیت اولیه به نقطه ای که با ستاره مشخص شده است حرکت دهیم و در طول مسیر روی سلول های هزارتو نقاشی کنیم. ایجاد محیط و برنامه فایل ها را در پوشه خود ذخیره کنید. مثال 5. ربات را از موقعیت اولیه به پایه انتقال دهید و روی سلول های مشخص شده با یک نقطه رنگ کنید. ایجاد محیط و برنامه فایل ها را در پوشه خود ذخیره کنید. مثال 6. لازم است ربات را از طریق پیچ و خم از موقعیت اولیه به نقطه A هدایت کنید. مثال 7. لازم است ربات را در طول راهرو از موقعیت اولیه به نقطه A هدایت کنید و به هر راهرو جانبی نگاه کنید. مثال 8. برنامه ای برای رنگ آمیزی سلول های فیلد مشخص شده با * بنویسید. موقعیت اولیه ربات با نماد ◊ نشان داده می شود. مثال 9*. دیوارها در زمین مجری نمایان می شوند. لازم است موقعیت اولیه و بهینه اجراکننده را پیدا کنید و برنامه ای بنویسید که نتیجه آن سلول های پر می شود (همانطور که در شکل نشان داده شده است). **با استفاده از پوشه "Workshop for Robot" _ شماره 2 برنامه ها را بنویسید. -6-

پ. 7

درس 3 ما باید یاد بگیریم که چگونه الگوریتم های جهانی ایجاد کنیم که به فاصله بین ربات و دیوار، طول دیوارها بستگی ندارد. برای این کار از عملگر حلقه جدید استفاده می کنیم. nt while شرط یک سری دستورات kts در حین اجرای چرخه، کامپیوتر اقدامات زیر را تکرار می کند:  شرط را بررسی می کند.  اگر شرط برقرار باشد، دستورات بدنه حلقه اجرا شده و شرط دوباره بررسی می شود و غیره.  اگر شرط برآورده نشد، سپس اجرای دیوار سمت چپ چرخه آزاد به پایان می رسد و دستورات اجرا می شوند، دستورات روی دیوار سمت راست آزادانه پس از kts ثبت می شوند. دیوار پایین پایین بدون  شرایط چرخه (دستورات-سوالات): دیوار بالا سلول آزاد پر سلول پاک یادداشت ها.  اگر شرط از همان ابتدا برقرار نباشد، بدنه حلقه حتی یک بار هم اجرا نمی شود!  اجرای حلقه ممکن است کامل نشود اگر شرط همیشه برقرار باشد. این وضعیت معمولاً در نتیجه خطاهایی در NC BYA در سمت راست الگوریتم های کامپایل آزاد رخ می دهد. درست؛ به سمت چپ مثالی از یک الگوریتم بی نهایت (در سمت راست دیواری وجود ندارد): KC شرایط می توانند ساده و مرکب باشند. یک شرط ساده معمولاً نوعی چک است. هر دستور-سوال ربات می تواند به عنوان مثال باشد. یک شرط مرکب از چندین شرط ساده با استفاده از کلمات خدماتی AND، OR، NOT تشکیل می شود. اگر بین اصطلاحات سادهمخفف AND است، پس برای اینکه شرط مرکب برآورده شود، لازم است که هر دو حالت ساده درست باشند. اگر بین شرایط ساده یک OR وجود داشته باشد، برای اینکه شرط مرکب برآورده شود، کافی است حداقل یک شرط ساده صادق باشد. مثال 2. ربات مثال 1. برای انتقال موشک های نشان داده شده توسط ربات به پایگاه، باید رنگ آمیزی شود. روی تصویر طول دیوار و فاصله تا دیوار مشخص نیست. از Robot alg To Base در اوایل استفاده کنید. nc در حالی که بالا رایگان است. . بالا kts در حالی که دیوار در بالا است. . به سمت راست. kts بالا با -7-

پ. هشت

▪ کار مستقل روی کامپیوتر: جایی در قسمت Robot دیواری به شکل گوشه ای وجود دارد که ابعاد آن مشخص نیست. یک ربات از یک سلول دلخواه در سمت چپ دیوار، اما همیشه در مقابل آن، باید به دیوار برسد و روی تمام سلول های امتداد دیوار پشت آن، همانطور که در شکل نشان داده شده است، نقاشی کند. ▪ لازم است ربات را از موقعیت اولیه خود به نقطه A منتقل کنید و در حین رنگ آمیزی روی سلول های مشخص شده زمینه قرار دهید. ابعاد دیوارها و فاصله بین آنها می تواند دلخواه باشد. ▪ کامپایل برنامه ها با استفاده از پوشه Robot Workshop  Folder_4_Tasks_А_С_D  Folder_5_Tasks_A_B_C_D درس 4. کار عملی №1. الگوریتم های چرخه ای برای ربات گزینه 1 وظیفه 1. روی سلول های واقع در سمت چپ دیوار یا بالای دیوار نقاشی کنید. فاصله ربات تا دیوار مشخص نیست. طول دیوارها مشخص نیست. یک محیط ایجاد کنید و یک برنامه بنویسید. فایل ها را در پوشه خود ذخیره کنید. R وظیفه 2. مجری ربات جایی در یک منطقه مربع محدود است. طول ضلع مربع مشخص نیست. الگوریتمی برای ربات بنویسید که تمام سلول های واقع در مورب مربع را از بالا سمت چپ به گوشه پایین سمت راست رنگ می کند. یک محیط ایجاد کنید و یک برنامه بنویسید. فایل ها را در پوشه خود ذخیره کنید. وظیفه 3. اجرا کننده را از سلول A به سلول B منتقل کنید، در حالی که روی سلول های علامت گذاری شده نقاشی می کنید. طول دیوارها و فاصله بین آنها مشخص نیست. یک محیط ایجاد کنید و یک برنامه بنویسید. فایل ها را در پوشه خود ذخیره کنید. -هشت-

پ. 9

وظیفه 4. لازم است ربات را از موقعیت اولیه (◊) به نقطه A حرکت دهید، در حالی که روی سلول های مشخص شده در زمینه نقاشی می کنید. ابعاد دیوارها و فاصله بین آنها می تواند دلخواه باشد. وظیفه 5. یک نردبان در میدان بی نهایت وجود دارد. تعداد مراحل می تواند هر کدام باشد. دیوار افقی پایین بی نهایت به سمت راست ادامه می یابد، دیوار افقی بالایی بی نهایت به سمت چپ امتداد می یابد. ربات جایی بالای دیوار افقی پایینی قرار دارد. روی سلول های واقع در امتداد قسمت عمودی مراحل رنگ کنید (شکل را ببینید). هر موقعیت نهایی ربات. یک محیط ایجاد کنید و یک برنامه بنویسید. فایل ها را در پوشه خود ذخیره کنید. هر مرحله دارای اندازه است: 2 سلول به صورت افقی و 2 سلول به صورت عمودی. گزینه 2 کار 1. الگوریتمی را برای Robot بنویسید که تمام سلول های واقع در امتداد سمت چپ و بالای اضلاع پایین مستطیل و مجاور دیوار را نقاشی می کند. فاصله ربات تا دیوارها و طول دیوارها مشخص نیست. یک محیط ایجاد کنید و یک برنامه بنویسید. فایل ها را در پوشه خود ذخیره کنید. وظیفه 2. مجری ربات جایی در یک منطقه مربع محدود است. طول ضلع مربع مشخص نیست. الگوریتمی برای ربات بنویسید که تمام سلول های واقع در مورب مربع را از سمت راست بالا به گوشه پایین سمت چپ رنگ می کند. یک محیط ایجاد کنید و یک برنامه بنویسید. فایل ها را در پوشه خود ذخیره کنید. وظیفه 3. اجرا کننده را از سلول A به سلول B منتقل کنید، در حالی که روی سلول های علامت گذاری شده نقاشی می کنید. طول دیوارها و فاصله بین آنها مشخص نیست. یک محیط ایجاد کنید و یک برنامه بنویسید. فایل ها را در پوشه خود ذخیره کنید. -9-

پ. ده

وظیفه 4. لازم است ربات را از موقعیت اولیه (◊) به نقطه A حرکت دهید، در حالی که روی سلول های مشخص شده در زمینه نقاشی می کنید. ابعاد دیوارها و فاصله بین آنها می تواند دلخواه باشد. وظیفه 5. یک نردبان در میدان بی نهایت وجود دارد. تعداد مراحل می تواند هر کدام باشد. دیوار افقی پایین بی نهایت به سمت چپ ادامه می یابد، دیوار افقی بالایی بی نهایت به سمت راست امتداد می یابد. ربات جایی بالای دیوار افقی پایینی قرار دارد. روی سلول های واقع در امتداد قسمت عمودی مراحل رنگ کنید (شکل را ببینید). هر موقعیت نهایی ربات. یک محیط ایجاد کنید و یک برنامه بنویسید. فایل ها را در پوشه خود ذخیره کنید. هر مرحله دارای اندازه است: 2 سلول به صورت افقی و 2 سلول به صورت عمودی. درس 5 دستور “if _ then _ else _ all” نمای کلی دستور: if condition then actions 1 else actions 2 all ساختار فرمان: پس از بررسی شرط، اگر شرط درست باشد، اقدامات 1 انجام می شود، در غیر این صورت اقدامات 2 اجرا می شوند. که، دستوراتی که بعد از کلمه all نوشته می شود. در غیر این صورت ممکن است شاخه وجود نداشته باشد (انشعاب ناقص). در این حالت دستور به شکل زیر است: اگر شرط باشد، پس همه اعمال و اگر شرط برآورده نشد، دستورات بعد از آن نوشته شده کلمه رسمیهمه. مثال 1. برنامه ای ایجاد کنید که ربات را از طریق یک راهرو با طول دلخواه هدایت کند. در طول مسیر، ربات باید تمام سلول هایی را که زیر آن دیوار ندارند، نقاشی کند. تعداد سوراخ ها مشخص نیست. - ده -

پ. یازده

مثال 2. ربات را به نقطه B ببرید و روی سلول های مشخص شده با یک نقطه رنگ کنید. طول دیوار و تعداد «بن بست ها» مشخص نیست. استفاده از Robot alg To Base start nt در حالی که از راست آزاد به راست اگر بالا آزاد است سپس به بالا رنگ کردن تمام kc پایین پایان مثال** محاسبه تعداد سلول های سایه دار در راهرو (برای اجرا، باید ساختارهای اضافی را تجزیه کنید: تعداد عدد صحیح | شرح یک متغیر از نوع عدد صحیح count:= count+1 | افزایش متغیر به میزان 1 تعداد خروجی | نمایش مقدار متغیر روی صفحه نمایش کار مستقل در رایانه: ایجاد یک محیط و حل مشکل کار 1. ایجاد الگوریتم برای عبور ربات از محیط: وظیفه 2. برنامه ای بنویسید که در آن ربات بر هر تعداد مانع غلبه کند و به دیوار برسد. موانع را می توان در هر جایی قرار داد.-11-

پ. 12

وظیفه 3. در سلول های مشخص شده با نقطه رنگ کنید. وظیفه 4. از Robot alg To the Base برای نقاشی روی nc استفاده کنید تا زمانی که سمت راست به سمت راست آزاد شود اگر قسمت بالایی آزاد باشد سپس به بالا. رنگ کردن پایین در غیر این صورت روی تمام kc down con رنگ کنید وظیفه 5. روی سلول های واقع در کنار دیوارها رنگ کنید. الگوریتمی بنویسید که تمام سلول های بین دو دیوار را پر کند. کدام دیوار در سمت چپ است ناشناخته است. از Robot alg between_walls start nt تا زمانی که (از بالا رایگان نیست) یا (از پایین آزاد نیست) به سمت راست اگر (از بالا آزاد نیست) و (از پایین آزاد نیست) سپس روی تمام kc رنگ کنید. استفاده از Robot alg uch5 شروع به سمت راست nts تا آزاد در ذیل؛ رنگ به سمت راست؛ تا زمانی که سمت چپ آزادانه رنگ آمیزی شود. به سمت چپ kts nts تا زمانی که سمت چپ آزادانه روی آن نقاشی شود. رنگ کردن kts; ترک کرد؛ رنگ کردن بالا تا زمانی که قسمت بالایی آن آزادانه رنگ شود. kts nts را تا زمانی که رنگ آمیزی از بالا آزاد شود. سمت چپ kts con وظیفه 6**. ربات در ابتدای راهرو است. در راهرو بن بست هایی در بالا و پایین به طول نامعلوم وجود دارد، اما محل آنها در مقابل یکدیگر نیست. طول راهرو نیز مشخص نیست. الگوریتمی برای رنگ آمیزی تمام بن بست ها و خروج از راهرو بنویسید. - 12 -

پ. 13

زودتر از ربات الگ پافین استفاده کنید. nts هنوز (دیوار بالا) یا (دیوار پایین). . به سمت راست. . اگر (بالا آزاد) و (دیوار پایین) . . . سپس. . . . nc در حالی که بالا رایگان است. . . . . بالا رنگ کردن . . . kts . . . nc در حالی که پایین آزاد است. . . . . راه پایین. . . . kts . همه. . اگر (پایین آزاد) و (دیوار بالا). . . سپس. . . . nc در حالی که پایین آزاد است. . . . . راه پایین؛ رنگ کردن . . . kts . . . nc در حالی که بالا رایگان است. . . . . بالا . . . kts . همه؛ . kts; con دستوراتی که با رنگ قرمز مشخص شده اند برای توقف هنگام خروج از راهرو مورد نیاز است. درس 6 الگوریتم های چرخه ای و انشعاب برای ربات. حل وظایف با استفاده از KIM GIA. اظهار نظر. هنگام کامپایل کردن الگوریتم ها، مسئله باید به صورت کلی حل شود، یعنی. شکل شکل تعریف شده است، اما طول اضلاع، تعداد مراحل و سایر پارامترها ممکن است متفاوت باشد. این برنامه باید برای هر شکلی از نوع مشابه کار کند! وظیفه 1. یک تنظیم ایجاد کنید و الگوریتمی بنویسید که تمام سلول های واقع در سمت راست بخش های عمودی دیوار را نقاشی کند. استفاده از robot alg task 1 start down; به سمت راست. nc در حالی که بالا رایگان است. . رنگ کردن kts nc تا بالا آزاد شود. . به سمت راست. kts بالا nc تا زمانی که سمت چپ آزاد شود. . رنگ کردن بالا kts con - 13 -

پ. چهارده

استفاده از robot alg task 2 start. nts در حالی که در سمت راست رایگان است. . به سمت راست. kts nc تا زمانی که حق آزاد شود. . بالا kts به سمت راست. nc تا زمانی که حق آزاد شود. . رنگ آمیزی به سمت راست. kts con ارتفاع هر مرحله یک سلول، عرض 2 خانه است. وظیفه 2. الگوریتمی بنویسید که تمام سلول های بالای مراحل را پر کند. وظیفه 3. روی تمام سلول های واقع در بالای پله های پله که از چپ به راست پایین می آیند، رنگ کنید. استفاده از robot alg task 3 start. nc در حالی که پایین آزاد است. . راه پایین؛ ترک کرد؛ به سمت چپ. kts nc تا زمانی که سمت چپ آزاد شود. . رنگ کردن به سمت راست. . رنگ کردن به سمت راست. . راه پایین. kts con وظیفه 4. رنگ سلول های هزارتو. از Robot alg Labyrinth در اوایل استفاده کنید. به سمت راست. nts در حالی که روی دیوار سمت راست است. . رنگ کردن بالا . رنگ کردن بالا . رنگ کردن به سمت راست. . رنگ کردن راه پایین. . رنگ کردن راه پایین. . رنگ کردن به سمت راست. kts con وظیفه 5** اجراکننده در یک سلول دلخواه است، اما همیشه روبروی دیوار است (تصویر بالا). در نتیجه لازم است مانند شکل زیر روی سلول ها رنگ آمیزی شود. - چهارده -

پ. پانزده

استفاده از robot alg شروع خروج. nc در حالی که در سمت راست است به سمت راست آزاد است. . kts nc تا دیوار سمت راست پایین؛ . kts درست؛ بالا nts هنوز (دیوار در سمت چپ و آزاد در بالا) یا (دیوار در بالا و آزاد در سمت راست) یا (دیوار در سمت راست و آزاد در پایین) یا (دیوار در پایین و آزاد در سمت چپ). . اگر (دیوار سمت چپ) و (بالا آزاد) . . . سپس. رنگ کردن بالا . همه. . اگر (دیوار بالا) و (راست آزاد) . . . سپس. . رنگ کردن به سمت راست. . همه. . اگر دیواری در سمت راست باشد و پایین آن آزاد باشد. . . سپس. . رنگ کردن راه پایین؛ . . همه. . اگر دیوار زیر و سمت چپ آزاد باشد. . . سپس. . . رنگ کردن ترک کرد؛ . . همه؛ . kts; درس 7. الگوریتم های کمکی هنگام حل برخی از مسائل، راحت است که آنها را به وظایف فرعی کوچکتر تقسیم کنیم، که هر کدام را می توان به عنوان یک الگوریتم مستقل رسمی کرد. در این حالت ابتدا به اصطلاح الگوریتم اصلی کامپایل می شود که در آن از فراخوانی الگوریتم های کمکی برای حل وظایف فرعی استفاده می شود که بعداً اضافه می شوند. به این روش حل، روش پالایش متوالی می گویند. این به گروهی از برنامه نویسان اجازه می دهد تا روی یک پروژه کار کنند، در حالی که هر کدام زیرکار خود را حل می کند. دستور اجرای یک الگوریتم کمکی فراخوانی نامیده می شود و در متن الگوریتم اصلی نوشته می شود. در زبان الگوریتمی ابتدا الگوریتم اصلی و در زیر آن الگوریتم های کمکی در یک ردیف نوشته می شود. مثال 1 تنظیمات مربوط به درس شماره 1 را در نظر بگیرید. ربات باید به سلولی که با نقطه مشخص شده است منتقل شود. استفاده از Robot alg راهرو شروع دور زدن. انحراف؛ انحراف؛ انحراف؛ bypass con alg bypass start up; بالا سمت راست پایین؛ راه پایین؛ سمت راست - 15 -