Μετάβαση στο κύριο περιεχόμενο

Μάθημα 1: Τι είναι ένας αλγόριθμος;

Σε αυτό το μάθημα, θα μάθετε τι είναι ένας αλγόριθμος και πώς η χρήση αλγορίθμων στο VEXcode VR Python σάς επιτρέπει να δημιουργείτε έργα με πιο ποικίλες συμπεριφορές. Τα αλγοριθμικά έργα δίνουν εντολή στο ρομπότ εικονικής πραγματικότητας να ανταποκριθεί στο περιβάλλον του, κάτι που θα είναι απαραίτητο για την επίλυση της πρόκλησης Dynamic Castle Crasher.

Μαθησιακά Αποτελέσματα

  • Να αναγνωρίζουν ότι οι αλγόριθμοι αποτελούνται από ακολουθία, επιλογή και επανάληψη (βρόχους).
  • Να αναγνωρίζουν ότι οι αλγόριθμοι είναι ακριβείς ακολουθίες εντολών, που υλοποιούνται με τη χρήση γλωσσών προγραμματισμού, για διαδικασίες που πρόκειται να εκτελεστούν από ένα ρομπότ εικονικής πραγματικότητας.

Αλγόριθμοι

Οι αλγόριθμοι είναι ακριβείς ακολουθίες εντολών, που υλοποιούνται χρησιμοποιώντας γλώσσες προγραμματισμού, όπως η VEXcode VR Python, για διεργασίες που πρόκειται να εκτελεστούν από ένα ρομπότ εικονικής πραγματικότητας.

Τα βασικά στοιχεία ενός αλγορίθμου είναι η ακολουθία, η επιλογή και η επανάληψη.

  • Ακολουθία - η σειρά με την οποία οι συμπεριφορές και οι εντολές συνδυάζονται σε ένα έργο προκειμένου να παραχθεί το επιθυμητό αποτέλεσμα.     
  • Επιλογή - η χρήση εντολών υπό όρους σε ένα έργο. Οι υπό όρους δηλώσεις, όπως ifή if elseεπηρεάζουν τη ροή ενός έργου.
  • Επανάληψη - οι αλγόριθμοι συχνά χρησιμοποιούν επανάληψη για να εκτελέσουν βήματα έναν ορισμένο αριθμό φορών ή μέχρι να ικανοποιηθεί μια συγκεκριμένη συνθήκη. Αυτό είναι επίσης γνωστό ως "επαναλαμβανόμενος κύκλος". Η επανάληψη μπορεί να αλλάξει τη ροή του έργου επαναλαμβάνοντας μια συμπεριφορά έναν συγκεκριμένο αριθμό φορών ή μέχρι να ικανοποιηθεί μια συνθήκη.  

Αυτό το παράδειγμα έργου από την πρόκληση της Ενότητας 8 είναι ένα παράδειγμα αλγορίθμου. Περιλαμβάνει έναν συνδυασμό βρόχων, δεδομένων αισθητήρων και εντολών που συνδυάζονται σε μια ακολουθία για την επίλυση της πρόκλησης Disk Mover.

