роботы
робототехника
микроконтроллеры
Главная
Новости
Спорт
Шаг за шагом
Статьи
Wiki
Форум
Downloads
Ссылки
Контакты
 

Моделируем робота в среде GameLOGO
Правило "правой руки". Универсальный алгоритм Люка-Тремо.  

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

Робот на микроконтроллере AVR
Схема робота на микроконтроллере. Примеры программ.  
myROBOT ЛОГО новости скачать Лого форум контакты ссылки
GameLogo - программирование на языке ЛОГО  
  О Лого   
  Паперт и Пиаже   
  Миры Лого   
  Почему GameLogo   
  Установка   
  Учебник Лого   
  Черепашка   
  Черепашья графика   
  Переменные   
  Ввод и вывод   
  Циклы   
  Условия   
  Датчик   
  Объекты   
  События   
  Мультимедиа   
  Черепашка считает   
  Графики функций   
  Массивы   
  Примеры и проекты   
  Задачник   beta  
  Примеры на форуме   

Циклы



Что такое циклы?

Одно из ценнейших свойств компьютера, да и любого автомата, - способность много-много раз без устали повторять одни и те же действия.

Многократное повторение последовательности каких-либо действий в программе называют циклом, а саму последовательность действий - телом цикла. Когда необходимо создать цикл, программисты говорят: "Организуем цикл".

Процессы, при реализации которых повторяется выполнение одних и тех же действий, называют циклическими.

Мы уже знакомились с самыми простыми циклами, которые организовывали с помощью команды ПОВТОРИ. Теперь обратимся к более сложным видам циклов - циклу со счетчиком и циклу с условием.

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

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

Мы можем написать следующую программу:


   переменная х

   повторить 255 {
      х = х + 1
      цвет RGB( х, х, х)
      вперед х
      направо 75
   }


На каждом шаге цикла (именно так говорят о каждом повторении) переменная х будет увеличиваться на 1. Мы используем значение этой переменной в функции RGB и в команде вперед. Сначала х будет равен 0, так как никакое значение ему не присвоено. На первом шаге цикла х станет равен 1, потом 2, потом 3 и т. д., пока не достигнет значения 255 на последнем шаге цикла. В данном случае переменная х в цикле будет своеобразным счетчиком. Таким образом, мы организовали цикл со счетчиком.

Для организации циклов со счетчиком существует специальная форма записи. Попробуем написать нашу программу, используя эту форму.

   переменная х

   повторить для х = 1 до 255 {
      цвет RGB( х, х, х)
      вперед х
      направо 75
   }


В данном случае в команде повторить мы видим следующую запись
"для х = 1 до 255", которая означает, что в качестве переменной для счетчика используется переменная "х". Сначала ей присваивается начальное значение "х = 1". Затем указывается, до какого значения х повторять цикл.

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

Еще одним параметром для цикла со счетчиком является ШАГ. Это необязательный параметр, но иногда он может быть очень полезным. Если этот параметр не задан, то переменная, используемая в качестве счетчика, на каждом шаге цикла увеличивается на 1. А если шаг задан, то переменная изменяется на величину шага.

Для примера рассмотрим задачу о нахождении суммы четных чисел, лежащих в интервале от 100 до 200. В данной задаче нам потребуется последовательно перебирать четные числа в заданном интервале. Первым числом будет 100, вторым - 102, третьим - 104. То есть шаг, с которым будет изменяться число, равен 2. Таким образом, мы можем написать программу, в которой организуем цикл со счетчиком и использованием шага.

   переменная х
   переменная S

   повторить для х = 100 до 200 шаг 2 {
      S = S + х
   }

   пиши S

В GameLogo параметры цикла со счетчиком (начальное значение, конечное значение, шаг) могут быть только целочисленными.

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

Теперь рассмотрим другую задачу. В банк положили 1000 рублей под проценты. Каждый месяц на эту сумму начислялось 5%. Причем на следующий месяц проценты начислялись уже на сумму вместе с начисленными в предыдущий месяц поцентами (процент на процент). Через сколько месяцев сумма на счету достигла 2000 рублей?

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

   переменная S
   переменная m

   S = 1000

   повторять пока S < 2000 {
      S = S + S * 0.05
      m = m + 1
   }

   пиши m


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

Вложенные циклы

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

Рассмотрим следующий пример:


   повторить 20 {

          повторить 15 {
          направо 24
          вперед 40
          }

          направо 18
   }


В данном примере цикл, рисующий правильный 15-угольник, повторяется 20 раз, причем черепашка после того, как нарисует очередной 15-угольник поворачивается на 18 градусов. Этот поворот необходим для того, чтобы каждый последующий многоугольник рисовался не на том же месте, где и предыдущий, а с небольшим сдвигом. Чтобы расположить 15-угольники красиво по кругу, необходимо каждый раз поворачиваться на угол, равный 360:20, что составит 18 градусов.


Бесконечный цикл

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

повторять пока 1 = 1 {

}


Оформление программы

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

Для отделения одной части программы от другой используйте пустые строки.

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

Добавить отступ можно с помощью сочетания клавиш Ctrl + Tab.

Проиллюстрируем применение данных правил.

Запись 1.

переменная х
повторить 4 {
повторить для х = -1 до 100 {
вперед 10
направо 100 - х }
налево 20 }


Запись 2.

переменная х

   повторить 4 {

        повторить для х = -1 до 100 {
            вперед 10
            направо 100 - х
         }

        налево 20
   }


Во втором случае ту же самую программу воспринимать гораздо легче.

Комментарии

Еще одной важной частью оформления программы являются комментарии. Комментарии служат для того, чтобы снабдить программу ясными и понятными пояснениями. В GameLogo комментарий начинается со знака апострофа ' и может располагаться как на отдельной строке, так и после какой-либо команды.

Пример программы с комментариями.

'---------------------------------------------------------------------------
' Программа "Бесконечная спираль"
'---------------------------------------------------------------------------

переменная х
переменная р

спрятать черепаху
перо 4

повторять пока 1 = 1 { ' начало бесконечного цикла

    р = случайный * 10 + 65 ' задаем угол поворота для спирали

    повторить 255 {
       х = х + 1
       цвет RGB(х, х, х)
       вперед х
       направо р
    }

    домой

    х = 0 ' обнуляем переменную для количества шагов и цвета

} ' конец бесконечного цикла








Copyright © myrobot.ru, 2005-2013


OpenHosting