\b;Упражнение Дистанционное управление ботом без использования \l;поста обменом информацией\u object\exchange;. Бот должен проехать по 6 синим отметкам. Что потребуется: 1) \l;Колесный сборщик\u object\botgr; без батареи. Данный бот будет ведущим. 2) Ведомый \l;тренировочный бот\u object\bottr; запрограммированый заранее на ожидание комманд от ведущего бота. Ведущий бот будет передавать сразу несколько заявок, не дожидаясь, пока они будут обрабатываться. Мы будем использовать \l;массив\u cbot\array; для эттой цели. \b;Ведомый Прежде всего нужно понять, как программа работает. \l;Класс\u cbot\class; \c;order\n; содержит в себе две части: \c;m_type\n; для заявок на выполнение (движение или поворот) и \c;m_param\n; для дистанции или угла поворота¦: \c;\s;\l;public\u cbot\public; \l;class\u cbot\class; order \s;{ \s; \l;int\u cbot\int; m_type; \s; \l;float\u cbot\float; m_param; \s;} \n; Второй \l;класс\u cbot\class; \c;exchange\n; содержит в себе механизм обмена информацией. Мы заявляем \c;\l;статичную\u cbot\static;\n; часть класса \c;m_fifo\n;, которая содержит в себе лист команд для выполнения. Слово \c;статический\n; гарантирует, что \c;m_fifo\n; будет одинаковым во всех \l;классах\u cbot\class;. \c;\s;{ \s; \l;static\u cbot\static; \l;private\u cbot\private; order m_fifo[] = null; \n; Метод \c;put\n; позволит ведущему боту передавать завяки. Заявки могут быть легко добавлены в конце массива \c;m_fifo\n;: \c;\s; \l;synchronized\u cbot\synchro; void put(order a) \s; { \s; m_fifo[sizeof(m_fifo)] = a; \s; } \n; Другой метод \c;get\n; может быть использован ведомым ботом для получения задания. Этот метод возвращает выполненную заявку. Если лист пустой, будет возвращено значение \c;null\n; и бот будет ждать следующих команд. В противном случае первая заявка в списке будет возвращена, а оставшиеся будут "продвинуты вверх". Если массив не может быть "укорочен", то мы будем использовать временной массив \c;copy\n;¦: \c;\s; \l;synchronized\u cbot\synchro; order get() \s; { \s; if ( sizeof(m_fifo) == 0 ) return null; \s; \s; order a = m_fifo[0]; \s; order copy[] = null; \s; for ( int i=1 ; i