\b;Ćwiczenie \l;Robot\u object\bottr; musi przejść przez wszystkie \l;niebieskie plusy\u object\waypoint; leżące na ziemi. Droga, którą musi pokonać, składa się z dwóch kwadratów. Pierwszy ma bok równy 15 metrów a drugi, 25 metrów. \image tproc1a 8 8; \b;Ogólny algorytm Najbardziej efektywne rozwiązanie tego problemu polega na napisaniu \l;funkcji\u cbot\function;, która porusza robotem po kwadracie określonego rozmiaru. Główny program staje się wtedy bardzo prosty:\c; \s;extern void object::Funkcja1( ) \s;{ \s; Kwadrat(15); \s; Kwadrat(25); \s;} \n; Wciąż jednak należy zdefiniować funkcję nazwaną \c;Kwadrat\n;. Aby to zrobić, konieczne będzie napisanie kilku instrukcji poza \l;blokiem\u cbot\bloc; który dotychczas był ramką dla każdego z Twoich programów. Na samym końcu programu, po ostatniej klamrze zamykającej, należy zdefiniować funkcję \c;Kwadrat\n;. Program będzie wyglądał następująco: \c; \s;extern void object::Funkcja1( ) \s;{ \s; \n;główna funkcja...\c; \s;} \s; \s;void object::Kwadrat(float bok) \s;{ \s; \n;nowa funkcja...\c; \s;} \n; Przyjrzyjmy się uważniej różnym elementom deklaracji funkcji \c;Kwadrat\n;: \c;\l;void\u cbot\void;\n; Oznacza, że ta funkcja nie zwraca żadnej wartości. \c;\l;object\u cbot\object;::\n; Napisanie tego przed nazwą funkcji oznacza, że będzie ona miała dostęp do wszystkich charakterystyk robota, takich jak \c;position\n;, \c;orientation\n;, itd. W tym ćwiczeniu element ten nie jest wymagany, jako że w funkcji nie będą potrzebne charakterystyki robota. \c;Kwadrat ( )\n; To jest nazwa funkcji. Możesz ją nazwać Kwadrat lub dowolnie inaczej. \c;\l;float\u cbot\float; bok\n; Tutaj definiujesz parametry, które otrzymuje funkcja podczas wywołania. Przy pierwszym wywołaniu funkcji \c;Kwadrat(15)\n;, zmienna \c;bok\n; będzie miała wartość \c;15\n;. Za drugim razem \c;bok\n; będzie równy \c;25\n;. Oto szczegóły tego co zdarzy się po wykonaniu programu: - Najpierw uruchamiana jest główna funkcja \c;Funkcja1\n;. - W wierszu \c;Kwadrat(15)\n;, program podąży za czerwoną strzałką i przejdzie do funkcji \c;Kwadrat\n; po raz pierwszy, \c;bok\n; równy \c;15\n;. - Na końcu funkcji \c;Kwadrat\n;, program podąży za pomarańczową strzałką i wróci do funkcji głównej. - W wierszu \c;Kwadrat(25)\n;, program podąży za niebieską strzałką, przechodząc po raz drugi do funkcji \c;Kwadrat\n;. - Na końcu funkcji \c;Kwadrat\n;, program podąży za jasno niebieską strzałką i wróci do funkcji głównej. \image tproc1b 17 12; W funkcji \c;Kwadrat\n;, użyj instrukcji \c;\l;move\u cbot\move;\n; i \c;\l;turn\u cbot\turn;\n;. Aby skrócić program możesz użyć pętli \c;\l;for\u cbot\for;\n;, która powtórzy 4 razy instrukcje \c;\l;move\u cbot\move;\n; i \c;\l;turn\u cbot\turn;\n;, nie jest to jednak niezbędne. \c; \s;void object::Kwadrat(float bok) \s;{ \s; for ( int i=0 ; i<4 ; i=i+1 ) \s; { \s; move(bok); \s; turn(90); \s; } \s;} \n; \t;Zobacz również \l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;.