\b;Упражнение \l;Бот\u object\bottr; должен пройти через все \l;синие кресты\u object\waypoint; на земле. Путь, который следует преодолеть, состоит из двух квадратов. Первый - 15 метров, второй - 25 метров. \image tproc1a 8 8; \b;Общий принцип Чтобы решить эту задачу, вы должны создать функцию, которая приказывает боту двигаться по квадрату с указанной стороной. Поэтому основная программа оказывается очень простой:\c; \s;extern void object::Function1( ) \s;{ \s; Square(15); \s; Square(25); \s;} \n; Вам все еще нужно определить функцию, которая называется \c;Square\n;. Чтобы это сделать, вы должны написать несколько инструкций, вне \l;блока\u cbot\bloc; , которые до этого времени были фреймом каждой из ваших программ. В самом конце программы после последней закрывающей скобки мы определим функцию \c;Square\n;. Тогда программа примет следующий вид: \c; \s;extern void object::Function1( ) \s;{ \s; \n;главная функция ...\c; \s;} \s; \s;void object::Square(float length) \s;{ \s; \n;новая функция ...\c; \s;} \n; Теперь давайте детально разберем различные элементы задания функции \c;Square\n;: \c;\l;void\u cbot\void;\n; Это значит, что эта функция не будет возвращать значение. \c;\l;object\u cbot\object;::\n; Если вы напишите это перед именем функции, то сможете с ее помощью получить доступ ко всем характеристикам бота, таким как \c;позиция\n;, \c;ориентация\n;, и т.п. В этом упражнении этот элемент не обязателен, так как нам для функции характеристики ботов не нужны. \c;Square ( )\n; Это имя функции. Вы можете назвать ее Square, или дать любое другое имя. \c;\l;float\u cbot\float; length\n; Здесь вы задаете параметры, которые получит функция после того как функция будет вызвана. При первом вызове функции с помощью \c;Square(15)\n;, переменная \c;length\n; будет содержать значение \c;15\n;. При втором вызове, \c;length\n; будет \c;25\n;. Вот детальное описание того, что произойдет после запуска программы: - Сначала будет запущена главная функция \c;Function\n;. - В строке \c;Square(15)\n; программа будет следовать за красной стрелкой и перейдет в функцию \c;Square\n; в первый раз, \c;length\n; содержит \c;15\n;. - При завершении функции \c;Square\n; программа следует за оранжевой стрелкой и возвращается к главной функции. - В строке \c;Square(25)\n; программа следует за синей стрелкой и переходит в функцию \c;Square\n; во второй раз. - При окончании функции \c;Square\n;, программа следует за голубой стрелкой и возвращается к главной функции. \image tproc1b 17 12; В функции \c;Square\n; используйте инструкции \c;\l;move\u cbot\move;\n; и \c;\l;turn\u cbot\turn;\n;. Чтобы сделать ее покороче, вы можете использовать цикл \c;\l;for\u cbot\for;\n;, который повторит инструкции \c;\l;move\u cbot\move;\n; и \c;\l;turn\u cbot\turn;\n; 4 раза; но это не обязательно. \c; \s;void object::Square(float length) \s;{ \s; for ( int i=0 ; i<4 ; i=i+1 ) \s; { \s; move(length); \s; turn(90); \s; } \s;} \n; \t;См. также \l;Программирование\u cbot;, \l;типы\u cbot\type; и \l;категории\u cbot\category;.