35 lines
2.8 KiB
Plaintext
35 lines
2.8 KiB
Plaintext
\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;.
|