Главное меню  

   

Авторизация  

   
   
Хостинг в Украине
   


33.7%Russian Federation Russian Federation
31.2%Ukraine Ukraine
18.9%United States United States
2.6%Belarus Belarus
2.3%Czech Republic Czech Republic
2%Kuwait Kuwait
2%Kazakhstan Kazakhstan
1.4%France France
1.1%Romania Romania
0.8%Germany Germany

Сегодня: 4
Вчера: 151
На этой неделе: 155
На прошлой неделе: 825
В этом месяце: 1639
В прошлом месяце: 2042
Всего: 6906


   

блог админа

Записи

  • Главная
    Главная Страница отображения всех блогов сайта
  • Категории
    Категории Страница отображения списка категорий системы блогов сайта.

Урок №53 Циклические алгоритмы

Добавлено : Дата: в разделе: 9 класс

Основные темы параграфа: 

♦ команда цикла; 
♦ цикл в процедуре;
♦ блок-схемы алгоритмов; 
♦ цикл с предусловием.

Команда цикла

Обсудим решение следующей задачи.

Задача 3. Исходное положение: ГРИС — у левого края поля, направление — на восток. Требуется нарисовать горизонтальную линию через весь экран.

Задачу можно решить, написав 15 раз команду шаг (если поперек поля рисунка 15 шагов). Но есть и более короткий вариант программы. Вот он:

пока впереди не край, повторять
нц
         шаг
кц

Здесь использована команда, которая называется циклон. Формат команды цикла следующий:

пока <условие>, повторять
нц
                <тело цикла>
кц

Служебное слово нц обозначает начало цикла, кц — конец цикла.

Это первая команда из СКИ, которая использует обратную связь между графическим исполнителем и управляющим им компьютером. Она заключается в том, что проверяется, не вышел ли ГРИС на край поля и не грозит ли ему следующий шаг или прыжок в этом направлении аварией. Проверяемые условия звучат так: «впереди край?» или «впереди не край?». На что машина получает от исполнителя ответ «да» или «нет».

В приведенном примере проверяется условие «впереди не край?». Если «да», то делается шаг (т. е. выполняется <тело цикла>). Затем происходит возврат на проверку условия, и все повторяется. Если проверка условия дает отрицательный результат (т. е. впереди край), то выполнение цикла завершается и исполняется следующая команда программы.

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

Ситуация, при которой выполнение цикла никогда не заканчивается, называется зацикливанием. Пусть ГРИС находится в середине поля. Исполнение следующего цикла:

пока впереди не край, повторять 
нц
       шаг
       поворот
кц

никогда не закончится. ГРИС будет бесконечно рисовать квадратик, так как проверка условия «впереди не край?» всегда будет давать положительный ответ.

Цикл в процедуре

Задача 4. Теперь составим программу, по которой графический исполнитель нарисует прямоугольную рамку по краю поля (рис. 5.7). Исходное положение: ГРИС находится в левом верхнем углу, смотрит на юг.

240px-Informatika 9 174w

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

программа Рамка
нач
    сделай ЛИНИЯ 
    поворот
    сделай ЛИНИЯ 
    поворот
    сделай ЛИНИЯ 
    поворот 
    сделай ЛИНИЯ 
кон 

Программа проведения линии нами уже рассматривалась. Осталось оформить ее в виде процедуры.

процедура ЛИНИЯ
нач
        пока впереди не край, повторять
        нц
                 шаг
        кц
кон

При составлении этой программы использовалась одношаговая детализация в такой последовательности:

Informatika 9 175q


Блок-схемы алгоритмов

Начиная с 50-х годов прошлого века, т. е. еще с эпохи ЭВМ первого поколения, программисты стали использовать графические схемы, изображающие алгоритмы, которые получили название блок-схем.

Блок-схема состоит из фигур (блоков), обозначающих указания на отдельные действия исполнителя, и стрелок, соединяющих эти блоки и указывающих на последовательность их выполнения. Внутри каждого блока записывается выполняемое действие. Сама форма блока подсказывает характер операции, которую он обозначает. Для придания наглядности и единообразия схемам алгоритмов все графические элементы стандартизированы.

Посмотрите на рис. 5.8, где показана блок-схема алгоритма рисования рамки. Она состоит из двух частей: блок-схемы основного алгоритма и блок-схемы вспомогательного алгоритма ЛИНИЯ.

Informatika 9 175.2q

Из этих схем видно назначение блоков различной формы (рис. 5.9).

420px-Informatika 9 176s

Цикл с предусловием

Команда цикла изображается не отдельным блоком, а целой структурой, показанной на рис. 5.9. Такую структуру называют циклом с предусловием (так как условие предшествует телу цикла). Есть и другой вариант названия: цикл-пока (пока условие истинно, повторяется выполнение тела цикла).

При решении следующей задачи снова будем использовать метод последовательной детализации.

Задача 5. Требуется расчертить экран горизонтальными линиями (рис. 5.10). Исходное состояние исполнителя: верхний левый угол, направление — на юг.

Informatika 9 176.2

В программе для решения этой задачи используется та же процедура ЛИНИЯ. Другая процедура – ВОЗВРАТ – возвращает  ГРИС к исходному положению для рисования следующей линии.

420px-Informatika 9 177t

Блок-схемы основного и вспомогательного алгоритмов представлены на рис. 5.11.

Informatika 9 177.2r

Коротко о главном

Для программирования повторяющихся действий применяется команда цикла, которая имеет следующую структуру:

пока <условие>, повторять 
нц
        <тело цикла>
кц

Команда цикла использует обратную связь между объектом управления и управляющей системой. Проверка условия дает информацию управляющей системе о состоянии объекта управления.

В цикле с предусловием если проверяемое условие выполняется (истинно), то выполняются команды, составляющие тело цикла. Если условие ложно, то происходит выход из цикла.

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

Блок-схема — это графический способ описания алгоритма, Блоки обозначают действия исполнителя, а соединяющие их стрелки указывают на последовательность выполнения действий.

Вопросы и задания

1. Что такое цикл? Как записывается команда цикла?
2. Что такое условие цикла? Что такое тело цикла?
3. В каком случае происходит зацикливание алгоритма?
4. Что такое блок-схема?
5. Из каких блоков составляются блок-схемы (как они изображаются и что обозначают)?
6. Что обозначают стрелки на блок-схемах?
7. Составьте программу, переводящую ГРИС в угол поля из любого исходного состояния.
8. Составьте программу рисования прямоугольной рамки вдоль края поля, начиная рисование из любого начального состояния исполнителя.

Домашнее задание №21

Редактировалось Дата:

Добавить комментарий


Защитный код
Обновить

   
© 2012 fordus.