Главная · Интересное · Вспомогательные алгоритмы исполнитель робот. Исполнитель Робот

Вспомогательные алгоритмы исполнитель робот. Исполнитель Робот

Образовательная программа элективного курса «Развитие алгоритмического мышления путем решения задач» (для учащихся 5-6 классов). Срок реализации: 4 месяца. Автор программы: И.Г. Шуплецов Рецензенты: методический совета МБОУ СОШ №13, 2012 год. Пояснительная записка А.П.Ершов описывал операционный стиль мышления – умение планировать структуру действий, необходимых для достижения цели, при помощи фиксированного набора средств. Алгоритмическое мышление предполагает понимание сути базовых алгоритмических конструкций: следование, ветвление, цикл, вызов, а также умение эффективно использовать эти структуры при составлении простых алгоритмов и строить сложные алгоритмы на основе простых. К структурным компонентам алгоритмического стиля мышления относятся: способность к формализации задачи, понимание и способность к реализации элементарных алгоритмических операций, осуществление выбора оптимального способа достижения цели. Умение строить алгоритмы актуально, с точки зрения предметной деятельности, во многих областях знаний и деятельности учеников. Выбор решения задач в среде КуМир обусловлен тем, что они позволяют наглядно демонстрировать алгоритмы, что развивает алгоритмические навыки и алгоритмическое мышление на основе наглядных действий исполнителей. Учащиеся 5-6 классов мотивированы к использованию исполнителей среды КуМир. Они для них просты в использовании и система команд этих исполнителей им понятна и легка в применении. Ученики увлеченно составляют простые алгоритмы и демонстрируют их учителю и друг другу. Наглядность действий исполнителей позволяет легко отслеживать выполнение алгоритма и вносить в него при необходимости коррективы. Курс «Развитие алгоритмического мышления путем решения задач» является практикоориентированным. Учащиеся самостоятельно осваивают среду КуМир и приемы решения задач на основе предложенных технологий и разобранных примеров. Учитель индивидуально помогает при возникновении затруднений и фиксирует решенные задачи, а также предлагает оптимальные варианты решения задач. Курс предлагается для изучения в школах, имеющих необходимое учебно-методическое и техническое оснащение. Он предназначен для учащихся 5 - 6 классов, имеющих элементарные навыки работы с операционной системой WINDOWS. Данный курс может быть продолжен курсом по основам программирования и дистанционным курсом по решению олимпиадных задач на сайте http://www.acmu.ru для заинтересованных учеников 78 классов. Тема «Алгоритмизация» изучается в 4 четверти 6 класса. Таким образом, ученики к этому времени смогут освоить использование среды КуМир и интуитивно-понятные алгоритмические конструкции, что позволит им успешно изучить теорию алгоритмизации и легко применить ее на практике. Курс «Развитие алгоритмического мышления путем решения задач» рассчитан на 17 часов, в ходе которых учащиеся смогут интуитивно, при решении задач на компьютере, освоить основные алгоритмические конструкции: следование, ветвление, цикл, вызов вспомогательного алгоритма, для эффективного составления алгоритмов. 1 Данный курс может стать первым шагом для дальнейшего изучения программирования и выбора направления обучения связанного с информационными технологоями. Цели и задачи курса Цель курса:  расширить знания учащихся по предмету «Информатика и ИКТ»;  развивать алгоритмическое мышление учащихся путем составления алгоритмов для решения задач. Задачи курса:  познакомить учащихся на практике со средой КуМир;  рассмотреть основные возможности наиболее популярных исполнителей «Робот» и «Чертежник»;  усвоить применение основных алгоритмических конструкций: следование, ветвление, цикл, вызов. Технология учебных занятий. Контроль Занятия проводятся в форме практических работ. В начале занятия (5 минут) учитель ставить перед учениками цель данного занятия и напоминает результаты каждого ученика, которые он достиг к этому времени и какие задачи он должен решать на данном уроке. Ученики составляют алгоритмы на компьютере, выполняют их с отслеживанием промежуточных результатов и сообщают учителю о решении задач. Ученики могут помогать друг другу в решении задач. Те задачи, которые не были решены на уроке, могут быть решены как домашняя работа и проверены на следующих занятиях. Учитель проверяет решенную задачу и фиксирует ее решение в журнале. В конце занятия (5 минут) отмечаются те ученики, у которых наибольшее количество решенных задач, выявляются трудности, возникшие у учеников, не решивших задачи и предлагаются и обсуждаются способы их преодоления. В начале и конце урока просматривается рейтинги всех учеников, что позволяет организовать соревнование между учениками. Календарно–тематический план № урока Тема урока 1 2 3 4 5 Знакомство с системой КуМир. Решение задач. Исполнитель Робот. Решение задач. Составление линейных алгоритмов. Решение задач. Составление линейных алгоритмов. Решение задач. Примеры вспомогательных алгоритмов. Составление вспомогательных алгоритмов. Решение задач. Составление вспомогательных алгоритмов. Решение задач. Пример циклического алгоритма. Составление циклических алгоритмов. Решение задач. 6 7 Количество часов 1 1 1 1 1 1 1 2 8 9 10 11 12 13 14 15 16 17 Пример разветвляющегося алгоритма. Составление разветвляющихся алгоритмов. Решение задач. Исполнитель Чертежник. Решение задач. Команда сместиться в точку. Составление линейных алгоритмов. Решение задач. Команда сместиться на вектор. Составление линейных алгоритмов. Решение задач. Команда сместиться на вектор. Составление линейных алгоритмов. Решение задач. Составление вспомогательных алгоритмов. Решение задач. Составление вспомогательных алгоритмов. Решение задач. Составление циклических алгоритмов. Решение задач. Составление циклических алгоритмов. Решение задач. Подведение итогов. Рейтинг учеников. Решение задач. Итого 1 1 1 1 1 2 1 1 1 17 Содержание учебного материала Знакомство с системой КуМир. Загрузка системы КуМир. Назначение исполнителя Робот. Система команд исполнителя Робот. Порядок написания алгоритма. Порядок создания поля Робота. Выполнение алгоритма. Отслеживание результатов выполнения Роботом алгоритма. Написание первого алгоритма. Составление линейных алгоритмов. Решение задач. Вспомогательный алгоритм. Два примера вспомогательных алгоритмов. Команда вызов вспомогательного алгоритма. Запись вспомогательного алгоритма. Два случая, в которых применяются вспомогательные алгоритмы. Составление вспомогательных алгоритмов. Решение задач. Циклический алгоритм. Пример циклического алгоритма. Цикл с заданным количеством повторений, команда Цикл N раз. Составление циклических алгоритмов. Решение задач. Разветвляющийся алгоритм. Два примера разветвляющегося алгоритма. Команда Если. Полная и неполная форма команды если. Условия в разветвляющемся алгоритме. Составление разветвляющихся алгоритмов. Решение задач. Исполнитель Чертежник. Система команд исполнителя чертежник. Написание алгоритма для исполнителя Чертежник. Назначение команды сместиться в точку. Пример алгоритма с командой сместиться в точку. Порядок создания чертежа и написания алгоритма для исполнителя Чертежник. Составление линейных алгоритмов. Решение задач. Исполнитель Чертежник. Пример алгоритма с командой сместиться на вектор. Порядок создания чертежа и написания алгоритма с командой сместиться на вектор для исполнителя Чертежник. Составление линейных алгоритмов. Решение задач. Пример вспомогательного алгоритма. Составление вспомогательных алгоритмов. Решение задач. Пример циклического алгоритма. Составление циклических алгоритмов. Решение задач. Предполагаемые результаты освоения курса Курс позволяет школьникам познакомиться: С загрузкой и элементами интерфейса программы КуМир. С порядком выполнения некоторых действий в программе КуМир. С назначением исполнителя Робот. С назначением исполнителя Чертежник. 3 С основными алгоритмическими конструкциями: следование, ветвление, цикл, вызов. С порядком создания и выполнения алгоритмов. С вычислением значения векторов по клеточкам, используя проекции на оси координат. В процессе обучения школьники приобретают навыки: Создания и выполнения алгоритмов. Сохранения и загрузки алгоритмов. Применения различных алгоритмических конструкций для эффективного решения задач. Построения чертежей на координатной плоскости. Условия реализации курса 1. 2. 3. 4. 5. 6. 7. Компьютерный класс 12 компьютеров. Локальная сеть. Демонстрационный экран. Принтер. Бумага для принтера А4. Среда КуМир – свободно распространяемое программное обеспечение. Дидактические материалы. Список литературы Леонов А.Г. Освой КуМир за 6 часов. - Москва: Информатика, приложение к газете 1 сентября, № 24, 2010 г., № 2, 2011 г., Кушниренко А.Г. Основы информатики и вычислительной техники: Проб. учеб. для сред. учеб. заведений А.Г. Кушниренко, Г.В. Лебедев, Р.А. Сворень – 2-е изд. – М.: Просвещение, 1991. – 224 с.: ил. Приложение 1 Исполнитель «Робот» Линейные алгоритмы Исполнитель «Робот» перемещается в клетчатом поле 15 на 10 клеток и закрашивает клетки. Робот умеет выполнять следующие команды СКИ: вверх, вниз, влево, вправо, закрасить. Загрузите программу КуМир для исполнителя «Робот» 1. Способ – открыть ярлык на рабочем столе. 2. Способ – Компьютер диск C: папка School папка KumirWin файл kumir.exe (приложение). 4 Пример 1 1. Наберите с клавиатуры в КуМире программу Пример1. 2. Вызовите Меню Инструменты команда Редактировать стартовую обстановку Робота. 3. Вызовите меню Помощь обстановки прочитайте действия выполняемые при редактировании обстановки, запомните их. 4. Очистите обстановку и поместите Робота в центр поля. Закройте обстановку, не сохраняя. 5. Вызовите меню Выполнение команда ШАГ (F8 – быстрая клавиша). 6. Вызовите поле Робота, меню Робот команда Показать окно Робота. 7. Нажимайте клавишу F8 до конца программы (пока не исчезнет зеленая полоса). Должен получиться следующий результат. Задача 1 Составить программу, выполнив которую, Робот закрасит клетки, расположенные в шахматном порядке с длиной стороны 3 клетки. 5 Задача 2 Составить программу, выполнив которую, Робот закрасит клетки, расположенные в виде ромба с длиной стороны 4 клетки. Задача 3 Составить программу, выполнив которую, Робот закрасит клетки, расположенные в виде пирамиды высотой 4 клетки и вернуться в исходное положение. Задача 4 Составить программу, выполнив которую, Робот закрасит клетки так, чтобы получился интересный рисунок (например, смайлик). 6 Задача 5 Робот находится в начале горизонтального коридора (клетка А). Перевести Робота в конец коридора (клетка Б). Буквы А и Б в обстановке Робота не ставятся. Задача 6 Робот находится перед входом в вертикальный коридор. Робот должен пройти по коридору и выйти из него на одну клетку. Робот должен закрасить клетки, по которым он проходит. Задача 7 В обстановке Робота создайте лабиринт с одним выходом. Поместите Робот в клетку, из которой он будет выходить из лабиринта. Составьте программу, которая выведет Робота из лабиринта. Задача 8 Робот должен перейти из клетки А в клетку Б и закрасить клетки обозначенные точками. 7 Важно: все алгоритмы, которые вы составили, являются линейными, т.к. команды в них следуют одна за другой от начала и до конца алгоритма. 8