def main():
	για τιμή στο εύρος(3):
		
		για τιμή στο εύρος(3):
			# 1. Οδήγηση σε δίσκο χρησιμοποιώντας τον αισθητήρα Down Eye
			ενώ δεν είναι ενεργοποιημένο το down_eye.near_object():
				drivetrain.drive(FORWARD)
				wait(5, MSEC)
			drivetrain.stop()
			
			# 2. Δίσκος ανύψωσης
			μαγνήτης. Ενεργοποίηση (ΕΝΙΣΧΥΣΗ)
			
			# 3. Οδηγήστε προς τον στόχο χρησιμοποιώντας τον Αισθητήρα Απόστασης
			drivetrain.turn_to_heading(180, ΜΟΙΡΕΣ)
			while front_distance.get_distance(MM) > 200:
				drivetrain.drive(FORWARD)
				wait(5, MSEC)
			drivetrain.stop()
			
			# 4. Πτώση δίσκου στο στόχο
			μαγνήτης.ενεργοποίηση(ΠΤΩΣΗ)
			σύστημα μετάδοσης κίνησης.κίνηση_για(ΑΝΤΙΠΡΟΣΘΕΤΑ, 100, MM)
			
			# 5. Γυρίστε προς τον επόμενο δίσκο
			drivetrain.turn_to_heading(0, DEGREES)
			wait(5, MSEC)
			
		# 6. Στρίψτε και οδηγήστε προς τον επόμενο στόχο
		drivetrain.turn_to_heading(90, ΜΟΙΡΕΣ)
		drivetrain.drive_for(ΜΠΡΟΣΤΑ, 800, MM)
		
		# 7. Στροφή στους δίσκους
		drivetrain.turn_to_heading(0, DEGREES)
		
	αναμονή(5, MSEC)

Αλληλουχία

Ο τρόπος με τον οποίο οι εντολές αλληλουχούνται και συνδυάζονται καθορίζει τις συμπεριφορές του ρομπότ εικονικής πραγματικότητας. Σε αυτό το παράδειγμα, κάθε σύνολο συμπεριφορών που απαιτείται για την μετακίνηση ενός δίσκου εκτελείται τρεις φορές και στη συνέχεια το VR Robot μετακινείται στο επόμενο σύνολο δίσκων και επαναλαμβάνει τις συμπεριφορές, μέχρι να επιστραφούν όλοι οι δίσκοι στους στόχους. Ένα διάγραμμα ροής που δείχνει την ακολουθία συλλογής δίσκων του ρομπότ. Στα αριστερά, ο κώδικας εμφανίζει τον κύριο βρόχο που επαναλαμβάνεται τρεις φορές. Τα κόκκινα κυκλικά βέλη στα δεξιά υποδεικνύουν συνεχείς βρόχους που εκτελούνται μέχρι να πληρούνται οι συνθήκες του αισθητήρα (όπως η εύρεση ή η σύλληψη ενός δίσκου), ενώ τα πράσινα βέλη δείχνουν τις μεταβάσεις μεταξύ της συλλογής του δίσκου, της μετακίνησής του προς τον στόχο, της απελευθέρωσής του και της επανατοποθέτησής του για τον επόμενο κύκλο.

Επιλογή

Αυτό το έργο περιλαμβάνει επίσης επιλογή η οποία καθορίζει τα μέρη του έργου που εκτελούνται με βάση τις συνθήκες του αισθητήρα. Αρχικά, ο αισθητήρας Down Eye χρησιμοποιείται για να προσδιορίσει πότε το ρομπότ εικονικής πραγματικότητας βρίσκεται κοντά σε έναν δίσκο, ώστε να μπορεί να εντοπιστεί ο δίσκος. Στη συνέχεια, ο αισθητήρας απόστασης χρησιμοποιείται για να προσδιορίσει πότε το ρομπότ εικονικής πραγματικότητας βρίσκεται πάνω από τον στόχο, ώστε να μπορεί να αποτεθεί ο δίσκος.  Το απόσπασμα κώδικα από την Ενότητα 8 περιλαμβάνει δύο επισημασμένες συνθήκες while που ελέγχουν την κίνηση του ρομπότ με βάση τις μετρήσεις των αισθητήρων. Η πρώτη επισημασμένη συνθήκη, αν και δεν είναι η down_eye.near_object(), δίνει εντολή στο ρομπότ να κινηθεί προς τα εμπρός μέχρι ο αισθητήρας Down Eye να ανιχνεύσει ένα κοντινό αντικείμενο, επιτρέποντάς του να πλησιάσει έναν δίσκο πριν σταματήσει. Η δεύτερη επισημασμένη συνθήκη, ενώ front_distance.get_distance(MM) > 200, κατευθύνει το ρομπότ να κινηθεί προς τα εμπρός μέχρι να βρεθεί σε απόσταση 200 χιλιοστών από τον στόχο, χρησιμοποιώντας τον αισθητήρα μπροστινής απόστασης για τη μέτρηση της εγγύτητας. Αυτές οι συνθήκες "while" δημιουργούν βρόχους που κάνουν το ρομπότ να σταματά μόνο όταν πληρούται κάθε συγκεκριμένη συνθήκη αισθητήρα.

