Карандашное программирование: циклы и мандалы Блог тренера / 20.06.2016 Продолжение. Начало см. Карандашное программирование. НачалоКарандашное программирование: смайломанияКарандашное программирование: чужой код для решения своей задачи...Этот пост посвящен методике изучения циклов в среде "карандашного программирования" http://pencilcode.net/.Условие одно: переход от линейного кода к циклу был проведен легко и доступно для учеников 4-6 классов, то есть, той целевой группы, с которой начало использования этой среды наиболее целесообразно. Конечно, начать (создавать простые рисунки и решать несложные проблемы) можно и с более младшими школьниками, но и вряд ли в таком возрасте можно будет использовать весь арсенал блоков, включающий не только команды движения, но и команды управления, операторы и т.д.Особенность дидактического приема в том, чтобы не давать никакого теоретического материала вперед практики. Сразу в дело, сразу к готовым образцам.Для усвоения понятия цикла нет необходимости использовать все примеры, среди предложенных учитель может отобрать те, которые наиболее соответствуют уровню математических знаний и представлений учащихся. В каких-то из них подразумевается минимальные знания о простых геометрических фигурах и углах (смежные углы). Если таких знаний у учеников нет, вполне можно опереться на более доступные примеры.Строгого определения цикла в таком подходе не дается, главное достичь понимания учениками смысла действий. Пример 1. Круг из 360 точек Первый образец цикла, практически, метафора. Цикл - нечто завершенное, такое как круг. На самом деле здесь строится многоугольник с очень маленькой длиной стороны в один черепаший шаг. Такой круг можно построить с помощью пошагового построения 360 точек, продвигаясь на один пиксель вперед и одновременно поворачивая на 1 градус вправо. Как коротко записать такое повторяющееся действие?Для обеспечения работы цикла вводится переменная x (она же выполняет роль счетчика), которая пробегает все указанные значения от первого до последнего. Запись означает для х = 1 до 360. Цикл со счетчиком здесь используются, так как нам заранее известно количество повторений, которые должны быть выполнены.Цикл. 360 точек.Пример 2. КвадратЭто простой и очень доступный пример. Рисование квадрата состоит в 4-х кратном повторении двух команд: движения на одно и то же число шагов-пикселей и поворота на 90° вправо (влево).Цикл. КвадратПример 2.1 Поворот квадрата. Вложенные циклы Если использовать цикл для построения квадрата, вложив его в другой цикл с большим количеством повторов, можно построить красивые фигуры. На каждом шаге внешнего цикла черепашка делает поворот на небольшой градус. Интересно поэкспериментировать - поменять параметры в циклах и посмотреть, как изменится полученный рисунок.Фигура из квадратовПример 2.2 ПрямоугольникЗдесь используется иная форма записи для цикла, в качестве значений для параметра записывается последовательность (список) числовых значений, которые будут пробегаться на каждом новом шаге цикла.Цикл. Прямоугольник.Пример 3. Пятиконечная звездаВ записи количества повторений цикла можно обойтись и без переменной, просто указываем списком, в котором есть ее первое и последнее значение.Такая звезда создается пятикратным повторением двух операторов движения на одно и то же число шагов-пикселей и поворота на один и тот же угол, равный 180° минус угол при острой вершине звездочки: 180°-36°=144°Цикл. Пятиконечная звездаПример 4. ОдуванчикЕще один поясняющий пример - рисование одуванчика, лепестки которого создаются с помощью повторяющейся группы операторов: движения вперед, потом назад и поворота по на определенный градус, вычисляемый по формуле 360/n, где n - количество лепестков одуванчика.Цикл. Рисуем одуванчикПример 5. РадугаЗамечательная возможность - задать в качестве параметров цикла не только числовые значения, но и цвета. Названия цветов записываются списком: в нем на первом месте красный, на последнем - фиолетовый.Цикл. Радуга.Пример 6. Мандалы в точечной технике. Мандалы в точечной технике. Еще пример... Здесь используются вложенные циклы, и на этом "качественном" примере очень хорошо можно рассмотреть, как они работают. Для первого значения цвета (голубого) кружка бОльшего размера последовательно окрашиваются в бледнозеленый, оранжевый и красный кружки меньшего размера. Также здесь используются в качестве переменных слова Inside и outside, что позволяет отделять эти самые круги разных размеров. Значения этих переменных теле цикла берутся из соответствующих списков.Комбинация цветных точекПример 7. Набор цветных многоугольников.Здесь также используются осмысленные переменные в виде слов: colour (цвет) и sides (количество сторон в многоугольнике). Первая - символьного типа, вторая пробегает список числовых значений от 3-х до 6-ти. Цикл с числовыми значениями вложен в символьный.Здесь интересно "поиграть" с примером, добавляя новые цвета для первой переменной и количество сторон для второй.Набор цветных многоугольниковА теперь можно предложить ученикам сделать у этого веселого солнышка все лучи цветными.Или нарисовать похожий цветок фиалки.Пример 8. СпиральЕще один пример записи параметров цикла. Если шаг изменения параметра отличен от единицы, его необходимо дополнительно указать. Для рисования спирали важно, чтобы с каждым шагом непрерывно уменьшался радиус дуги. Поэтому в качестве параметра цикла выбран именно радиус, и на каждом шаге цикла прочерчивается дуга в 30° с меньшим на единицу радиусом. Шаг параметра (-1).Циклы. СпиральЕще простой пример цикла, в котором захочется что-то поменять...Задачи-вызовыПредложите ученикам с помощью циклов нарисовать точками и квадратами такие картинки:Задачи-проблемыПосле серии этих упражнений можно рассмотреть открытую задачу-проблему, решение которой можно предложить ученикам или искать его, рассуждая вместе с учениками. Прием состоит в том, чтобы упростить, сократить длину линейного кода, заменяя многократно повторяющиеся группы команд (операторов) с помощью специальных блоков - циклов. Если хотите, это похоже на переход от сложения к умножению в начальной школе: повторение n раз группы операторов заменяем одним циклом, в котором n приобретает смысл счетчика, а группа операторов (список инструкций) попадает в тело цикла.Проблема 1: как преобразовать с помощью циклов линейный алгоритм рисования цветка с разноцветными лепестками?В одном из недавних постов про программирование в среде, был опубликован проект Цветок с разноцветными лепестками.. Он создан с помощью линейных алгоритмов и поэтому его код достаточно длинный. Можно предложить ученикам задачу, которая будут формулироваться, как укорачивание кода.Цветок с разноцветными лепестками. Линейный код Цветок с разноцветными лепестками. Использование вложенных цикловПроблема 2: как нарисовать с помощью циклов одноподъездный многоэтажный дом? Одноподъездный дом. Проблема 3: как нарисовать с помощью циклов многоподъездный многоэтажный дом? Вложенные циклыМногоподъездный многоэтажный домВторой вариантКоллеги, какие проблемные задания с использованием блоков предложите вы?Посты по теме *Появляются по мере публикацииКарандашное программирование. НачалоКарандашное программирование: смайломанияКарандашное программирование: чужой код для решения своей задачи...Карандашное программирование: циклыГеометрия и карандашное программированиеКарандашное программирование: холст как координатная плоскостьКарандашное программирование: рисуем пейзажи масштабированиемКарандашное программирование: четыре черепашки и симметричный дизайнКарандашное программирование: несколько черепашек и поворотная симметрияКарандашное программирование: черепашка рисует паркеты и мозаикиКарандашное программирование: черепашка и оптические иллюзииО творческих домашних заданиях, или Могут ли все ученики быть успешными?Программирование для воссоздания картин: математика и искусство вместеВ начале была цифра?Пляшущие черепашкиИскусство создания снежинки, или Как скоротать зиму...Карандашное программирование: паркеты и жывёлыКарандашное программирование: рекурсияЁлка в коде. МКЁлка в коде. Этап 2. Шарики цветные STEAM pencilcode блочное программирование искусство математика программирование цикл