Skip to main content
Completion requirements

Βρόγχοι στο EdScratch

Στην παρούσα ενότητα θα ασχοληθούμε με τους Βρόγχους

Εικόνα του repeat

Στην ενότητα του EdBlocks αναφερθήκαμε στις δομές επανάληψης

ΚΑΤΗΓΟΡΙΕΣ ΕΠΑΝΑΛΗΠΤΙΚΗΣ ΔΟΜΗΣ

Η επανάληψη μπορεί να γίνεται:

  • ορισμένες φορές
    Θα διαβάσω αυτό το κείμενο τρεις (3) φορές.
    Το ρομπότ στρίβει δεξιά 90 μοίρες 4 φορές.
  • για πάντα
    Ο ήλιος ανατέλλει πάντα από την ανατολή.
    Το ρομπότ κινείται για πάντα προς τα μπροστά.
  • όσο διαρκεί μια συνθήκη
    Όσο είναι ημέρα, σε όποιον συναντώ θα λέω "ΚΑΛΗΜΕΡΑ".
    Όσο το ρομπότ βρίσκεται σε μαύρη γραμμή θα κινείται επάνω της.
  • μέχρι ότου εκπληρωθεί μια συνθήκη (γίνει αληθής, ισχύσει)
    Μέχρι να γίνει νύχτα, σε όποιον συναντώ θα λέω "ΚΑΛΗΜΕΡΑ".
    Μέχρι το ρομπότ συναντήσει ένα εμπόδιο θα κινείται προς τα μπροστά.

Στο προγραμματιστικό περιβάλλον του EdScratch υπάρχει μια οριστική και μια αέναη εντολή επανάληψης. Θα τις βρείτε στο μενού control ακριβώς μετά την εντολή wait που έχουμε ήδη χρησιμοποιήσει. 

Εντολές repeat και forever


Εντολές Επανάληψης

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

Ας γράψουμε ένα πρόγραμμα για το Edison χρησιμοποιώντας το EdScratch έτσι ώστε το ρομπότ σας να μπορεί να οδηγήσει σε μια τετράγωνη πλατεία (σχήμα) κάνοντας δύο γύρους πανηγυρισμού.


Εύκολα κάποιος θα  μπορούσε σε πρώτο επίπεδο (αν δεν είχε κάνει όλα όσα είδαμε στο EdBlocks) να σκεφτεί με απλότητα, και να γράψει το παρακάτω πρόγραμμα στο EdScratch.

Να χρησιμοποιήσει δηλαδή τις εντολές forwards και spin για την πραγματοποίηση ενός τετραγώνου, και στη συνέχεια να διπλασιάσει τον κώδικα ώστε να επαναλάβει την τετράγωνη πλατεία.


*Προσέξτε ότι η τελευταία εντολή spin εισάγεται, ενώ το Edison έχει ήδη επιστρέψει στην αρχική του θέση, από την προηγούμενη εντολή. Αυτό που εκτελεί η εντολή spin είναι ότι περιστρέφει το Edison, ώστε να έχει και τον αρχικό του προσανατολισμό.

Αναλογιζόμενοι όμως την αντιγραφή που εκτελέσαμε, οδηγούμαστε στη χρήση της οριστικής επανάληψης από το μενού control:


ώστε να δημιουργήσουμε την ίδια απόκριση από το Edison.

Έτσι δημιουργούμε το πρόγραμμα 


*Προσέξτε την αλλαγή τιμής στο repeat

Και έτσι δημιουργήσαμε ένα συντομότερο κώδικα (Λιγότερες εντολές) για την ίδια λειτουργία.

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

Θα μπορούσε βέβαια κάποιος να παρατηρήσει ότι για τη δημιουργία ενός τετραγώνου, επαναλαμβάνεται ένα Γ και να δημιουργήσει ένα συντομότερο πρόγραμμα:


* Φυσικά με την αναγκαία αλλαγή στην τιμή του repeat.

Εδώ, το Edison διαγράφει 4 Γ σχηματίζοντας 2 τετράγωνα.

Και τέλος αυτό που εύκολα πλέον όλοι μπορούμε να καταλάβουμε είναι ότι το πραγματικό μοτίβο που επαναλαμβάνεται είναι το ( Μπροστά - Δεξιά περιστροφή ) 4 φορές για ένα τετράγωνο, 8 φορές για δύο.

 

Κοιτάξτε τη διαφορά στον κώδικα του αρχικού και τελικού προγράμματος στο EdScratch. Μπορούμε όμως και να τη μετρήσουμε.

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


Ανάλογη η διαφορά, 8 φορές μεγαλύτερος ο αναλυτικός κώδικας. 

Σε αυτό το σημείο του σεμιναρίου θα πρέπει όλοι μας να αισθανόμαστε άνετα και με την εντολή :


Δεν είναι κάτι περισσότερο από τη repeat παρά μόνο το ότι θα εκτελείται για απεριόριστες επαναλήψεις. 

Ίσως, να μας προβληματίζει η έννοια "απεριόριστες", ίσως και όχι μιας και την έχουμε συναντήσει και στο EdBlocks αλλά θα συναντήσουμε ενδιαφέρουσες εφαρμογές της.



Last modified: Monday, 7 February 2022, 2:33 AM