Лабораторно-практическое занятие 13. Тема: Алгоритмы ветвления и цикла Теоретический материал Давайте вспомним, что такое ветвление и цикл в алгоритме. Ветвление – это команда алгоритма, в которой делается выбор: выполнять или не выполнять какую-нибудь группу команд в зависимости от условия. Цикл – это команды алгоритма, описывающие действия, которые надо повторить несколько раз. Давайте посмотрим на вопросы ещё раз и определим, где вопросы условия цикла, а где вопросы условия ветвления, ведь на все эти вопросы мы отвечаем «да» или «нет». Вопрос условия ветвления помогает нам определить, какую команду выполнять следующей. А вопрос условия цикла помогает определить, сколько раз выполнять команды алгоритма. Давайте посмотрим на вопросы второй группы: Чайник пустой? Если «да», то налить воды, если «нет», то сразу поставить на плиту. Устраивает цена книги? Если да, то купить её, а если нет, то искать дальше. Т.е. мы выбираем, какую команду выполнять следующей. Значит, эти вопросы относятся к вопросам ветвления в алгоритме. А теперь давайте посмотрим на вопросы первой группы: Есть ещё невымытые помидоры? Если да, тогда опять мыть помидору. Т.е. мы будем повторять одни и те же действия, пока не помоем все помидоры. И пока ответ на условие «Есть ещё невымытые помидоры?» не будет «нет», мы будем мыть очередной помидор. Значит, если мы выполняем одно и тоже действие несколько раз, то это вопросы условия цикла в алгоритме. Задание Определите, ветвление или цикл будем использовать при составлении алгоритма? 1. Винни-Пух ест мёд. 2. Яблоня и падающее яблоко. 3. Человек идёт под зонтом. 4. Яблоко разрезали на 8 долек. Задача Роботу нужно закрасить ряд клеток до клетки, отмеченной буквой Б (рис. 1). Рис. 1 На пути Робота в некоторых местах есть стены, которые можно обойти сверху. Если стены нет, Робот должен экономить энергию и идти прямо в соседнюю клетку. Нужен ли в этой задаче циклический алгоритм? Почему? Известно ли количество шагов цикла? Какой тип цикла нужно использовать? Что отличает клетку Б, где Роботу нужно остановиться, от других клеток на пути? Запишите обратное условие, при выполнении которого Робот движется дальше. Какие два варианта действий есть у Робота на каждом шаге? С помощью какой логической команды Робот может определить, какой вариант применить? Составьте в тетради блок-схему алгоритма решения задачи, изображённой на рис. 1. Найдите три основные алгоритмические конструкции: • следование (последовательное выполнение, линейный алгоритм); • ветвление (выбор одного из двух вариантов в зависимости от выполнения условия); • повторение (цикл). В середине XX века было строго доказано, что этих конструкций достаточно для того, чтобы записать любой алгоритм, который только можно придумать. Алгоритм решения любой задачи можно составить с помощью трёх конструкций — следования, ветвления и цикла. Эти конструкции называют базовыми алгоритмическими структурами. Блок-схемы этих структур показаны на рис. 2. Рис. 2