Прості команди. Виконавець Робот

Прості команди. Виконавець Робот

Її для подальшої роботи і навчилися задавати. Тепер перейдемо безпосередньо до складання алгоритмів для роботи з використанням простих команд.

Якщо вам більше подобається інформація у форматі відеоуроків, на сайті є відеоурок

У будь-якого виконавця має бути система команд ( СКІсистема команд виконавця). Система команд виконавця- Сукупність всіх команд, які може виконати виконавець. Як приклад розглянемо дресировану собаку. Вона вміє виконувати деякі команди — «сидіти», «лежати», «поруч» тощо. Це і є її система команд.

Прості команди Робота

Наша робота теж має систему команд. Сьогодні ми розглянемо прості команди Робота. Усього їх 5:

  • вгору
  • вліво
  • праворуч
  • зафарбувати

Результат виконання цих команд зрозумілий з їхньої назви:

  1. вгору— перемістити робота на одну клітинку вгору
  2. вниз— перемістити робота на одну клітинку вниз
  3. вліво— перемістити Робота на одну клітинку вліво
  4. праворуч— перемістити Робота на одну клітинку праворуч
  5. зафарбувати- Зафарбувати поточну клітину (клітину в якій знаходиться Робот).

Ці команди можна писати з клавіатури, а можна використовувати гарячі клавіші (натиснувши їх, будуть вставлятися автоматично):

  • вгору — Escape, Up (стрілка вгору)
  • вниз - Escape, Down (стрілка вниз)
  • вліво - Escape, Left (стрілка вліво)
  • вправо - Escape, Right (стрілка вправо)
  • зафарбувати - Escape, Space (пробіл)

Зверніть увагу, що набирати потрібну комбінацію гарячих клавіш потрібно не звичним нам способом!Ми звикли натискати клавіші одночасно, а тут їх потрібно натискати послідовно. Наприклад, щоб ввести команду нагору, потрібно натиснути Escape, відпустити її і після цього натиснути стрілку вгору. Це треба пам'ятати.

Тепер ми готові написати перший алгоритм для роботи. Пропоную почати з простого - намалюємо квадрат зі стороною 3 клітини. Поїхали!

Запускаємо Кумира, його. Чи можна починати писати програму? Звичайно, ні! Ми ж не! Робимо це. Пропоную використати ось таку:

Ось тепер усе готове. Починаємо писати програму. Поки що вона виглядає так

Видаляємо символ «|» і називаємо наш алгоритм "Квадрат"

Пропоную малювати квадрат, рухаючись за годинниковою стрілкою. Для початку зафарбуємо поточну клітку, давши команду зафарбувати. Потім робимо крок праворуч і знову зафарбовуємо клітину. І ще раз крок управо та зафарбувати.

Спробуємо запустити програму та подивитися що ж вийшло. Для запуску натискаємо F9або ж кнопку на панелі інструментів

В результаті ми маємо побачити ось таку картину

Якщо таке вікно Робота у вас не з'явилося, на панелі інструментів клацніть « Показати вікно Робота» або в меню Робот виберіть « Показати вікно Робота«. Продовжуємо далі.

Тепер ми рухатимемося вниз і зафарбовуватимемо праву сторону квадрата:

вниз

зафарбувати

вниз

зафарбувати

Потім підемо вліво, зафарбовуючи нижню межу квадрата

вліво

зафарбувати

вліво

зафарбувати

У нас залишилася одна незафарбована клітка. Зафарбуємо її

вгору

зафарбувати

Все готово! У результаті наша програма виглядає так:

використовувати Робот

алг Квадрат

поч

зафарбувати

праворуч

зафарбувати

праворуч

зафарбувати

вниз

зафарбувати

вниз

зафарбувати

Управління виконавцем Робот у системі КУМИР

Робот існує у певній обстановці (прямокутному картатому полі). Між деякими клітинами поля можуть бути розташовані стіни. Деякі клітини може бути зафарбовані (рис. 3.11).

Робот займає рівно одну клітку поля.

За командами вгору, вниз, ліворуч і праворуч Робот переміщається до сусідньої клітини у вказаному напрямку. Якщо на шляху виявляється стіна, то відбувається відмова – видається повідомлення про неможливість виконати чергову команду.

