Programmeerlussen - C++
Activiteitenoverzicht
de Toolbox voor leerkrachten
-
In dit onderzoek maken leerlingen kennis met het programmeren van repetitieve gedragingen door gebruik te maken van herhaal- of eeuwigdurende lussen.
-
Door te leren programmeren met behulp van herhalende en eeuwigdurende lussen, kunnen leerlingen tijd besparen bij het bouwen van een project waarin steeds dezelfde acties worden herhaald. Voor meer informatie over de instructies die in een tekstproject worden gebruikt, gaat u naar dehelpinformatie.
De Clawbot V5 is klaar voor gebruik!
Deze verkenning geeft je de tools om te beginnen met het maken van een aantal coole projecten die loops gebruiken.
-
VEXcode V5-instructies die in deze verkenning zullen worden gebruikt:
-
Drivetrain.driveFor(vooruit, 300, mm);
-
Drivetrain.turnFor(rechts, 90, graden);
-
ClawMotor.spinFor(achteruit, 70, graden);
-
ArmMotor.spinFor(vooruit, 360, graden);
-
while (true) {}
-
repeat (4) {}
-
wacht(5, seconden);
-
Voor toegang tot aanvullende informatie klikt u met de rechtermuisknop op de naam van een opdracht in uw werkruimte. Er wordt danhelpvoor die opdracht weergegeven.
Tips voor leraren
Als dit de eerste keer is dat de student VEXcode V5 gebruikt, kan hij/zij diverse artikelen lezen in de-bibliotheek.

Tips voor docenten
-
Automatisch aanvullen gebruiken
Autocomplete is een functie in VEXcode V5 die de rest van de opdracht die u typt voorspelt. Terwijl studenten met VEXcode V5 werken, moedig je ze aan om de functie Automatisch aanvullen te gebruiken als hulp bij desyntaxis.

In het artikelAutocomplete - Tutorialswordt uitgelegd hoe u de functie Autocomplete gebruikt. Bekijk de instructievideo's in VEXcode V5 voor meer informatie.

Selecteer de zelfstudie Automatisch aanvullen.
Zorg ervoor dat u de benodigde hardware, uw technische notebook en VEXcode V5 hebt gedownload en gereed hebt.
| Aantal | Benodigde materialen |
|---|---|
| 1 |
VEX V5 Classroom Starter Kit (met up-to-date firmware) |
| 1 |
VEXcode V5 (nieuwste versie, Windows, macOS) |
| 1 |
Technisch notitieboekje |
| 1 |
Voorbeeldproject Clawbot Template (Drivetrain 2-motor, No Gyro) |
Stap 1: Laten we beginnen met programmeren met lussen
-
Voordat u aan uw project begint, selecteert u het juiste sjabloonproject. Het voorbeeldproject Clawbot Template (Drivetrain 2-motor, No Gyro) bevat de motorconfiguratie van de Clawbot. Als de sjabloon niet wordt gebruikt, zal uw robot het project niet correct uitvoeren.

- SelecteerBestandenOpen Voorbeelden.
-
Blader door de verschillendeVoorbeeldprojecten. Deze projecten laten een verscheidenheid aan acties zien die je Clawbot kan uitvoeren. Selecteer en open het voorbeeldprojectClawbot Template (Drivetrain 2-motor, No Gyro).

-
Geef het project een naam HerhalendeActies.
-
Typ de volgende code:
int main() { //Robotconfiguratie initialiseren. NIET VERWIJDEREN! vexcodeInit(); // Rijdt vooruit en draait 90 graden gedurende 4 iteraties herhaal(4){ Drivetrain.driveFor (vooruit, 300, mm); Drivetrain.turnFor (rechts, 90, graden); wacht(5, seconden); } }
Bekijk het project en doe dan het volgende in je technische notitieblok.
-
Voorspel wat het project de Clawbot zal laten doen. Leg meer uit dan dat het project zich herhaalt.
Wat herhaalt het? Wat doet de Clawbot?
- Schrijf je voorspelling, maar breek het korte project niet op in meer dan twee delen.
Toolbox voor leraren
-
antwoorden
-
Bij dit project moet de robot 300 millimeter vooruit rijden, 90 graden naar rechts draaien en vervolgens 4 keer 5 seconden wachten om een vierkant af te maken. In plaats van dezelfde 3 instructies 4 keer te gebruiken, beperkt de herhaalinstructie dit tot slechts 1 keer. Met de herhaalinstructie worden de handelingen van vooruit rijden en vervolgens draaien herhaald.
-
De voorspelling zou simpelweg kunnen zijn: "De Clawbot beweegt in een vierkant." Dit zou een bondige manier zijn om de herhaalde bewegingen van de Clawbot vast te leggen, zonder enige context.
Studenten kunnen hun technische notitieboekjes bijhouden en individueel of als team,ofscoren. De voorgaande links bieden een andere rubriek voor elke aanpak. Wanneer een rubriek wordt opgenomen in de onderwijsplanning, is het een goed idee om de rubriek uit te leggen of in ieder geval kopieën aan de studenten te geven voordat de activiteit begint.
-
Sla het project Herhalende acties op, download het en voer het.
- Controleer uw uitleg van het project in uw technische notitieblok en voeg notities toe om ze indien nodig te corrigeren.
Stap 2: Voer het project uit en observeer de robot

Kijk opnieuw naar het project Herhalende acties (aan de rechterkant). Dit project zal het voorwaartse en vervolgens het gedrag vier keer herhalen. Een "repeat"-lusstructuur wordt gebruikt als u een reeks gedragingen een bepaald aantal keren wilt gebruiken.
Als de herhaalstructuur wordt vervangen door een "while"-lusstructuur, herhaalt de robot het vooruit- en vervolgens draaigedrag "terwijl" aan de voorwaarde wordt voldaan. U kunt de voorwaarde ook op "true" zetten, zodat de "while"-lus oneindig doorgaat.
In het project aan de linkerkant wordt de invoer van een sensor gebruikt om te bepalen wanneer er moet worden begonnen met draaien. Het project aan de rechterkant gebruikt een vaste aandrijflijn-afstand om te bepalen wanneer er moet worden begonnen met draaien.
Om de invoer van een sensor voortdurend te controleren, wordt een "if/else"-instructie gebruikt in combinatie met een "while"-lus. In het project aan de linkerkant draait de robot naar rechts wanneer de "BumperB" -sensor wordt ingedrukt, anders rijdt de robot voor altijd vooruit als de "BumperB" -sensor niet wordt ingedrukt. Om de waarde van de BumperB-sensor voortdurend te controleren, bevindt de "if"-instructie zich in een "while true"-lus.
Het bovenstaande project aan de linkerkant is een praktisch gebruiksvoorbeeld van een structuur die voor altijd wordt herhaald, waarbij while-lussen en if-instructies samen worden gebruikt. Stel je een zelfrijdende veegmachine voor die vooruit blijft rijden totdat hij tegen een muur of voorwerp aanloopt en vervolgens draait voordat hij verder rijdt.
Breid uw leerproces uit
Om verder te onderzoeken hoe lussen met voorwaarden gebruikt kunnen worden, kunnen de leerlingen een Floor Sweeper-project bouwen in VEXcode V5.
- Laat de studentenbumperschakelaars monteren en bedraden.
-
Vraag de leerlingen om het voorbeeldprojectClawbot Template (Aandrijflijn 2 motoren, geen gyro)te openen.

-
Laat de leerlingen het project 'Vloerveger' noemen.
-
Vraag de leerlingen om het volgende project te bouwen.
// Neem de V5-bibliotheek #include "vex.h" // Maakt eenvoudiger gebruik van de VEX-bibliotheek mogelijk met behulp van de naamruimte vex; // De functie pickRandom retourneert een willekeurig geheel getal tussen de minimale en waarden // die als parameters zijn doorgegeven. int pickRandom(int min, int max) { return min + rand() / (RAND_MAX / (max - min + 1)); } int main() { // Robotconfiguratie initialiseren. NIET VERWIJDEREN! vexcodeInit(); // Initialiseer de willekeurige getallengenerator. srand(randomSeed); while (true) { while (!BumperB.pressing()) { Drivetrain.drive(forward); wait(5, msec); } Drivetrain.stop(); Drivetrain.turnFor((90 + pickRandom(0, 90)), graden); wait(5, msec); } }
Als de studenten hulp nodig hebben met een van de instructies, verwijs ze dan naar deHelpinformatie.
Vraag de studenten omhet project te downloaden en uit te voerenom te observeren hoe de robot beweegt. Begin vervolgens een discussie in de klas en vraag de studenten uit te leggen waarom er voor de forever-structuur is gekozen in plaats van de repeat-structuur.
De studenten moeten opmerken dat er voor de forever-structuur is gekozen omdat in dit project voortdurend wordt gecontroleerd of de bumperschakelaar is ingedrukt.
Stap 3: De Squared Loops Challenge!

- Laat je Clawbot in een vierkant rijden.
- Vóór elke bocht moet de klauw worden geopend en gesloten en moet de arm worden opgeheven en neergelaten.
- De Clawbot kan niet meer dan één keer langs een kant van het plein rijden.
- U kunt het bovenstaande project RepeatingActions als uitgangspunt gebruiken, maar sla het op alsSquaredLoopsvoordat u wijzigingen aanbrengt.
Plan het volgende in uw technische notitieblok:
- Plan uw oplossing en voorspel wat elke instructie in uw project de Clawbot zal laten doen.
- Download en voeruw project uit om het te testen voordat u het indient.
- Breng indien nodig wijzigingen aan in het project en maak aantekeningen over wat er tijdens het testen is gewijzigd.
Teacher Toolbox
-
Oplossing
Hieronder vindt u een mogelijke oplossing voor de Squared Loops Challenge:
int main() {
// Robotconfiguratie initialiseren. NIET VERWIJDEREN!
vexcodeInit();
repeat(4){
Drivetrain.driveFor(vooruit, 300, mm);
ClawMotor.spinFor(achteruit, 70, graden);
ArmMotor.spinFor(vooruit, 360, graden);
ClawMotor.spinFor(vooruit, 70, graden);
ArmMotor.spinFor(achteruit, 360, graden);
Drivetrain.turnFor(rechts, 90, graden);
wait(5, msec);
}
}U kunt studenten eengeven voor het beoordelen van hun projecten met een programmeerrubriek
Studenten kunnen hun technische notitieboekjes bijhouden en beoordelen metindividueelof als team.