Исполнитель Робот. Вспомогательные алгоритмы (2ч)

Цель: ввести понятие основного и вспомогательного алгоритма; объяснить правила использования вспомогательного алгоритма; разобрать примеры алгоритмов с использованием вспомогательного. Отработать практические навыки построения алгоритмов методом последовательного уточнения.

План урока

1.Ввод новых терминов (основного и вспомогательного алгоритма, вызова) и объяснение новых понятий.

2.Разбор примеров решения задач с применением вспомогательного алгоритма.

3. Практическая работа

При решении некоторых задач удобно разбить их на более мелкие подзадачи, каждую из которых можно оформит как самостоятельный алгоритм. В этом случае сначала составляется так называемый основной алгоритм, в котором для решения подзадач используются вызовы вспомогательных алгоритмов, которые дописываются позднее. Такой способ решения называется методом последовательного уточнения. Он позволяет работать над проектом группе программистов, каждый при этом решает свою подзадачу.

В процессе решения задачи каждый вспомогательный алгоритм может при необходимости быть разбит на более мелкие вспомогательные алгоритмы.

Команда выполнения вспомогательного алгоритма называется вызовом и записывается в теле основного алгоритма.

Один и тот же алгоритм может рассматриваться как основной и вспомогательный по отношению к другим алгоритмам. В алгоритмическом языке сначала записывается основной алгоритм, ниже подряд записываются вспомогательные.

