\b;Упражнение
Следуйте по спиральному пути. Бот должен проследовать два раза вперед на 25 метров и развернуться, а после этого пройти два раза вперед на 20 метров и развернуться еще раз и т.д.
\image tproc2 8 8;
\b;Функция
Вы заметите, что путь состоит из частей, имеющих форму буквы "L", которые сложены друг с другом. Первая чать (темно-синяя) имеет размер два раза по 25 метров. Вторая (светло-синяя) на 5 метров меньше. Давайте начнем написание программы с функции, которая переместит бота на части, имеющей форму буквы "L", чья длина будет задана в виде параметра:
\c;
\s;void object::Part(float length)
\s;{
\s;	for ( int i=0 ; i<2 ; i=i+1 )
\s;	{
\s;		move(length);
\s;		turn(90);
\s;	}
\s;}
\n;
Теперь вы должны написать главную функцию, которая будет вызывать функцию \c;Part\n;. В самом начале переменная \c;rest\n; будет установлена на 25 метров. Цикл \c;while\n; повторит инструкции внутри блока. Это будет продолжаться до тех пор, пока \c;rest\n; больше нуля. Внутри цикла сначала произойдет вызов функции \c;Part\n; (см. выше), а после этого из длины L будет вычтено 5 метров.
\c;
\s;extern void object::Function2( )
\s;{
\s;	float	rest = 25;
\s;	while ( rest > 0 )
\s;	{
\s;		Part(rest);
\s;		rest = rest-5;
\s;	}
\s;}
\n;
Функция \c;Part\n; будет вызвана в последний раз со значением \c;5\n;. После этого выражение \c;rest-5\n; установит значение переменной \c;rest\n; на нуль, и цикл \c;while\n; будет остановлен.

\b;Комментарий
Вы заметите, что в предыдущем упражнении главная функция располагалась в начале программы, а в этом упражнении она в конце программы после функции \c;Part\n;. Последовательность функций в программе не имеет значения, вы можете писать программу так, как вам больше нравится.

\t;См. также
\l;Программирование\u cbot;, \l;типы\u cbot\type; и \l;категории\u cbot\category;.