За командою зафарбувати Робот зафарбовує клітку, де стоїть. Якщо клітина вже була зафарбована, вона зафарбується повторно, хоча жодних видимих ​​змін не відбудеться.

Робот може виконувати лише правильно записані команди. Якщо замість команди вниз написати внесок, то Робот цей запис не зрозуміє і відразу повідомить про помилку.

Про
шибки: 1 синтаксичні; 2. логічні

Опис обстановок зберігається у текстових файлах спеціального формату (формат.fil).

Поточна- Обстановка, в якій знаходиться Робот в даний момент (включаючи інформацію про положення Робота).

Стартова- обстановка, у якому примусово поміщається Робот початку виконання програми, використовує Робот.

Порядок роботи:


  1. Задати стартову обстановкуза умовою завдання:
Меню Інструменти → Змінити стартову обстановку Робота (намалювати обстаковку за умовою завдання, дати ім'я, зберегти в Особистій папці)

2. Вказати Виконавця:

Меню Вставка →Використовувати Робот

3. Написати алгоритм розв'язання задачі.

4. Виконати алгоритм (Меню Виконання →Виконати безперервно /F9)

Система команд виконавця Робот у системі КУМІР


Команда

Дія

вгору

Робот переміщається на 1 клітинку нагору

вниз

Робот переміщається на 1 клітинку вниз

вліво

Робот переміщається на 1 клітинку вліво

праворуч

Робот переміщається на 1 клітинку праворуч

зафарбувати

Робот зафарбовує клітину, де знаходиться

праворуч вільно

Робот перевіряє виконання відповідного простогоумови

зліва вільно



зверху вільно



знизу вільно



клітка зафарбована



клітка чиста



Циклічні алгоритми

Цикл- Організація повторення дій, поки вірна деяка умова .

Тіло циклу –набір повторюваних дій.

Умова -логічний вираз (простий або складний (складовий))
Типи циклів:

1.Цикл «Повторювати n разів» 2. Цикл «Поки що»
нц n разів нц поки
. . Тіло циклу. . Тіло циклу
кц кц

Приклад: нц покиправоруч вільно


Загальний вид циклу «Повторювати n разів:

ПОВТОРИТИ n РАЗ

КІНЕЦЬ
кц

Загальний вид циклу «поки що»:

ПОКИ РОБИТИ

КІНЕЦЬ
Складові умовиутворюються з одного або кількох простих умов та службових слів І, АБО, НІ.


Складова умова А І В(де А, В - прості умови), виконано, коли виконано кожну з двох простих умов, що до нього входять.

Нехай А - Зверху вільно,У - праворуч вільно,тоді складова умова А І В- Зверху вільно І справа вільно.


Складова умова А АБО В виконано, коли виконано хоча б одну з двох простих умов, що до нього входять: зверху вільно АБО право вільно
Складова умова НЕ А- виконано, коли виконано умова А.

Приклад:Нехай А – клітина зафарбована (проста умова).

П роверка складової умови НЕ А:

а) А – виконано, НЕ А (НЕ зафарбовано) – не виконано.

б) А – не виконано, НЕ А (НЕ зафарбовано) – виконано.


Команда розгалуження

Розгалуженняформа організації дій, коли він у залежність від виконання чи невиконання деякого умови відбувається чи одна, чи інша послідовність дій.

Загальний вигляд команди ЯКЩО:

ЯКЩО ТО Інакше

КІНЕЦЬ

У мові КУМИР:

Повне розгалуження: Неповне розгалуження:
якщо то якщо то

інакше

все все

Допоміжний алгоритм- алгоритм, який вирішує деяке підзавдання основного завдання.

У системі КУМІР допоміжні алгоритми пишуться наприкінці основної програми (після службового слова) кін), викликаються виконання у основний програмі на ім'я.

У опитування та завдання

1. Наведіть усі алгоритми із трьох команд, які перемістять Робота з вихідного положення до клітини Б.

Чи існує для цього завдання алгоритм, під час виконання якого Робот робить:

а) два кроки; б) чотири кроки; в) п'ять кроків; г) сім кроків?


  1. Петя склав алгоритм, що переводить роботу з клітини А в клітину Б із зафарбовуванням якихось клітин. Що повинен зробити Коля з цим алгоритмом, щоб отримати алгоритм, який переводить Робота з Б в А і зафарбовує ті ж клітини?