Задача1:

Робот находится в верхнем левом углу поля. Стен и закрашенных клеток нет. Составить алгоритм, с использованием вспомогательного, рисующий четыре крестика на одной горизонтали. Конечное положение Робота может быть произвольным.

Решение

Разбор на доске:

Задача2. Робот находится в верхнем левом углу поля. Стен и закрашенных клеток нет. Составьте алгоритм, который закрашивает в шахматном порядке квадрат 8 х 8. Конечное положение Робота может быть произвольным.

Практическая работа на ПК «Решение задачи с использованием вспомогательных алгоритмов»

Задача1 . Робот находится в нижнем левом углу поля. Стен и закрашенных клеток нет. Составьте алгоритм, который закрашивает 6 вертикальных полос одинаковой длины в 6 клеток. Конечное положение Робота может быть произвольным.

Задача2 . Используя вспомогательные, составьте алгоритм для закрашивания клеток, образующих число 1212.

Домашнее задание : Придумайте алгоритм, рисующий следующее изображение: Для решения задачи примените два вспомогательных алгоритма.

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

Итак, что такое цикл ? Представьте, что мы находимся на уроке физической культуры и перед нами стоит задача сделать 7 приседаний . Это задание можно оформить в виде линейного алгоритма и тогда оно будет выглядеть примерно так:

сделай приседание

сделай приседание

сделай приседание

сделай приседание

сделай приседание

сделай приседание

сделай приседание

Т. е мы повторили команду сделай приседание 7 раз. А есть ли смысл писать 7 одинаковых команд? Может проще дать команду сделай 7 приседаний ? Конечно проще и правильнее. Это и есть цикл . Вы можете сами вспомнить примеры циклов из жизни — их довольно много.

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

повторяй 7 раз

сделай приседание

конец цикла

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

Виды циклов.

Цикл со счетчиком.

Цикл со счетчиком применяется когда заранее известно сколько повторений необходимо сделать. В примере выше с приседаниями именно такой случай.

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

нц <количество повторений > раз

<команда 1>

<команда 2>

<команда n>

Здесь мы должны указать количество повторений (число) и команды, которые будут повторяться. Команды, которые повторяются в цикле называют телом цикла .

Давайте рассмотрим это на примере.

Изначально Робот находился в левой верхней клетке.

Давайте для начала решим задачу линейно. В этом случае мы будет закрашивать текущую клетку и перемещаться на 1 клетку вправо и программа будет выглядеть так:
использовать Робот
алг
нач

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

Как видим, команды закрасить и вправо повторяются 7 раз. Давайте теперь перепишем программу с использованием цикла. Кстати, чтобы вставить цикл в свою программу можно в меню Вставка выбрать пункт нц-раз-кц или нажать одну из комбинаций клавиш Esc, Р (русская буква Р) или Esc, H (латинская буква H). Причем клавиши надо нажимать последовательно — сначала Esc, отпустить ее и только потом Р или H.

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

использовать Робот

нц 7 раз

закрасить

вправо

Если мы ее запустим, то увидим, что в результате получится тоже самое — 7 закрашенных клеток. Однако программа стала короче и значительно грамотней с алгоритмической точки зрения!

В качестве разминки и закрепления предлагаю самостоятельно написать программу для Робота, которая нарисует квадрат со стороной 7 клеток. Естественно, используя цикл. Жду решения в комментариях.

Цикл с условием.

При решении задачи 19 ГИА по информатике с Роботом использовать цикл со счетчиком не получится. Так как там поле, как правило, бесконечное и стены не имеют конкретной длины. Поэтому мы не сможем определить количество повторений для цикла со счетчиком. Но не беда — нам поможет цикл с условием .

Вернемся к физкультуре и изменим задачу. Ведь кто-то может и не сделать 7 приседаний, а другой способен сделать 27. Можно ли учесть это при создании цикла? Конечно. Только теперь мы будем использовать не счетчик (количество повторений), а условие. К примеру, пока не устал, делай приседания. В этом случае человек будет делать не конкретное число приседаний, а приседать до тех пор, пока не устанет. И наш цикл на абстрактном языке примет такой вид:

пока не устал

сделай приседание

конец цикла

Слова не устал в нашем случае — это условие. Когда оно истинно, цикл выполняется. Если же оно ложно (устал) тело цикла не будет выполнено. У исполнителя Робот есть несколько условий

сверху свободно

снизу свободно

слева свободно

справа свободно

сверху стена

снизу стена

слева стена

справа стена

Но в условии задачи 19 ГИА указаны только первые 4. Так что будем пользоваться только ими.

Теперь давайте решим следующую задачу для Робота — нарисовать вертикальную линию от левой до правой границы поля использую цикл с условием. Изначально Робот находится в левом верхнем углу.

Давайте сначала сформулируем словесный алгоритм — т. е. опишем словами что нужно делать Роботу. Этот алгоритм будет звучать примерно так:

«Пока справа свободно делай шаг вправо и закрашивай клетку »

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

Исходный код нашей программы для Робота будет примерно такой:

использовать Робот

нц пока справа свободно

вправо

закрасить

В результате выполнения этой программы мы увидим вот такую картину: