Programovací smyčky - C++
Osnova aktivity pro učitele
–
-
Tato studie seznámí studenty s programováním opakujících se chování pomocí opakujících se neboli forever smyček.
-
Učení se programování pomocí opakujících se a nekonečných smyček umožňuje studentům ušetřit čas při vytváření projektu, který používá stejné opakované akce. Další informace o instrukcích používaných v textovém projektu naleznete.
Clawbot V5 je připraven k pohybu!
Tento průzkum vám poskytne nástroje, abyste mohli začít vytvářet některé skvělé projekty, které používají smyčky.
-
Pokyny VEXcode V5, které budou použity při tomto průzkumu:
-
Drivetrain.driveFor(vpřed, 300, mm);
-
Drivetrain.turnFor(vpravo, 90 stupňů);
-
ClawMotor.spinFor(obráceně, 70 stupňů);
-
ArmMotor.spinFor(vpřed, 360 stupňů);
-
while (true) {}
-
opakovat (4) {}
-
počkejte(5, sekundy);
-
Chcete-li zobrazit další informace, klikněte pravým tlačítkem myši na název příkazu v pracovní ploše. Zobrazí se pro daný příkaznápověda.
Tipy pro učitele
Pokud student používá VEXcode V5, může si přečíst řadu článků v knihovně.

Tipy
učitele
Používání automatického doplňování
Automatické doplňování je funkce ve VEXcode V5, která předpovídá zbytek příkazu, který píšete. Při práci ve VEXcode V5 je povzbuďte k používání funkce automatického doplňování, která jim pomůže se syntaxí

ČlánekAutomatické doplňování - Návodypopisuje, jak používat funkci Automatické doplňování. Pro více informací si prohlédněte výuková videa ve VEXcode V5.

Vyberte tutoriál automatického doplňování.
Ujistěte se, že máte požadovaný hardware, svůj technický notebook a VEXcode V5 stažený a připravený.
| Množství | Potřebný materiál |
|---|---|
| 1 |
VEX V5 Classroom Starter Kit (s aktuálním firmwarem) |
| 1 |
VEXcode V5 (nejnovější verze, Windows, macOS) |
| 1 |
Technický poznámkový blok |
| 1 |
Šablona Clawbot (hnací ústrojí 2-motor, bez gyroskopu) ukázkový projekt |
Krok 1: Začněme programovat se smyčkami
-
Před zahájením projektu vyberte správný projekt šablony. Příklad projektu Clawbot Template (Drivetrain 2-motor, No Gyro) obsahuje konfiguraci motoru Clawbota. Pokud šablonu nepoužijete, váš robot nebude projekt spouštět správně.

- VyberteSouboraOtevřít příklady.
-
Projděte si různé projektyPříklad. Tyto projekty demonstrují různé akce, které může váš Clawbot provést. Vyberte a otevřete vzorový projektClawbot Template (Drivetrain 2-motor, bez gyroskopu).

-
Pojmenujte projekt RepeatingActions.
-
Zadejte následující kód:
int main() { // Inicializace konfigurace robota. NEODSTRAŇUJTE! vexcodeInit(); // Pohon vpřed a otočení o 90 stupňů pro 4 opakování opakování(4) {Drivetrain.driveFor (vpřed, 300, mm); Drivetrain.turnFor (vpravo, 90, stupně); počkat(5, sekundy); } }
Prohlédněte si projekt a poté proveďte následující kroky ve svém technickém notebooku.
-
Předvídat, co bude projekt dělat Clawbot. Vysvětlete více než skutečnost, že se projekt opakuje.
Co se to opakuje? Co dělá Clawbot?
- Napište svou predikci, ale nerozdělte krátký projekt na více než dvě části.
Sada nástrojů pro učitele
-
odpovědí
-
V tomto projektu bude robot: jet vpřed o 300 milimetrů, otočit se doprava o 90 stupňů a poté čtyřikrát počkat 5 sekund, aby dokončil čtverec. Místo použití stejných 3 instrukcí čtyřikrát se instrukce opakování zkrátí na pouhý 1 pokus. Instrukce opakování opakuje akce jízdy vpřed a následného otáčení.
-
Předpověď by mohla jednoduše znít „Clawbot se pohybuje ve čtverci.“ To by byl stručný způsob, jak zachytit opakované pohyby Clawbota bez jakéhokoli kontextu.
Studentské technické sešity si mohou vést a hodnotitindividuálněnebo jakotým. Předchozí odkazy poskytují pro každý přístup jinou rubriku. Kdykoli je do vzdělávacího plánování zahrnuta rubrika, je dobrým zvykem ji studentům vysvětlit nebo alespoň rozdat kopie před zahájením aktivity.
-
Uložte, stáhněte a spusťteprojekt Opakující se akce.
- Zkontrolujte vysvětlení projektu ve svém technickém poznámkovém bloku a přidejte poznámky, které je podle potřeby opraví.
Krok 2: Spusťte projekt a pozorujte robota

Znovu se podívejte na projekt Opakující se akce (vpravo). Tento projekt bude čtyřikrát opakovat chování vpřed a poté otočit. Struktura smyčky „repeat“ se používá, když chcete použít sadu chování určitý početkrát.
Pokud je struktura repeat nahrazena strukturou smyčky „while“, robot bude opakovat chování vpřed a poté otočí, „dokud“ je podmínka splněna. Podmínku můžete také nastavit na „true“, aby smyčka „while“ pokračovala donekonečna.
V projektu vlevo se vstup ze senzoru používá k určení, kdy se má začít otáčet. Projekt vpravo používá pevnou vzdálenost hnacího ústrojí k určení, kdy se má začít otáčet.
Aby bylo možné průběžně kontrolovat vstup ze senzoru, používá se příkaz „if/else“ spolu se smyčkou „while“. V projektu vlevo se robot po stisknutí snímače „BumperB“ otočí doprava, jinak se robot bude pohybovat vpřed navždy, pokud není stisknut snímač „BumperB“. Pro průběžnou kontrolu hodnoty senzoru BumperB je příkaz „if“ součástí smyčky „while true“.
Výše uvedený projekt vlevo je praktickým příkladem použití struktury, která se opakuje donekonečna – použití smyček while a příkazů if společně. Představte si samořiditelný zametací stroj, který pokračuje v jízdě dopředu, dokud nenarazí do zdi nebo předmětu, pak se otočí a pokračuje v jízdě.
Rozšiřte si své znalosti
Pro bližší zkoumání používání cyklů s podmíněnými výrazy nechte studenty vytvořit projekt Floor Sweeper ve VEXcode V5.
- Začněte tím, že studentinamontují a zapojí spínače nárazníku.
-
Požádejte studenty, aby otevřeli vzorový projektClawbot Template (Drivetrain 2-motor, bez gyroskopu).

-
Nechte studenty pojmenovat projekt jako Zametač podlah.
-
Požádejte studenty, aby sestavili následující projekt.
// Zahrnutí knihovny V5 #include "vex.h" // Umožňuje snadnější použití knihovny VEX pomocí jmenného prostoru vex; // Funkce pickRandom vrací náhodné celé číslo mezi minimální a maximální hodnotou // předanou jako parametry. int pickRandom(int min, int max) { return min + rand() / (RAND_MAX / (max - min + 1)); } int main() { // Inicializace konfigurace robota. NEODSTRAŇUJTE! vexcodeInit(); // Inicializace generátoru náhodných čísel. srand(randomSeed); while (true) { while (!BumperB.pressing()) { Drivetrain.drive(forward); wait(5, ms); } Drivetrain.stop(); Drivetrain.turnFor((90 + pickRandom(0, 90)), degrees); wait(5, ms); } }
Pokud studenti potřebují s některým z pokynů pomoci, odkažte je na informace vNápovědě
Požádejte studenty, abystáhli a spustili projekta pozorovali, jak se robot pohybuje. Poté zahajte diskusi ve třídě a požádejte studenty, aby vysvětlili, proč byla použita struktura „forever“ místo struktury „repeat“.
Studenti by si měli všimnout, že struktura „forever“ je použita, protože tento projekt neustále kontroluje, zda je stisknut spínač nárazníku.
Krok 3: Výzva čtvercových smyček!

- Nechte svého Clawbota řídit na náměstí.
- Před každým otočením musí být dráp otevřen a zavřen a rameno musí být zvednuto a spuštěno.
- Clawbot nemůže jet po straně náměstí více než jednou.
- Jako výchozí bod můžete použít projekt RepeatingActions z výše uvedeného seznamu, ale před provedením jakýchkoli změn jej uložte jakoSquaredLoops.
Ve svém technickém notebooku naplánujte následující:
- Naplánujte své řešení a předpovězte, co každý pokyn ve vašem projektu bude dělat Clawbot.
- Stáhněte si a spusťtesvůj projekt, abyste ho před odesláním otestovali.
- Podle potřeby provádějte změny v projektu a dělejte si poznámky o tom, co bylo během testování změněno.
Řešení
–
pro učitele – sada nástrojů
Následuje možné řešení výzvy Squared Loops:
int main() {
// Inicializace konfigurace robota. NEODSTRAŇUJTE!
vexcodeInit();
repeat(4){
Drivetrain.driveFor(vpřed, 300, mm);
ClawMotor.spinFor(vzad, 70, stupňů);
ArmMotor.spinFor(vpřed, 360, stupňů);
ClawMotor.spinFor(vpřed, 70, stupňů);
ArmMotor.spinFor(vzad, 360, stupňů);
Drivetrain.turnFor(vpravo, 90, stupňů);
wait(5, ms);
}
}Studentům můžete poskytnoutprogramovací rubrikupro hodnocení jejich projektů.
Studentské technické sešity lze spravovat a hodnotitindividuálněnebo jakotým.