Στον πρώτο βρόχοwhile, η επιλογή των εντολών που θα εκτελεστούν βασίζεται στις τιμές του αισθητήρα που αναφέρονται από τον αισθητήρα Down Eye.

  • Ενώ δεν ανιχνεύεται κανένα αντικείμενο, το ρομπότ εικονικής πραγματικότητας θα κινείται προς τα εμπρός.
  • Ενώ ανιχνεύεται ένα αντικείμενο, το ρομπότ εικονικής πραγματικότητας θα σταματήσει.

Στον δεύτερο βρόχοwhile , η επιλογή της εντολής που θα εκτελεστεί βασίζεται στις τιμές του αισθητήρα που αναφέρονται από τον αισθητήρα απόστασης.

  • Ενώ η αναφερόμενη απόσταση είναι μεγαλύτερη από 200 χιλιοστά (mm), το ρομπότ εικονικής πραγματικότητας θα κινηθεί προς τα εμπρός.
  • Ενώ η αναφερόμενη απόσταση είναι μικρότερη από 50 χιλιοστά (mm), το ρομπότ εικονικής πραγματικότητας θα σταματήσει να οδηγεί και θα προχωρήσει στο επόμενο μέρος του έργου για να ενεργοποιήσει τον ηλεκτρομαγνήτη.

Επανάληψη

Το έργο χρησιμοποιεί επανάληψη ή «βρόχους» για την επανάληψη ενεργειών και τον επανειλημμένο έλεγχο των αναφερόμενων τιμών αισθητήρων. Αυτό το έργο περιέχει ένθετους βρόχους – έναν βρόχο ώστε το ρομπότ εικονικής πραγματικότητας να μπορεί να συλλέξει και τους τρεις δίσκους του ίδιου χρώματος και έναν δεύτερο βρόχο για να επαναλάβει αυτή τη διαδικασία για να συλλέξει όλους τους δίσκους στην παιδική χαρά. Ο κώδικας χρησιμοποιεί δύο ένθετους βρόχους για τον έλεγχο της διαδικασίας συλλογής δίσκων του ρομπότ. Ο εξωτερικός βρόχος, με την ονομασία Βρόχος για τη συλλογή δίσκων κάθε χρώματος, επαναλαμβάνεται σε κάθε χρώμα δίσκου. Μέσα σε αυτό, ο εσωτερικός βρόχος, με την ετικέτα Βρόχος για τη συλλογή 3 δίσκων του ίδιου χρώματος, επαναλαμβάνεται τρεις φορές για να συλλέξει και να τοποθετήσει τρεις δίσκους του τρέχοντος χρώματος. Αυτή η ρύθμιση διασφαλίζει ότι το ρομπότ συλλέγει τρεις δίσκους από κάθε χρώμα πριν μετακινηθεί στο επόμενο χρώμα, με κάθε επανάληψη βρόχου να επικεντρώνεται στη συστηματική συλλογή και τοποθέτηση.

Αυτός ο αλγόριθμος έχει σχεδιαστεί για να συλλέγει και να επιστρέφει τρεις δίσκους, τρεις φορές, για να ολοκληρωθεί η Πρόκληση Μετακίνησης Δίσκου. Η ίδια λογική που εφαρμόζεται για τη συλλογή και μετακίνηση δίσκων επανειλημμένα χρησιμοποιώντας ακολουθία, επιλογή και επανάληψη μπορεί επίσης να εφαρμοστεί σε άλλες προκλήσεις, όπως η Πρόκληση Dynamic Castle Crasher.

Ερωτήσεις

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

Έγγραφο Google / .docx / .pdf