Μετάβαση στο κύριο περιεχόμενο
Πύλη Εκπαιδευτικών

Βρόχοι Προγραμματισμού - C++

Εικονίδιο Εργαλειοθήκης Εκπαιδευτικού Εργαλειοθήκη Εκπαιδευτικού - Περίγραμμα Δραστηριότητας

  • Αυτή η εξερεύνηση θα εισαγάγει τους μαθητές στον προγραμματισμό επαναλαμβανόμενων συμπεριφορών χρησιμοποιώντας επαναλαμβανόμενους ή αέναους βρόχους.

  • Η εκμάθηση προγραμματισμού χρησιμοποιώντας επαναλαμβανόμενους και αέναους βρόχους επιτρέπει στους μαθητές να εξοικονομούν χρόνο κατά την κατασκευή ενός έργου που χρησιμοποιεί τις ίδιες επαναλαμβανόμενες ενέργειες. Για περισσότερες πληροφορίες σχετικά με τις οδηγίες που χρησιμοποιούνται σε ένα έργο κειμένου, επισκεφθείτε τις πληροφορίεςβοήθεια.

Το Clawbot V5 είναι έτοιμο για δράση!

Αυτή η εξερεύνηση θα σας δώσει τα εργαλεία για να ξεκινήσετε να δημιουργείτε μερικά ενδιαφέροντα έργα που χρησιμοποιούν βρόχους.

  • Οδηγίες VEXcode V5 που θα χρησιμοποιηθούν σε αυτήν την εξερεύνηση:

    • Σύστημα μετάδοσης κίνησης.κίνησηΓια(εμπρός, 300, mm);

    • Σύστημα μετάδοσης κίνησης.στροφήΠρος(δεξιά, 90, μοίρες);

    • ClawMotor.spinFor(αντίστροφη, 70, μοίρες);

    • ArmMotor.spinFor(προς τα εμπρός, 360, μοίρες);

    • ενώ (αληθές) {}

    • επανάληψη (4) {}

    • αναμονή(5, δευτερόλεπτα);

Για να αποκτήσετε πρόσβαση σε πρόσθετες πληροφορίες, κάντε δεξί κλικ στο όνομα μιας εντολής στον χώρο εργασίας σας για να δείτεβοήθειαγια αυτήν την εντολή.

Εικονίδιο Συμβουλών Δασκάλου Συμβουλές για τους Δασκάλους

Αν αυτή είναι η πρώτη που ο μαθητής χρησιμοποιεί τον κώδικα VEX V5, μπορεί να διαβάσει μια ποικιλία άρθρων στη βιβλιοθήκη.

Βεβαιωθείτε ότι έχετε κατεβάσει και είναι έτοιμο το απαραίτητο υλικό, το σημειωματάριο μηχανικής σας και το VEXcode V5.

Απαιτούμενα υλικά:
Ποσότητα Απαιτούμενα υλικά
1

Κιτ εκκίνησης για την τάξη VEX V5 (με ενημερωμένο υλικολογισμικό)

1

VEXcode V5 (τελευταία έκδοση, Windows, macOS)

1

Σημειωματάριο Μηχανικής

1

Παράδειγμα έργου για το πρότυπο Clawbot (σύστημα μετάδοσης κίνησης 2 κινητήρων, χωρίς γυροσκόπιο)

Βήμα 1: Ας ξεκινήσουμε τον προγραμματισμό με βρόχους

  • Πριν ξεκινήσετε το έργο σας, επιλέξτε το σωστό πρότυπο έργου. Το παράδειγμα έργου Clawbot Template (Drivetrain 2-motor, No Gyro) περιέχει τη διαμόρφωση του κινητήρα του Clawbot. Εάν το πρότυπο δεν χρησιμοποιηθεί, το ρομπότ σας δεν θα εκτελέσει σωστά το έργο.

    Εικόνα που δείχνει το μενού Αρχείο ανοιχτό στο VEXcode V5 που δείχνει την επιλογή Άνοιγμα Παραδειγμάτων

     

  • ΕπιλέξτεΑρχείοκαιΆνοιγμα παραδειγμάτων.
  • Κάντε κύλιση στα διάφορα έργαΠαράδειγμα. Αυτά τα έργα επιδεικνύουν μια ποικιλία ενεργειών που μπορεί να εκτελέσει το Clawbot σας. Επιλέξτε και ανοίξτε το παράδειγμα έργουClawbot Template (Drivetrain 2-motor, No Gyro).

     

  • Ονομάστε το έργο RepeatingActions.

    Εικόνα που δείχνει το όνομα του έργου Repeating Actions στο VEXcode V5

  • Πληκτρολογήστε τον ακόλουθο κώδικα:

    int main() {
      // Αρχικοποίηση διαμόρφωσης ρομπότ. ΜΗΝ ΤΟ ΑΦΑΙΡΕΙΤΕ!
      vexcodeInit();
    
      // Οδηγεί προς τα εμπρός και περιστρέφεται κατά 90 μοίρες για 4 επαναλήψεις 
      repeat(4){
        Drivetrain.driveFor(forward, 300, mm);
        Drivetrain.turnFor(right, 90, degrees);
        wait(5, seconds);
    
      }
    }

Ελέγξτε το έργο και, στη συνέχεια, κάντε τα εξής στο σημειωματάριο μηχανικής σας.

  1. Προβλέψτε τι θα κάνει το Clawbot στο πλαίσιο του έργου. Εξηγήστε περισσότερα από το γεγονός ότι το έργο επαναλαμβάνεται.

    Τι επαναλαμβάνει; Τι κάνει το Clawbot;

  2. Γράψτε την πρόβλεψή σας, αλλά μην χωρίσετε το σύντομο έργο σε περισσότερα από δύο μέρη.

Εικονίδιο Εργαλειοθήκης Εκπαιδευτικού Εργαλειοθήκη Δασκάλου - Απαντήσεις

  1. Αυτό το έργο θα έχει ως εξής: το ρομπότ να κινηθεί προς τα εμπρός για 300 χιλιοστά, να στρίψει δεξιά κατά 90 μοίρες και στη συνέχεια να περιμένει 5 δευτερόλεπτα 4 φορές για να ολοκληρώσει ένα τετράγωνο. Αντί να χρησιμοποιηθούν οι ίδιες 3 εντολές 4 φορές, η εντολή επανάληψης μειώνει τον αριθμό αυτό σε μόλις 1 φορά. Η εντολή επανάληψης επαναλαμβάνει τις ενέργειες της κίνησης προς τα εμπρός και στη συνέχεια της στροφής.

  2. Η πρόβλεψη θα μπορούσε απλώς να είναι «Το Clawbot κινείται σε τετράγωνο». Αυτός θα ήταν ένας συνοπτικός τρόπος για να αποτυπωθούν οι επαναλαμβανόμενες κινήσεις του Clawbot χωρίς να υπάρχει κανένα πλαίσιο.

Τα τετράδια μηχανικής των μαθητών μπορούν να διατηρούνται και να βαθμολογούνταιατομικάή ως ομάδα. Οι προηγούμενοι σύνδεσμοι παρέχουν διαφορετική ρουμπρίκα για κάθε προσέγγιση. Κάθε φορά που μια ρουμπρίκα περιλαμβάνεται στον εκπαιδευτικό σχεδιασμό, είναι καλή πρακτική να εξηγείται η ρουμπρίκα ή τουλάχιστον να δίνονται αντίγραφα στους μαθητές πριν από την έναρξη της δραστηριότητας.

  • Αποθηκεύστε, κατεβάστε και εκτελέστετο έργο Επαναλαμβανόμενες Ενέργειες.

    Εικόνα του ονόματος του έργου Επαναλαμβανόμενες Ενέργειες στη Γραμμή Εργαλείων στο VEXcode V5

  • Ελέγξτε τις εξηγήσεις του έργου στο σημειωματάριο μηχανικής σας και προσθέστε σημειώσεις για να τις διορθώσετε όπως απαιτείται.

Βήμα 2: Εκτελέστε το έργο και παρατηρήστε το ρομπότ

Μια σύγκριση δύο αποσπασμάτων κώδικα C++ στο VEXcode. Το αριστερό τμήμα χρησιμοποιεί είσοδο αισθητήρα για να καθορίσει πότε να στρίψει, με έναν βρόχο while που ελέγχει αν είναι πατημένος ο διακόπτης του προφυλακτήρα. Αν πατηθεί, το ρομπότ στρίβει δεξιά 90 μοίρες, διαφορετικά, κινείται προς τα εμπρός. Το δεξιό τμήμα χρησιμοποιεί μια σταθερή απόσταση για να καθορίσει πότε να στρίψει, με έναν επαναλαμβανόμενο βρόχο που οδηγεί το ρομπότ προς τα εμπρός για 300 mm, στρίβει δεξιά για 90 μοίρες και περιμένει για 5 δευτερόλεπτα, επαναλαμβάνοντας αυτήν την ακολουθία τέσσερις φορές.

Δείτε ξανά το έργο Επαναλαμβανόμενες Ενέργειες (στα δεξιά). Αυτό το έργο θα επαναλάβει τη συμπεριφορά προς τα εμπρός και στη συνέχεια στροφής τέσσερις φορές. Μια δομή βρόχου "επανάληψης" χρησιμοποιείται όταν θέλετε να χρησιμοποιήσετε ένα σύνολο συμπεριφορών έναν ορισμένο αριθμό φορών.

Εάν η δομή επανάληψης αντικατασταθεί με μια δομή βρόχου "while", το ρομπότ θα επαναλάβει τις συμπεριφορές προς τα εμπρός και στη συνέχεια θα μετατρέψει τις συμπεριφορές σε "while" εάν η συνθήκη είναι αληθής. Μπορείτε επίσης να ορίσετε τη συνθήκη σε "true" για να συνεχιστεί ο βρόχος "while" για πάντα.

Στο έργο στα αριστερά, η είσοδος ενός αισθητήρα χρησιμοποιείται για να προσδιοριστεί πότε θα ξεκινήσει η περιστροφή. Το έργο στα δεξιά χρησιμοποιεί μια σταθερή απόσταση συστήματος μετάδοσης κίνησης για να καθορίσει πότε θα ξεκινήσει η στροφή.

Προκειμένου να ελέγχεται συνεχώς η είσοδος ενός αισθητήρα, χρησιμοποιείται μια πρόταση "if/else" μαζί με έναν βρόχο "while". Στο έργο στα αριστερά, το ρομπότ θα στρίψει δεξιά όταν πατηθεί ο αισθητήρας "BumperB", διαφορετικά το ρομπότ θα κινείται προς τα εμπρός για πάντα εάν δεν πατηθεί ο αισθητήρας "BumperB". Για να ελέγχεται συνεχώς η τιμή του αισθητήρα BumperB, η εντολή "if" βρίσκεται μέσα σε έναν βρόχο "while true".

Το παραπάνω έργο στα αριστερά είναι μια πρακτική περίπτωση χρήσης μιας δομής που επαναλαμβάνεται επ' αόριστον - χρησιμοποιώντας βρόχους while και εντολές if μαζί. Φανταστείτε ένα αυτόνομο σάρωθρο που συνεχίζει να κινείται προς τα εμπρός μέχρι να χτυπήσει σε έναν τοίχο ή ένα αντικείμενο και στη συνέχεια στρίβει πριν συνεχίσει να κινείται.

Εικονίδιο "Επεκτείνετε τη Μάθησή σας" Επεκτείνετε τη Μάθησή σας

Για να διερευνήσετε περαιτέρω τον τρόπο χρήσης βρόχων με υποθετικές εκφράσεις, ζητήστε από τους μαθητές να δημιουργήσουν ένα έργο Floor Sweeper στο VEXcode V5.

  • Ξεκινήστε ζητώντας από τους μαθητέςνα τοποθετήσουν και να καλωδιώσουν τους διακόπτες του προφυλακτήρα.
  • Ζητήστε από τους μαθητές να ανοίξουν το παράδειγμα έργουClawbot Template (Drivetrain 2-motor, No Gyro).

     

  • Ζητήστε από τους μαθητές να ονομάσουν το έργο «Σκούπα Δαπέδου».

  • Ζητήστε από τους μαθητές να κατασκευάσουν το ακόλουθο έργο.

    // Συμπερίληψη της Βιβλιοθήκης V5
    #include "vex.h"
      
    // Επιτρέπει την ευκολότερη χρήση της Βιβλιοθήκης VEX
    χρησιμοποιώντας τον χώρο ονομάτων vex;
    
    // Η συνάρτηση pickRandom επιστρέφει έναν τυχαίο ακέραιο μεταξύ των τιμών min και
    // max που περνούν ως παράμετροι.
    int pickRandom(int min, int max) {
      return min + rand() / (RAND_MAX / (max - min + 1));
    }
    
    int main() {
      // Αρχικοποίηση διαμόρφωσης ρομπότ. ΜΗΝ ΤΟ ΑΦΑΙΡΕΙΤΕ!
      vexcodeInit();
    
      // Αρχικοποίηση της γεννήτριας τυχαίων αριθμών.
      srand(randomSeed);
    
      ενώ (αληθές) {
        ενώ (!BumperB.pressing()) {
          Drivetrain.drive(forward);
          wait(5, msec);
        }
        Drivetrain.stop();
        Drivetrain.turnFor((90 + pickRandom(0, 90)), μοίρες);
        wait(5, msec);
      }
    }

Αν οι μαθητές χρειάζονται βοήθεια με οποιαδήποτε από τις οδηγίες, παραπέμψτε τους στις πληροφορίεςΒοήθεια

Ζητήστε από τους μαθητέςνα κατεβάσουν και να εκτελέσουν το έργογια να παρατηρήσουν πώς κινείται το ρομπότ. Στη συνέχεια, ξεκινήστε μια συζήτηση στην τάξη και ζητήστε από τους μαθητές να εξηγήσουν γιατί χρησιμοποιήθηκε η δομή «για πάντα» αντί για μια δομή «επανάληψης».

Οι μαθητές θα πρέπει να σημειώσουν ότι χρησιμοποιείται μια δομή «για πάντα» επειδή αυτό το έργο ελέγχει συνεχώς αν πατιέται ο διακόπτης προφυλακτήρα.

Βήμα 3: Η Πρόκληση των Τετράγωνων Βρόχων!

Ένα διάγραμμα που δείχνει μια πράσινη τετράγωνη διαδρομή με βέλη που υποδεικνύουν την κατεύθυνση κίνησης γύρω από το τετράγωνο. Επιπλέον πορτοκαλί βέλη έξω από το τετράγωνο δείχνουν προς διαφορετικές κατευθύνσεις, που αντιστοιχούν στις στροφές και τις κινήσεις που απαιτούνται για να ακολουθηθεί η διαδρομή.

  • Βάλτε το Clawbot σας να οδηγήσει σε ένα τετράγωνο.
  • Πριν από κάθε στροφή, το νύχι πρέπει να ανοίγει και να κλείνει και ο βραχίονας πρέπει να ανεβαίνει και να κατεβαίνει.
  • Το Clawbot δεν μπορεί να οδηγήσει κατά μήκος μιας πλευράς του τετραγώνου περισσότερες από μία φορές.
  • Μπορείτε να χρησιμοποιήσετε το έργο RepeatingActions από παραπάνω ως σημείο εκκίνησης, αλλά αποθηκεύστε το ωςSquaredLoopsπριν κάνετε οποιεσδήποτε αλλαγές.

Εικόνα του ονόματος του έργου Squared Loops στη Γραμμή Εργαλείων VEXcode V5

Στο σημειωματάριο μηχανικής σας, σχεδιάστε τα εξής:

  • Σχεδιάστε τη λύση σας και προβλέψτε τι θα κάνει το Clawbot για κάθε εντολή στο έργο σας.
  • Κατεβάστε και εκτελέστετο έργο σας για να το δοκιμάσετε πριν το υποβάλετε.
  • Κάντε αλλαγές στο έργο όπως απαιτείται και κρατήστε σημειώσεις σχετικά με τις αλλαγές κατά τη διάρκεια των δοκιμών.

Εικονίδιο Εργαλειοθήκης Εκπαιδευτικού Εργαλειοθήκη Δασκάλου - Λύση

Η ακόλουθη είναι μια πιθανή λύση για την Πρόκληση των Τετραγώνων των Βρόχων:

int main() {
  // Αρχικοποίηση διαμόρφωσης ρομπότ. ΜΗΝ ΤΟ ΑΦΑΙΡΕΙΤΕ!
  vexcodeInit();

  repeat(4){
    Drivetrain.driveFor(εμπρός, 300, mm);
    ClawMotor.spinFor(όπισθεν, 70, μοίρες);
    ArmMotor.spinFor(εμπρός, 360, μοίρες);
    ClawMotor.spinFor(εμπρός, 70, μοίρες);
    ArmMotor.spinFor(όπισθεν, 360, μοίρες);
    Drivetrain.turnFor(δεξιά, 90, μοίρες);
    wait(5, msec);
  }
}

Μπορείτε να παρέχετε στους μαθητές μια ρουμπρίκα προγραμματισμούγια τη βαθμολόγηση των έργων τους.
Τα σημειωματάρια μηχανικής των μαθητών μπορούν να διατηρούνται και
ή ως ομάδα.