Как в кумире повторять алгоритмы. Исполнение циклических алгоритмов на базе системы "кумир"
Цели : сформировать умение записи, исполнения и отладки алгоритмов с использованием цикла пока ; добиться понимания использования цикла пока ; развивать умение анализировать.
Ученики должны знать : правила записи и исполнения цикла пока ; свойства цикла пока .
Ученики должны уметь : использовать при составлении алгоритмов конструкцию цикла пока и записывать ее на языке Кумир, владеть методами отладки: по шагам, непрерывно.
Метод обучения: объяснительно-иллюстративный и репродуктивный (на этапе объяснения нового материала), репродуктивный с элементами проблемного (этап закрепления материала).
Обеспечение урока:
- система Кумир;
- интерактивная доска;
- мультимедийный проектор;
- карточки-задания.
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. Закрепление. Вопросы:
Какие команды Компьютер будет давать Роботу при выполнении цикла:
а) нц пока клетка не закрашена
б) нц пока клетка закрашена
В ситуации, когда Робот стоит:
- в закрашенной клетке,
- в не закрашенной?
Расположение Робота показано на следующих рисунках:
Как будет выполняться цикл?
Домашнее задание. Определите значение переменной S после выполнения операторов:
Литература : А.Г.Кушниренко «Основы информатики и вычислительной техники».
1. Введение
система "КуМир" (название происходит от слов "Комплект Учебных Миров"), с которой вас познакомит данный электронный вариант учебника. Разработчики языка "КуМир" преследовали цель создать простой язык для начального курса информатики, отвечающий современной технологии программирования и допускающий производственное использование. За основу был взят школьный алгоритмический язык. Язык был дополнен некоторыми возможностями, превращающими его из учебного в производственный. В языке есть: типы цел, вещ, лит ; традиционный набор операций над данными этих типов (включая операции над строками и стандартный набор математических функций); массивы (таб ) указанных типов; структурные управляющие конструкции циклов, ветвление и др. КуМир открыт - подключение внешних исполнителей обогащает язык новыми возможностями: от управления базами данных и работы с геометрическими объектами до расширения множества допустимых числовых типов (при этом язык позволит смешивать в выражениях новые типы с уже существующими числовыми типами). Современная технология программирования учит разбивать программу не только на подпрограммы, но и на более крупные единицы: наборы программ, работающих над общими данными. В разных языках программирования такие единицы называются по-разному, в КуМире такая единица называется "Исполнитель". Понятие исполнителя чрезвычайно важно в практической работе , и должно быть введено на возможно более ранних стадиях обучения. Опыт использования КуМира в преподавании и для разработки учебного программного обеспечения показал, что язык прост в изучении и вместе с тем достаточно мощен для расширения широкого класса производственных задач. Подобно Е-практикуму, КуМир является интегрированной системой, включающей текстовый редактор, инкрементальный компилятор с нулевым временем ответа, а так же простой и удобный отладчик. Хорошее название для системы такого рода - "Редактор-компилятор": пока вы вводите вашу программу, компилятор ее обрабатывает, и в любой момент программа готова к выполнению без малейшей задержки.
2. Имена и типы величины. Операции КуМира
В записи имен переменных могут быть использованы любые символы русского и латинского алфавита , а так же цифры. Имя не должно начинаться с цифры. На длину имен в системе КуМир строгих ограничений не накладывается, но для удобства редактирования и во избежание переполнения строк переменным и алгоритмам не стоит давать слишком длинные имена. Обычно имя подбирается так, чтобы можно было понять, для чего предназначен алгоритм. При редактировании программ также следует помнить о том, что русские и латинские буквы, сходные по написанию, различаются ЭВМ. Например, если при описании переменной с именем А пользователь набрал "А" на латинском алфавите, а в тексте алгоритма пытается обратиться к этой переменной, набирая ее имя на русском алфавите, то в данной строке на "полях" появится сообщение "имя не определено". В алгоритмическом языке системы программирования КуМир используются три типа величин: целые (цел ), вещественные (вещ ) и литерные (лит ).Тип величины - определяет множество значений, которые может принимать величина, и множество действий, которые можно выполнять с этой величиной.Величина - это отдельный информационный объект, который имеет имя, значение и тип.
Постоянная величина (константа) не изменяет своего значения в ходе выполнения алгоритма. Переменная величина может изменять значение в ходе выполнения алгоритма.Выражение - запись, определяющая последовательность действий над величинами. Выражение может содержать константы, переменные, знаки операций, функции. Для записи выражений в КуМире используются следующие символы:
Для обозначения знаков логических операций используются символы: = равно; не равно; больше; = больше или равно; Для записи сложных условий используются такие операции как: И , ИЛИ, НЕ. И - одновременное выполнение перечисленных условий (Х > 0 и Х 0 или Y > 0);НЕ - отрицание.
3. Встроенные функции языка КуМир
Приведем пример встроенных функций:
SIN (X) COS (X) TG (X) EXP (X) LN (X) ABS (X) SQRT (X) MOD (A, B) INT (X) ПИ
синус х косинус х тангенс х экспонента х (ех) натур. логарифм х модуль х корень квадратный х остаток от деления (А на В) целая часть числа число "пи" - 3,14159
Пример записи арифметических выражений на алгоритмическом языке:
4. Команды ВВОДА / ВЫВОДА информации
Часто требуется организовать обмен информацией ("диалог") между человеком и ЭВМ в процессе выполнения алгоритма. Для этого в алгоритмическом языке есть специальные команды ВЫВОДА информации из памяти ЭВМ на экран и ВВОДА информации с клавиатуры (от человека) в память ЭВМ. Команда ВВОДА - команда, по которой значения переменных задаются через устройства ввода (клавиатура). Команда ВЫВОДА - команда, по которой значение величины отражается на устройстве вывода компьютера (экран монитора). Поскольку в алгоритмическом языке для запоминания информации используются величины, то в командах ввода / вывода указываются имена величин, значения которых надо вывести (показать на экране) или ввести (запомнить в памяти ЭВМ). Пример:
Служебное слово НС (новая строка) указывает ЭВМ, что информация должна выводиться на новую строку.
5. Команда присваивания. Создание и редактирование программ линейной структуры
Для того чтобы запомнить или изменить значение величины, в алгоритмическом языке есть специальная команда - команда присваивания , которая записывается в виде:
ИМЯ ВЕЛИЧИНЫ: = ВЫРАЖЕНИЕ
Знак " : присвоить" (например, команда " n: = e" читается " n присвоить е"). При выполнении команды присваивания ЭВМ сначала вычисляет записанное в правой части выражение (заменяя имена величин на их значения), а потом полученное значение выражения записывает в память.
Алгоритмы, представляющие собой простую последовательность действий, называются алгоритмами линейной структуры. Рассмотрим процесс создания линейного алгоритма на примере вычисления выражения: 1. Вычислить сумму двух чисел 2. Написать программу нахождения гипотенузы прямоугольного треугольника по двум данным катетам 3. Найти объем куба, если известна его сторона
6. Создание и редактирование программ разветвляющейся структуры
Решение задач не всегда можно представить в виде линейного алгоритма. Существуют задачи, в которых требуется организовать выбор выполнения последовательности действий в зависимости от каких-либо условий. Такие алгоритмы называются алгоритмами разветвляющейся структуры. В системе программирования КуМир для создания алгоритма разветвляющейся структуры предусмотрены конструкции "ЕСЛИ - ТО - ИНАЧЕ - ВСЕ" и "ВЫБОР - ПРИ - ВСЕ".
Команда ветвления: ЕСЛИ - ТО - ИНАЧЕ - ВСЕ
Команда ветвления - разделяет алгоритм на два пути в зависимости от некоторого условия; затем исполнение алгоритма выходит на общее продолжение. Ветвление бывает полное и неполное.
Графическая схема выполнения конструкции "если "
Служебные слова "если ", "то ", "иначе " имеют обычный смысл. Слово "все " означает конец конструкции. Между "то " и "иначе " - в одной или нескольких строках - записывается последовательность команд алгоритмического языка (серия 1). Между "иначе " и "все " записывается другая последовательность команд (серия 2). Серия 2 вместе со служебным словом "иначе " может отсутствовать. При выполнении конструкции "если " ЭВМ сначала проверяет условие, записанное между "если " и "то ". В результате проверки получается либо ДА , либо НЕТ. Если получится ДА, то выполняется СЕРИЯ 1, а если НЕТ, - то СЕРИЯ 2 (если она есть) . Если условие не соблюдается (получится НЕТ ), а серия 2 вместе с "иначе " отсутствует, то ЭВМ сразу переходит к выполнению команд, записанных после слова "все ".
7. Виды циклов в системе программирования КуМир
Алгоритмы, отдельные действия которых многократно повторяются, называются алгоритмами циклической структуры. Совокупность действий алгоритма, связанную с повторением, называют циклом.Команда цикла обеспечивает повторное выполнение последовательности команд (тела цикла) по некоторому условию. Для программирования алгоритмов циклической структуры в системе программирования КуМир предусмотрено два вида циклов: цикл с предусловием (цикл пока) и цикл с параметром (цикл для).
Цикл с предусловием (цикл пока)
Цикл с предусловием (цикл пока) - цикл, выполнение которого повторяется, пока истинно условие цикла. Служебные слова НЦ (начало цикла) и КЦ (конец цикла)пишутся строго одно под другим и соединяются вертикальной чертой. Правее этой черты записывается повторяемая последовательность команд (тело цикла).
При его выполнении ЭВМ циклически повторяет следующие действия: а) проверяет записанное после слова пока условие; б) если условие не соблюдается (условие ложно), то выполнение цикла завершается и ЭВМ начинает выполнять команды, записанные после КЦ . Если же условие соблюдается (условие истинно), то ЭВМ выполняет тело цикла, снова проверяет условие и т. д. Если условие в цикле пока не соблюдается с самого начала, то тело цикла не выполняется ни разу. Замечание . Выполнение цикла пока может и не завершиться, если условие все время будет истинным (эту ситуацию принято называть зацикливанием). Поэтому во избежание подобных ситуаций в теле цикла должны содержаться команды изменения условия.
Дано целое положительное число N. Вычислить факториал этого числа: N! = 1 * 2 * 3 * . * N.
Цикл с параметром (цикл для)
Цикл с параметром (цикл для) - повторное выполнение тела цикла, пока целочисленный параметр пробегает множество всех значений от начального (i1) до конечного (in):
Здесь i - переменная целого типа, называемая параметром цикла: i1, in - начальное и конечное значения параметра цикла, которые могут быть заданы либо произвольными целыми числами, либо выражениями с целыми значениями; h - шаг изменения значения параметра цикла, значением шага может быть любое целое число (как положительное, так и отрицательное). Запись "шаг h" в первой строке может вообще отсутствовать, при этом по умолчанию значение шага принимается равным 1. При выполнении цикла для, его тело выполняется для i = i1, i = i1 + h, i = i1 + 2*h, . . . , i = in. Правила алгоритмического языка допускают задание любых целых i1, in, h. В частности, in может быть меньше i1. Если при этом значение h б>сто вывод нс ," максимальным числом является", авсе если а с то вывод нс ," максимальным числом является", бвсе если а б то а:= а + б б:= а * биначе а:= а * б б:= а + бвывод нс , а, бкон
Найдите среди 4 произвольных чисел минимальное Решение:
алг минимумнач вещ а, б, с, евывод " введите 4 произвольных числа"ввод а, б, с. еесли а>б>с>ето вывод нс ," максимальное число-",авсе если а c>ето вывод нс ,"максимальное число -",бвсеесли а ето вывод нс ," максимальное число -", свсеесли а сто вывод нс ," истина"иначе вывод нс ,"ложь"всекон
Найдите Факториал натурального числа n (Факториалом натурального числа n является произведение всех натуральных чисел на промежутке от 1 до n ) Решение:
алг факториалнач вещ а. бцел н, ивывод ввод на:= 1нц для и от 1 до нвывод нс , " введите число"ввод б а:= а * бкцвывод нс , " факториал ",н,"целых чисел равен", акон
Найдите максимальное значение среди n - целых чисел Решение:
алг максимумнач вещ а, бцел и, нвывод " введите количество целых чисел для сравнения"ввод на:=0нц для и от 1 до нвывод нс , "введите число"ввод бесли б>ато а:=бвсе кц вывод нс , " максимальным числом среди данных является число", акон
Найдите среди n-целых чисел количество отрицательных Решение:
алг совпадениенач вещ а, б, сцел н, и, звывод " введите количество натуральных чисел"ввод нвывод нс , "введите число"ввод бн:= н - 1з:= 0нц для и от 1 до нвывод нс ," введите число"ввод с если с = бто з:= з + 1всекцвывод нс , кон
Последовательно вводятся n-целых чисел. Найти количество совпадений с первым числомРешение:
нач вещ а, б, сцел н, и, звывод " введите количество натуральных чисел"ввод нвывод нс , "введите число"ввод бн:= н - 1з:= 0нц для и от 1 до нвывод нс , " введите число"ввод с если с = бто з:= з + 1всекцвывод нс , " количество совпадений с первым числом равно", зкон
Последовательно вводятся n-целых чисел. Найти разницу между максимальным и минимальным значениями данных чиселРешение:
алг разницанач вещ а. б, с, дцел н, ивывод "Введите количество чисел"ввод на:= 0с:= 0нц для и от 1 до нвывод нс , "введите число"ввод десли д>сто с:= двсеесли д max то max:= bвсекцвывод нс , кон
Найдите максимальный элемент массива и выведите его на монитор Решение:
алг массив 2нач цел n, iвещ b, maxвещтаб а [ 1:n ]вывод " заполните массив "ввод nmax:= 0нц для i от 1 до nвывод нс , " введите элемент массива"ввод bесли b > maxто max:= bвсекцвывод нс , " максимальный элемент данного массива равен", maxкон
Найдите сумму элементов одномерного массива Решение:
алг сумманач цел n, iвещтаб а [ 1:n ]вещ b, zвывод " введите количество элементов массива "ввод nz:= 0нц для i от 1 до nвывод нс , " введите элемент массива"ввод bz:= z + bкцвывод нс , " сумма",n,"элементов массива равна", zкон
Найдите произведение элементов одномерного массива Решение:
алг произведениенач цел i, nвещ s, dвещтаб а [ 1:n ]вывод " введите количество элементов массива"ввод nd:= 1нц для i от 1 до nвывод нс , "введите число"ввод sd:= d * sкцвывод нс ," произведение", n, " элементов равно", dкон
Заполните матрицу случайными числами Решение:
алг массив двумерный цел n, j, h, vнач вещтаб а вывод " введите количество элементов таблицы"ввод nh:= 0v:= 0вывод нс , " заполните массив"ввод aнц для j от 1 до nесли а > 0то h:= h + 1иначе v:= v + 1кц вывод нс , а кон
Вычислите количество положительных и отрицательных элементов первой строчки матрицы Решение:
алг массив 2нач вещ b, x, zцел i, nвывод ввод n x:= 0z:= 0нц для i от 1 до nвывод нс ," введите число"ввод bесли b > 0то x:= x + 1иначе z:= z + 1всекцвывод нс , вывод нс , кон
Вычислите сумму элементов каждой строки Решение:
алг массив 3нач вещ b, x, z, yцел i, nвещтаб a[ 1:n, 1:n ]вывод " введите количество столбцов"ввод n x:= 0z:= 0нц для i от 1 до nвывод нс , " заполните массив"ввод a[ 1:n, 1:n ]b:= a[ 1,i ]+a[ n, i ]кцвывод нс , " количество положительных чисел равно",xвывод нс , " количество отрицательных чисел равно", zкон
Вычислите сумму трех чисел второй строчки матрицы размером три на три Решение:
алг матрицанач цел i, nвещтаб a[ 1:3, 1:3]вывод " заполните массив"ввод a[ 1:3, 1:3 ]n:= 0нц для i от 1 до 3n:= n + a[ 2,i ]кц вывод нс , "сумма чисел второй строки массива равна", nкон
Цели : сформировать умение записи, исполнения и отладки алгоритмов с использованием цикла пока ; добиться понимания использования цикла пока ; развивать умение анализировать.
Ученики должны знать : правила записи и исполнения цикла пока ; свойства цикла пока .
Ученики должны уметь : использовать при составлении алгоритмов конструкцию цикла пока и записывать ее на языке Кумир, владеть методами отладки: по шагам, непрерывно.
Метод обучения: объяснительно-иллюстративный и репродуктивный (на этапе объяснения нового материала), репродуктивный с элементами проблемного (этап закрепления материала).
Обеспечение урока:
- система Кумир;
- интерактивная доска;
- мультимедийный проектор;
- карточки-задания.
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. Закрепление. Вопросы:
Какие команды Компьютер будет давать Роботу при выполнении цикла:
а) нц пока клетка не закрашена
б) нц пока клетка закрашена
В ситуации, когда Робот стоит:
- в закрашенной клетке,
- в не закрашенной?
Расположение Робота показано на следующих рисунках:
Как будет выполняться цикл?
Домашнее задание. Определите значение переменной S после выполнения операторов:
Литература : А.Г.Кушниренко «Основы информатики и вычислительной техники».
И сегодня поговорим о циклах. Давайте разберемся, что же такое цикл и как научить выполнять циклические алгоритмы нашего Робота.
Итак, что такое цикл ? Представьте, что мы находимся на уроке физической культуры и перед нами стоит задача сделать 7 приседаний . Это задание можно оформить в виде линейного алгоритма и тогда оно будет выглядеть примерно так:
сделай приседание
сделай приседание
сделай приседание
сделай приседание
сделай приседание
сделай приседание
сделай приседание
Т. е мы повторили команду сделай приседание 7 раз. А есть ли смысл писать 7 одинаковых команд? Может проще дать команду сделай 7 приседаний ? Конечно проще и правильнее. Это и есть цикл . Вы можете сами вспомнить примеры циклов из жизни — их довольно много.
Таким образом линейный алгоритм , где повторяются одни и те же команды мы можем оформить в виде циклического алгоритма — примерно так:
повторяй 7 раз
сделай приседание
конец цикла
Вот так, на придуманном нами языке мы оформили цикл. У исполнителя Робот тоже есть возможность записывать циклы. Причем, циклы бывают разные . Тот вариант, который мы только что рассмотрели называется цикл со счетчиком или цикл с параметром .
Виды циклов.
Цикл со счетчиком.Цикл со счетчиком применяется когда заранее известно сколько повторений необходимо сделать. В примере выше с приседаниями именно такой случай.
Для того, чтобы написать цикл со счетчиком для исполнителя необходимо знать его синтаксис. А он такой:
нц количество повторений > раз
Здесь мы должны указать количество повторений (число) и команды, которые будут повторяться. Команды, которые повторяются в цикле называют телом цикла .
Давайте рассмотрим это на примере.
Изначально Робот находился в левой верхней клетке.
Давайте для начала решим задачу линейно. В этом случае мы будет закрашивать текущую клетку и перемещаться на 1 клетку вправо и программа будет выглядеть так:использовать Робот алг нач
Как видим, команды закрасить и вправо повторяются 7 раз. Давайте теперь перепишем программу с использованием цикла. Кстати, чтобы вставить цикл в свою программу можно в меню Вставка выбрать пункт нц-раз-кц или нажать одну из комбинаций клавиш Esc, Р (русская буква Р) или Esc, H (латинская буква H). Причем клавиши надо нажимать последовательно — сначала Esc, отпустить ее и только потом Р или H.
Так вот, наша программа с циклом будет выглядеть так:
использовать Робот
Если мы ее запустим, то увидим, что в результате получится тоже самое — 7 закрашенных клеток. Однако программа стала короче и значительно грамотней с алгоритмической точки зрения!
В качестве разминки и закрепления предлагаю самостоятельно написать программу для Робота, которая нарисует квадрат со стороной 7 клеток. Естественно, используя цикл. Жду решения в комментариях.
Цикл с условием.При решении задачи 19 ГИА по информатике с Роботом использовать цикл со счетчиком не получится. Так как там поле, как правило, бесконечное и стены не имеют конкретной длины. Поэтому мы не сможем определить количество повторений для цикла со счетчиком. Но не беда — нам поможет цикл с условием .
Вернемся к физкультуре и изменим задачу. Ведь кто-то может и не сделать 7 приседаний, а другой способен сделать 27. Можно ли учесть это при создании цикла? Конечно. Только теперь мы будем использовать не счетчик (количество повторений), а условие. К примеру, пока не устал, делай приседания. В этом случае человек будет делать не конкретное число приседаний, а приседать до тех пор, пока не устанет. И наш цикл на абстрактном языке примет такой вид:
пока не устал
сделай приседание
конец цикла
Слова не устал в нашем случае — это условие. Когда оно истинно, цикл выполняется. Если же оно ложно (устал) тело цикла не будет выполнено. У исполнителя Робот есть несколько условий
сверху свободно
снизу свободно
слева свободно
справа свободно
сверху стена
снизу стена
слева стена
справа стена
Но в условии задачи 19 ГИА указаны только первые 4. Так что будем пользоваться только ими.
Теперь давайте решим следующую задачу для Робота — нарисовать вертикальную линию от левой до правой границы поля использую цикл с условием. Изначально Робот находится в левом верхнем углу.
Давайте сначала сформулируем словесный алгоритм — т. е. опишем словами что нужно делать Роботу. Этот алгоритм будет звучать примерно так:
«Пока справа свободно делай шаг вправо и закрашивай клетку »
В результате Робот пробежит по всем клеткам вправо и будет их закрашивать до тех пор, пока справа не окажется стена.
Исходный код нашей программы для Робота будет примерно такой:
использовать Робот
нц пока справа свободно
В результате выполнения этой программы мы увидим вот такую картину:
Как видим, не хватает только закрашенной первой клетки. Для этого перед циклом необходимо выполнить команду закрасить .
Для закрепления прошу написать программу, которая будет делать рамку вокруг рабочего поля Робота независимо от его размера. Конечно же с использованием циклов с условием. В итоге должно получиться так:
Решение жду в комментариях. И напоминаю, до осталось совсем немного времени, готовимся активнее.
Хирьянов Тимофей Федорович
Основные алгоритмические конструкции, кроме элементарных операций, изображаемых одним элементом схемы – это альтернативное исполнение и циклы. Существует два варианта программирования альтернативного исполнения и существует три основных вида цикла.
Условно исполняемый код
Альтернатива
Цикл с предусловием
Цикл с постусловием
Цикл со счётчиком
цел а нц для а от 0 до 9 … тело цикла кц