7. Відомі два допоміжні алгоритми Робота

Намалюйте, що вийде під час виконання Роботом наступних основних алгоритмів:


а)

нц 5 разів


візерунок_1

праворуч; праворуч;


б)

нц 7 разів


візерунок_2

праворуч; праворуч


в)
праворуч; праворуч; праворуч

вгору; вгору

праворуч; праворуч; праворуч

вниз; вниз


г)
праворуч; праворуч
праворуч; праворуч

8. Складіть алгоритми, під керуванням яких Робот зафарбує ці клітини:



9. Відомо, що десь правіше Робота є стіна. Складіть алгоритм, під керуванням якого Робот зафарбує ряд клітин до стіни та повернеться у вихідне положення.

10. Відомо, що десь правіше Робота є зафарбована клітка.

З залиште алгоритм, під керуванням якого Робот зафарбує ряд клітин до зафарбованої клітини та повернеться у вихідне положення.

11. Відомо, що Робот знаходиться поруч із лівим входом у горизонтальний коридор.

12. Відомо, що Робот знаходиться десь у горизонтальному коридорі. Жодна із клітин коридору не зафарбована.

Складіть алгоритм, під керуванням якого Робот зафарбує всі клітини цього коридору і повернеться у вихідне положення.


13. У ряді з десяти клітин правіше робота деякі клітини зафарбовані.

З залиште алгоритм, який зафарбовує клітини:

а) нижче за кожну зафарбовану клітину;

б) вище та нижче кожної зафарбованої клітини.


14. Що можна сказати про правильність наступного фрагмента алгоритму?

нц покиклітка зафарбована

ЯКЩОправоруч вільно ТО

праворуч; зафарбуй

до
ц

15. Напишіть програму, за допомогою якої Робот зможе потрапити до клітини Б у всіх трьох лабіринтах.


16. Напишіть програму, за якою Робот зможе пройти коридором від лівого нижнього кута поля до правого верхнього. Коридор має ширину одна клітина і тягнеться у напрямку ліворуч-знизу вправо-вгору. Приклад можливого коридору зображено малюнку.

З

адачі ДІА


  1. Коридор1. Робот знаходиться десь у вертикальному коридорі. Жодна із клітин коридору не зафарбована. Скласти алгоритм, під керуванням якого Робот зафарбує всі клітини цього коридору та повернеться у вихідне положення.

  1. До
    Треба

    Дано
    оридор2. Робот знаходиться у верхній клітині вузького вертикального коридору. Ширина коридору – одна клітина, довжина коридору може бути довільною.

Можливий варіант початкового розташування Роботу наведено на малюнку (Робот позначений буквою «Р»)

Напишіть для Робота алгоритм, який зафарбовує всі клітини всередині коридору та повертає Робота у вихідну позицію. Наприклад, для наведеного вище малюнка Робот повинен зафарбувати такі клітини (див. рисунок):


  1. На нескінченному полі є довга горизонтальна стіна. Довжина стіни невідома. Робот знаходиться в одній із клітин безпосередньо зверху від стіни. Початкове становище Робота також невідоме. Одне з можливих положень:
Н


Треба

Дано
опишіть алгоритм для Робота, який зафарбовує всі клітини, розташовані вище за стіну і прилеглі до неї, незалежно від розмірів стіни та початкового положення Робота. Наприклад, для наведеного малюнка Робот повинен зафарбувати такі клітини:

Кінцеве положення Робота може бути довільною. Під час виконання алгоритму Робот не повинен руйнуватися.



  1. На нескінченному полі є довга вертикальна стіна. Довжина стіни невідома. Робот знаходиться в одній із клітин, розташованої безпосередньо праворуч від стіни. Початкове становище робота також невідоме. Одне з можливих положень робота наведено на малюнку (робот позначений буквою «Р»): Напишіть на роботу алгоритм, який зафарбовує всі прилеглі до стіни клітини: ліворуч, починаючи з верхньої не зафарбованої і через одну; справа, починаючи з нижньої зафарбованої та через одну. Робот повинен зафарбувати тільки клітини, що задовольняють цю умову. Наприклад, для наведеного вище малюнка робот повинен зафарбувати такі клітини (див. рисунок): Кінцеве розташування робота може бути довільним. Алгоритм повинен вирішувати завдання для довільного розміру стіни та будь-якої допустимої початкової позиції робота. Під час виконання алгоритму Робот не повинен зруйнуватися.


Напишіть для Робота алгоритм, що зафарбовує всі клітини, розташовані лівіше за вертикальну стіну і вище за горизонтальну стіну і прилеглі до них. Робот повинен зафарбувати тільки клітини, що задовольняють цю умову. Наприклад, для наведеного вище малюнка Робот повинен зафарбувати такі клітини (див. рисунок).


Н Опишіть для Робота алгоритм, що зафарбовує клітини, що прилягають до стіни, зверху і знизу, починаючи з лівої і через одну. Робот повинен зафарбувати тільки клітини, що задовольняють цю умову. Наприклад, для наведеного малюнка а) Робот повинен зафарбувати такі клітини (див. рис. б).

Кінцеве положення Робота може бути довільною. Алгоритм повинен вирішувати завдання для довільного розміру стіни та будь-якої допустимої початкової позиції Робота.



Р

  1. На нескінченному полі є довга вертикальна стіна. Довжина стіни невідома. Робот знаходиться в одній з клітин, розташованої безпосередньо зліва від стіни. Початкове становище робота також невідоме. Одне з можливих положень робота наведено малюнку (робот позначений буквою «Р»):
Напишіть на роботу алгоритм, який зафарбовує всі прилеглі до стіни клітини:

  • зліва все;

  • справа, починаючи з верхньої незафарбованої та через одну.
Робот повинен зафарбувати тільки клітини, що задовольняють цю умову.

B
1102_ГІА2011

На нескінченному полі є дві горизонтальні стіни. Довжина стін невідома. Відстань між стінами невідома. Робот знаходиться над нижньою стіною в клітці, розташованій біля її лівого краю. Напишіть для Робота алгоритм, що зафарбовує всі клітини, розташовані вище за нижню стіну і нижче за верхню стіну і прилеглі до них. Робот повинен зафарбувати тільки клітини, що задовольняють цю умову. Наприклад, для наведеного вище малюнка робот повинен зафарбувати такі клітини (див. рисунок):

Кінцеве розташування робота може бути довільним. Алгоритм повинен вирішувати завдання для довільного розміру поля та будь-якого допустимого розташування стін усередині прямокутного поля. Під час виконання алгоритму Робот не повинен зруйнуватися.


У
1103_ГІА_2011


На нескінченному полі є горизонтальна стіна. Довжина стіни невідома. Від правого кінця стіни вниз відходить вертикальна стіна також невідомої довжини. Робот знаходиться над горизонтальною стіною в клітці, розташованій біля її лівого краю. На малюнку вказано один із можливих способів розташування стін та Роботу (Робот позначений буквою «Р»).

Напишіть для Робота алгоритм, що зафарбовує всі клітини, розташовані вище горизонтальної стіни і правіше за вертикальну стіну і прилеглі до них. Робот повинен зафарбувати тільки клітини, що задовольняють цю умову. Наприклад, для наведеного вище малюнка Робот повинен зафарбувати такі клітини (див. рисунок).

Розглянемо завдання:

На вхід програмі надходить натуральне число, що не перевищує 2*109. Визначте суму цифр цього числа.

На перший погляд, завдання дуже просте: необхідно послідовно виділяти цифри в числі і додавати їх до суми. У той же час, очевидно, що кількість цифр у числі може змінюватися, тому кінцеве значення параметра циклу для виявляється невизначеним і виникають складнощі з його застосуванням.

У циклічних алгоритмах, у яких кількість повторень певного набору команд не можна отримати до початку, застосовуються цикли з умовою.

Цикл «поки»

Однією з таких конструкцій у мові програмування Кумир є цикл поки. Цей цикл, що називається часто цикл із передумовою, має наступний формат запису:

  • нц поки умова
  • тіло_циклу

Умова, записана після службового слова поки що, є логічним виразом.

Виконання циклу відбувається так:

  1. Обчислюється значення логічного виразу.
  2. Якщо результат обчислення дорівнює немає , то виконання циклу закінчується, і Кумир переходить до першої команди після циклу поки що . Якщо результат обчислення так, то виконується тіло циклу, після чого знову відбувається обчислення значення виразу з новим значенням.

Важливо! У тілі циклу поки що має відбуватися зміна деякої величини, що з умовою, щоб забезпечити закінчення циклу, інакше, цикл може бути вічним.

Тепер застосуємо цикл поки що для вирішення нашого завдання

  • введення num
  • нц поки що num > 0
  • сума: = сума + mod (num, 10)
  • num: = div (num, 10)
  • висновок сума

Отже, в ході кожного виконання тіла циклу до величини сума додається остання цифра числа, потім число зменшується в 10 разів. Очевидно, що врешті-решт num дорівнюватиме 0, після чого виконання циклу закінчиться.

Цикл «до того часу»

У Кумир існує ще один варіант циклу з умовою, що отримав назву цикл до тих пір, який має наступний формат:

  • тіло_циклу
  • кц за умови

Якщо циклі поки перевірка умови здійснюється перед тілом циклу, то циклі доти - після. Тому цей цикл часто називають цикл із постумовою. Тіло такого циклу завжди виконається хоча б один раз

Робота циклу доти відбувається так:

  1. Виконується тіло циклу
  2. Обчислюється значення логічного виразу. Якщо результат обчислення дорівнює немає , то знову починає виконуватися тіло циклу і т. д. Якщо результат обчислення так , то цикл закінчується, і Кумир переходить до виконання наступної команди після циклу.

Завдання. На вхід програмі надходить послідовність цілих чисел, що закінчуються банкрутом. Знайдіть кількість негативних чисел у послідовності. Гарантується, що в послідовності є хоча б одне число відмінне від нуля.

(Фрагмент коду програми)

  • введення num
  • якщо num 0
  • то k: = k + 1
  • кц при num = 0
  • висновок k

Цілі: сформувати вміння запису, виконання та налагодження алгоритмів з використанням циклу Бувай; домогтися розуміння використання циклу Бувай ; розвивати вміння аналізувати.

Учні повинні знати: правила запису та виконання циклу Бувай; властивості циклу Бувай.

Учні повинні вміти: використовувати при складанні алгоритмів конструкцію циклу Бувайі записувати її мовою Кумир, володіти методами налагодження: кроками, безперервно.

Метод навчання:пояснювально-ілюстративний та репродуктивний (на етапі пояснення нового матеріалу), репродуктивний з елементами проблемного (етап закріплення матеріалу).

Забезпечення уроку:

  • система Кумир;
  • Інтерактивна дошка;
  • мультимедійний проектор;
  • картки-завдання.

Хід уроку

1. Пояснення нового матеріалу.

У загальному випадку алгоритм має бути універсальним, тобто він не повинен залежати від відстані між Роботом і стіною. Для цього в алгоритмічній мові є спеціальна команда – цикл Бувай.

Загальний вигляд циклу Бувай

У загальному вигляді цикл Бувай записується так:

Під час виконання циклу комп'ютер повторює такі дії:

а) перевіряє записане після службового слова Бувай умова;

б) якщо умова не дотримується, то виконання циклу завершується, і комп'ютер починає виконувати команди, записані після кц . Якщо ж умова дотримується, комп'ютер виконує тіло циклу, знову перевіряє умову тощо.

приклад.

Метод налагодження: кроки.

Діалог Комп'ютера та Робота

Комп'ютер: знизу вільно?

Робот: так.

Комп'ютер: вниз.

Робот: зміщується вниз клітину Б.

Комп'ютер: знизу вільно?

Робот: так.

Комп'ютер: вниз.

Робот: зміщується вниз клітину В.

Комп'ютер: знизу вільно?

Робот: ні.

Оскільки Робот відповів ні, т.ч. записане після доки умова не дотримується і виконання циклу закінчується.

Продемонструвати у системі Кумир методи налагодження: кроками і безперервно.

Тіло циклу може не виконатися жодного разу,якщо умова в циклі Бувайне дотримується із самого початку. Наприклад, якщо в алгоритмі "вниз до стіни" Робот на перше ж питання "знизу вільно" відповість ні, то комп'ютер не викличе команду "вниз" жодного разу.

Зациклювання.Виконання циклу Бувайможе і не завершитися, якщо умова весь час буде дотримуватися. Наприклад, якщо нижче робота ніяких стін немає, то під час виконання попереднього алгоритму, комп'ютер «зациклиться», тобто. буде нескінченно запитувати у Робота «знизу вільно», отримувати у відповідь такі командувати "вниз".

Виконання вправ.

2. Експерименти з програмою з прикладу виконавця Робот.

Необхідно, в системі Кумира, попередньо зробити заготовки розташування робота (файли 1.fil-6. fil).

Вправи.

Експерименти із програмою.

Завдання 1. (Завантажити файл 1.fil)

Потрібно перевести Робота з клітини А до клітини Б. Використати цикл Бувай:

використовувати Робот

Завдання 2. (Завантажити файл 2.fil)

Дано, що Робот знаходиться біля лівої стіни всередині прямокутника, обгородженого з усіх боків стінами. Усередині прямокутника стін немає, розміри прямокутника невідомі. Потрібно зафарбувати горизонтальний ряд клітин від вихідного положення робота до правої стіни та повернути робота у вихідне положення.

Завдання 3. (Завантажити файл 3.fil)

Робот знаходиться у горизонтальному коридорі. Зафарбувати всі клітини коридору:

Завдання 4. (Завантажити файл 4.fil)

1. Переробіть алгоритм «зафарбувати ряд праворуч і повернутися» використовуючи в ньому цикл:

2. Використовуючи допоміжний алгоритм, складіть алгоритм, під час якого Робот зафарбовує прямокутник.

Завдання 5. (Завантажити файл 5.fil)

Складіть алгоритм для зафарбування всіх клітин навколо прямокутної стіни:

Завдання 6. (Завантажити файл 6.fil) (З матеріалів іспиту 2009р.)

Робот знаходиться в лівому верхньому куті обгородженого простору, що має форму прямокутника. Розміри прямокутника невідомі. Написати алгоритм алгоритм, що зафарбовує чотири кутові клітини прямокутника.

Завдання 7. (Завантажити файл 6.fil) (З матеріалів іспиту 2009 р.)

Робот знаходиться в лівому верхньому куті обгородженого простору, що має форму прямокутника. Розміри прямокутника невідомі. Написати для Робота алгоритм, що зафарбовує всі клітини, розташовані всередині прямокутника та прилеглі до нижньої сторони прямокутника.

3. Закріплення. Запитання:

Які команди Комп'ютер даватиме Роботу при виконанні циклу:

а) нц поки клітина не зафарбована

б) нц поки клітина зафарбована

У ситуації, коли Робот стоїть:

  1. у зафарбованій клітці,
  2. у не зафарбованій?

Розташування Робота показано на наступних малюнках:

Як виконуватиметься цикл?

Домашнє завдання.Визначте значення змінної S після виконання операторів:

Література: А.Г.Кушніренко «Основи інформатики та обчислювальної техніки»

І сьогодні поговоримо про цикли. Давайте розберемося, що таке цикл і як навчити виконувати циклічні алгоритми нашого Робота.

Отже, що таке цикл? Уявіть, що ми на уроці фізичної культури і маємо завдання зробити 7 присідань. Це завдання можна оформити у вигляді лінійного алгоритму і тоді воно виглядатиме приблизно так:

зроби присідання

зроби присідання

зроби присідання

зроби присідання

зроби присідання

зроби присідання

зроби присідання

Т. е. ми повторили команду зроби присідання 7 разів. А чи є сенс писати 7 однакових команд? Може простіше дати команду зроби 7 присідань? Звичайно простіше та правильніше. Це і є цикл. Ви можете самі згадати приклади циклів із життя – їх досить багато.

Таким чином лінійний алгоритм, де повторюються одні й самі команди ми можемо оформити у вигляді циклічного алгоритму- приблизно так:

повторюй 7 разів

зроби присідання

кінець циклу

Ось так, придуманою нами мовою ми оформили цикл. Виконавець Робот також має можливість записувати цикли. Причому, цикли бувають різні. Той варіант, який ми щойно розглянули називається цикл із лічильникомабо цикл із параметром.

Види циклів.

Цикл із лічильником.

Цикл із лічильникомзастосовується коли наперед відомо скільки повторень необхідно зробити. У прикладі вище із присіданнями саме такий випадок.

Для того, щоб написати цикл із лічильником для виконавця, необхідно знати його синтаксис. А він такий:

нц<кількість повторень> раз

<команда 1>

<команда 2>

<команда n>

Тут ми повинні вказати кількість повторень (число) та команди, які повторюватимуться. Команди, які повторюються в циклі називають тілом циклу.

Давайте розглянемо це з прикладу.

Спочатку Робот перебував у лівій верхній клітині.

Давайте спочатку вирішимо задачу лінійно. У цьому випадку ми будемо зафарбовувати поточну клітинку і переміщатися на 1 клітинку вправо і програма буде виглядати так:
використовувати Робот
алг
поч

зафарбувати

праворуч

зафарбувати

праворуч

зафарбувати

праворуч

зафарбувати

праворуч

зафарбувати

праворуч

зафарбувати

праворуч

зафарбувати

праворуч

Як бачимо, команди зафарбувати і праворуч повторюються 7 разів. Давайте перепишемо програму з використанням циклу. До речі, щоб вставити цикл у програму можна в меню Вставкавибрати пункт нц-раз-кцабо натиснути одну з комбінацій клавіш Esc, Р(російська літера Р) або Esc, H(Латинська літера H). Причому клавіші треба натискати послідовно- Спершу Esc, відпустити її і тільки потім Р або H.

Так ось, наша програма з цикломвиглядатиме так:

використовувати Робот

нц 7 разів

зафарбувати

праворуч

Якщо ми її запустимо, то побачимо, що в результаті вийде те саме — 7 зафарбованих клітин. Однак програма стала коротшою і значно грамотнішою з алгоритмічної точки зору!

Як розминку та закріплення пропоную самостійно написати програму для Робота, яка намалює квадрат зі стороною 7 клітин. Звичайно, використовуючи цикл. Чекаю на рішення в коментарях.

Цикл із умовою.

При розв'язанні задачі 19 ДПА з інформатики з Роботом використовувати цикл із лічильником не вийде. Так як там поле, як правило, нескінченне та стіни не мають конкретної довжини. Тому ми зможемо визначити кількість повторень для циклу з лічильником. Але не біда – нам допоможе цикл із умовою.

Повернемося до фізкультури та змінимо завдання. Адже хтось може і не зробити 7 присідань, а інший може зробити 27. Чи можна врахувати це при створенні циклу? Звичайно. Тільки тепер ми використовуватимемо не лічильник (кількість повторень), а умова. Наприклад, доки не втомився, роби присідання. У цьому випадку людина робитиме не конкретну кількість присідань, а присідатиме доти, доки не втомиться. І наш цикл абстрактною мовою набуде такого вигляду:

Бувай не втомився

зроби присідання

кінець циклу

Слова не втомився у нашому випадку – це умова. Коли воно є істинним, цикл виконується. Якщо воно помилково (втомився) тіло циклу нічого очікувати виконано. У виконавця Робот є кілька умов

зверху вільно

знизу вільно

зліва вільно

праворуч вільно

зверху стіна

знизу стіна

ліворуч стіна

праворуч стіна

Але за умови завдання 19 ГИА вказані лише перші 4. Отже будемо користуватися лише ними.

Тепер давайте розв'яжемо наступне завдання для Робота — намалювати вертикальну лінію від лівої до правої межі поля використовую цикл із умовою. Спочатку Робот знаходиться у лівому верхньому кутку.

Давайте спочатку сформулюємо словесний алгоритм - тобто опишемо словами, що потрібно робити Роботу. Цей алгоритм звучатиме приблизно так:

« Поки праворуч вільно роби крок праворуч і зафарбовуй клітину »

В результаті Робот пробіжить по всіх клітинах праворуч і їх зафарбовуватиме доти, поки праворуч не виявиться стіна.

Вихідний код нашої програми для Робота буде приблизно такий:

використовувати Робот

нц поки праворуч вільно

праворуч

зафарбувати

В результаті виконання цієї програми ми побачимо таку картину:

 

 

Це цікаво: