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

Σκεφτείτε το πρόβλημα:

Η είσοδος στο πρόγραμμα είναι ένας φυσικός αριθμός που δεν υπερβαίνει το 2 * 10 9. Προσδιορίστε το άθροισμα των ψηφίων αυτού του αριθμού.

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

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

Αντίο κύκλο

Μια τέτοια κατασκευή στη γλώσσα προγραμματισμού Kumir είναι κύκλος αντίο... Αυτός ο κύκλος, που συχνά αναφέρεται ως βρόχος προϋποθέσεων, Εχει παρακάτω μορφήεγγραφές:

  • nc μέχρι στιγμής κατάσταση
  • cycle_body

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

Ο βρόχος εκτελείται ως εξής:

  1. Η τιμή υπολογίζεται boolean έκφραση.
  2. Εάν το αποτέλεσμα του υπολογισμού είναι όχι, τότε η εκτέλεση του κύκλου τελειώνει και το Idol πηγαίνει στην πρώτη εντολή μετά το cycle bye. Εάν το αποτέλεσμα του υπολογισμού είναι ναι, τότε εκτελείται το σώμα του βρόχου, μετά το οποίο υπολογίζεται ξανά η τιμή της παράστασης με τη νέα τιμή.

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

Τώρα ας χρησιμοποιήσουμε έναν βρόχο while για να λύσουμε το πρόβλημά μας.

  • εισαγωγή αρ
  • nc ενώ num> 0
  • άθροισμα: = άθροισμα + mod (αριθμός, 10)
  • num: = div (αριθμός, 10)
  • ποσό ανάληψης

Έτσι, κατά τη διάρκεια κάθε εκτέλεσης του σώματος του βρόχου, το τελευταίο ψηφίο του αριθμού προστίθεται στην τιμή του αθροίσματος και, στη συνέχεια, ο αριθμός μειώνεται κατά 10 φορές. Προφανώς, τελικά το num θα γίνει 0, μετά το οποίο ο βρόχος θα τελειώσει.

Ο κύκλος "μέχρι τότε"

Στο Kumir, υπάρχει μια άλλη έκδοση ενός βρόχου με μια συνθήκη, που ονομάζεται μέχρι τότε βρόχος, η οποία έχει την ακόλουθη μορφή:

  • cycle_body
  • kts σε κατάσταση

Εάν στον βρόχο ενώ η συνθήκη ελέγχεται πριν από το σώμα του βρόχου, τότε στον βρόχο μέχρι τότε - μετά. Ως εκ τούτου, αυτός ο κύκλος ονομάζεται συχνά βρόχος με μετασυνθήκη... Το σώμα ενός τέτοιου βρόχου θα εκτελείται πάντα τουλάχιστον μία φορά.

Μέχρι τότε, ο κύκλος λειτουργεί ως εξής:

  1. Το σώμα του βρόχου εκτελείται
  2. Η τιμή της λογικής έκφρασης αξιολογείται. Εάν το αποτέλεσμα του υπολογισμού είναι όχι, τότε το σώμα του βρόχου αρχίζει να εκτελείται ξανά και ούτω καθεξής. Εάν το αποτέλεσμα του υπολογισμού είναι ναι, τότε ο βρόχος τελειώνει και το Idol προχωρά στην εκτέλεση της επόμενης εντολής μετά το βρόχος.

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

(Ένα απόσπασμα του κώδικα του προγράμματος)

  • εισαγωγή αρ
  • αν ο αριθμός 0
  • τότε k: = k + 1
  • kts στο num = 0
  • ροζ

Διάλεξη 4. Αριθμητικές εκφράσεις

Αριθμητικές εκφράσεις και κανόνες γραφής τους. Αλγόριθμοι ανάδρασης. Αντίο εντολή. Συνθήκες σε αλγοριθμική γλώσσα... Εάν και εντολές επιλογής. Ομάδες ελέγχου. «Οπτική» παρουσίαση εντολών. Παρέκβαση: οι κανόνες και η μορφή γραφής αριθμητικών εκφράσεων στο Fortran του XXI αιώνα.

Αριθμός εφημερίδας

Διάλεξη 1. Οι κύριοι στόχοι του μαθήματος. Μεθοδολογία για την κατασκευή ενός μαθήματος. Προβληματική προσέγγιση. Η θεωρία μαθαίνεται μέσα από την πράξη. Το σύστημα Kumir είναι μια αποτελεσματική υποστήριξη για τις παραδοσιακές έννοιες των διαδικαστικών γλωσσών προγραμματισμού και των παραδοσιακών μεθόδων εντοπισμού σφαλμάτων. Παραδείγματα χρήσης του "Kumir" σε προ-επαγγελματικά μαθήματα.

Διάλεξη 2. Πρακτική γνωριμία με το σύστημα Kumir: Performer Robot. Η έννοια του αλγορίθμου. Έλεγχος του εκτελεστή ρομπότ χρησιμοποιώντας το τηλεχειριστήριο. Γραμμικοί αλγόριθμοι. Εγγραφή αλγορίθμου. Retreat: Karel-Robot in αρχική πορείαπρογραμματισμός στο Πανεπιστήμιο του Στάνφορντ.

Διάλεξη 3. Μέθοδοι «οπτικής» καταγραφής του αλγορίθμου. Ρομπότ προγραμματισμένος έλεγχος. Κύκλος " nμια φορά". Χρήση βοηθητικών αλγορίθμων. Σύνταξη αλγορίθμων σε αλγοριθμική γλώσσα.

Εργασία εξέτασης αριθμός 1.

Διάλεξη 4. Αριθμητικές εκφράσεις και κανόνες γραφής τους. Αλγόριθμοι ανάδρασης. Αντίο εντολή. Συνθήκες σε αλγοριθμική γλώσσα. Εάν και εντολές επιλογής. Ομάδες ελέγχου. «Οπτική» παρουσίαση εντολών. Παρέκβαση: οι κανόνες και η μορφή γραφής αριθμητικών εκφράσεων στο Fortran του XXI αιώνα.

Διάλεξη 5. Τιμές στην αλγοριθμική γλώσσα. Εντολές εισαγωγής/εξόδου πληροφοριών. Εντολή ανάθεσης. Βοηθητικούς αλγόριθμους. Αλγόριθμοι με αποτελέσματα και αλγόριθμοι-συναρτήσεις. Κύκλος «για». Πίνακες τιμών... Λογικές, συμβολικές και κυριολεκτικές αξίες.

Δοκιμαστική εργασία αριθμός 2.

Διάλεξη 6. Μέθοδοι αλγοριθμισμού. Σχέσεις υποτροπής. Μέθοδος επανάληψης. Αμετάβλητος κύκλος. Αναδρομή.

Διάλεξη 7. Φυσικές βασικές αρχέςσύγχρονους υπολογιστές. Ο μικροεπεξεργαστής είναι η καρδιά του σύγχρονου υπολογιστή. Πώς να δημιουργήσετε έναν υπολογιστή.

Διάλεξη 8. Εικονικοί και πραγματικοί ερμηνευτές στο σύστημα "Kumir". Καλλιτέχνης Σχεδιαστής. Η Lego Robot είναι ένας ερμηνευτής του "Kumir" που ελέγχεται από λογισμικό. Υπερκείμενο στο σύστημα Kumir. Προετοιμασία εργασιών για μαθητές και αυτόματη επαλήθευση τους.

Τελική εργασία.

Ενώ ο μαθητής «συναρμολογεί» το πρόγραμμα στο «PiktoMir», πρακτικά δεν χρειάζεται να μάθει κάποιον νέο, ασυνήθιστο «κόσμο υπολογιστών». Φυσικά, το παιδί πρέπει να μάθει να χειρίζεται το ποντίκι για να πάρει το επιθυμητό αποτέλεσμα από τον υπολογιστή, αλλά η διεπαφή στο σύνολό της βασίζεται σε έννοιες και ενέργειες που είναι γνωστές στο παιδί, είναι «διαφανής» και δεν απαιτεί από το παιδί να συγκεντρωθεί. πάρα πολλά για την ίδια τη διαδικασία της αλληλεπίδρασης με τον υπολογιστή. Αυτή τη στιγμή, ο μαθητής συγκεντρώνει σχεδόν το 100% των προσπαθειών του (ή, καλύτερα να πούμε, «διάστημα προσοχής») στον αλγόριθμο για την επίλυση του προβλήματος. Αλλά μόλις γίνει η μετάβαση από τον γραφικό προγραμματισμό σε έναν πιο παραδοσιακό κειμενικό, ο μαθητής αρχίζει να αντιμετωπίζει έναν «διαφορετικό κόσμο», οι νόμοι του οποίου διαφέρουν από τους συνηθισμένους που έχουν ήδη μελετηθεί στο σχολείο. Αυτό αφορά κυρίως τη γραφή αριθμητικών εκφράσεων, ο μαθητής ξόδεψε δεκάδες ώρες για να κατακτήσει τις δεξιότητες χειρισμού τους στα μαθήματα μαθηματικών στο σχολείο και πέτυχε έναν ορισμένο αυτοματισμό.

Στις πρώτες εργασίες ελέγχου του Ρομπότ, ο υπολογιστής επιδεικνύει τις δυνατότητές του ως μηχανή ελέγχου και όχι ως υπολογιστική μηχανή. Αλλά τότε ένας κύκλος εμφανίζεται N φορές, και όταν λύνει ορισμένα προβλήματα, ο μαθητής μπορεί να χρειαστεί να πάρει ως N έναν αριθμό που εμφανίζεται ως αποτέλεσμα κάποιου υπολογισμού, για παράδειγμα, τον αριθμό των κελιών σε ένα πεδίο μεγέθους 9; 14. Αποδεικνύεται ότι δεν είναι καθόλου απαραίτητο να υπολογίσετε μόνοι σας τον συνολικό αριθμό των κελιών ενός τέτοιου πεδίου (στο μυαλό σας, σε χαρτί ή με μια αριθμομηχανή) και να "εισάγετε" το αποτέλεσμα στο πρόγραμμα. Αποδεικνύεται ότι ο ίδιος ο υπολογιστής θα μπορεί να κάνει όλους τους απαραίτητους υπολογισμούς μόλις του πούμε (το γράψουμε στο πρόγραμμα) τι ακριβώς πρέπει να υπολογιστεί. Δηλαδή, χονδρικά μιλώντας, για να λύσετε ένα πρόβλημα σε έναν υπολογιστή, δεν χρειάζεται τόσο να γνωρίζετε "πόσα θα είναι δύο φορές δύο", αλλά να μπορείτε να πείτε στον υπολογιστή ότι πρέπει να πάρετε το αποτέλεσμα της εκτέλεσης της λειτουργίας " δύο φορές δύο» ή την πράξη «9 φορές επί 14».

Δεν υπάρχουν προβλήματα με πρόσθεση και αφαίρεση. Σε ηχογράφηση κύκλος 3 + 3 φορέςτίποτα καινούργιο για τον μαθητή. Με την ίδια ακριβώς μορφή στα μαθήματα μαθηματικών, οι μαθητές καταγράφουν και, ελπίζουμε, υπολογίζουν διάφορα αθροίσματα και διαφορές χωρίς να χρησιμοποιούν αριθμομηχανή. Αλλά για πιο σύνθετες αριθμητικές εκφράσεις, οι κανόνες γραφής στα σχολικά μαθηματικά και στις παραδοσιακές αλγοριθμικές γλώσσες αρχίζουν να διαφέρουν κάπως.

Το γεγονός είναι ότι όταν εργαζόμαστε σε χαρτί και σε μαυροπίνακα, «σχεδιάζουμε» μαθηματικούς τύπους - ρίζες, κλάσματα, μοίρες και δείκτες - και αυτό είναι πολύ βολικό. Και στις παραδοσιακές γλώσσες προγραμματισμού, μια αριθμητική έκφραση δεν μπορεί να σχεδιαστεί, αλλά πρέπει να «κωδικοποιηθεί» πατώντας κουμπιά σε ένα πληκτρολόγιο υπολογιστή. Εξαιτίας αυτού, έχει αναπτυχθεί στον προγραμματισμό μια παράδοση απλοποιημένης, λεγόμενης «γραμμικής» σημειογραφίας τύπων, στην οποία ένας μαθητής στις αρχές του 21ου αιώνα πρέπει να συνηθίσει και να προσαρμοστεί. (Πιθανώς, μέχρι τα μέσα του αιώνα αυτό δεν θα χρειαστεί να γίνει, δείτε το πρόγραμμα κάτω δεξιά.) Έτσι, όταν εισάγουμε τους απαιτούμενους τύπους (αριθμητικές εκφράσεις) στο πρόγραμμα, θα πρέπει να χρησιμοποιήσουμε το πληκτρολόγιο του υπολογιστή και κωδικοποιούν (κρυπτογραφούν) αυτούς τους τύπους με συγκεκριμένο τρόπο. Όπως συμβαίνει με οποιοδήποτε πρόβλημα κωδικοποίησης ή κρυπτογράφησης πληροφοριών, αυτό το απλό τεχνικό πρόβλημα μπορεί να αποδειχθεί ελκυστικό για ορισμένους μαθητές (που έχουν βαρεθεί να ελέγχουν το Ρομπότ). Κατά την επίλυση αυτού του προβλήματος, αποδεικνύεται ότι υπάρχει ένα σύμβολο κουκκίδας στο πληκτρολόγιο, αλλά δεν υπάρχει σύμβολο πολλαπλασιασμού ";", Και η κουκκίδα επίσης δεν χρησιμεύει καθόλου ως σύμβολο πολλαπλασιασμού. Αποδεικνύεται επίσης ότι δεν συνηθίζεται να γράφονται αριθμητικοί τύποι της μορφής 8 (2 + 3) με το σύμβολο πολλαπλασιασμού που λείπει. Ένας υπολογιστής (ακριβέστερα, ένας μεταγλωττιστής μιας γλώσσας προγραμματισμού) θα μπορούσε να κατανοήσει τέτοιους τύπους, αλλά παραδοσιακά αρνείται να το κάνει και απαιτεί να εισαγάγει έναν αστερίσκο στον τύπο - ένα σύμβολο πολλαπλασιασμού: 8 * (2 + 3). Αλλά ο υπολογιστής, κατά κανόνα, αντιλαμβάνεται δύο διαδοχικούς αστερίσκους ως σημάδι εκθέσεως.

Συνολικά, όλες αυτές οι μικρές λεπτομέρειες αποτελούν το εμπόδιο που πρέπει να ξεπεράσει ο μαθητής. Αυτό είναι συνήθως απλό.

Τα παιδιά, κατά κανόνα, δεν κάνουν λάθη, με εξαίρεση ένα ευρέως διαδεδομένο: κλάσματα της μορφής

και γράφονται ως 3 + 5/2 και 3 * 5/2 χωρίς αγκύλες, αντί για τη σωστή σημειογραφία (3 + 5) / 2 και (3 * 5) / 2.

Κανόνες για τη γραφή αριθμητικών εκφράσεων στο Fortran του XXI αιώνα

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

Στον 21ο αιώνα, η κατάσταση άρχισε να αλλάζει. Με εντολή του αμερικανικού στρατού, οι ειδικοί της SUN ανέπτυξαν τη γλώσσα Fortress, η οποία αρχικά προοριζόταν να χρησιμοποιεί γενικά αποδεκτή μαθηματική σημειογραφία σε κείμενα προγραμμάτων. Επί επί του παρόντοςμόνο τα πρώτα βήματα έχουν γίνει προς αυτή την κατεύθυνση, αλλά στη γλώσσα του Φρουρίου είναι ήδη δυνατή η χρήση: Ελληνικά γράμματα:

εκθέτες/δείκτες και κλάσματα:

τύποι με παραλειπόμενα πρόσημα πολλαπλασιασμού:

τύπους στους οποίους τα ορίσματα των στοιχειωδών συναρτήσεων δεν περικλείονται σε παρένθεση:

ρυθμίστε τα σημάδια λειτουργίας

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

Αλγόριθμοι ανάδρασης. Αντίο εντολή

Μέχρι τώρα, έχουμε δουλέψει με το Robot στο στυλ των γραφικών Turtle στο LOGO, δηλαδή, με εντολή χωρίς καμία ανάδραση. Επομένως, αυτό που κάναμε (από μεθοδολογική άποψη) θα μπορούσε να γίνει με την ίδια επιτυχία, για παράδειγμα, στο ίδιο LOGO. Οι βοηθητικοί αλγόριθμοι (με ή χωρίς ορίσματα) μπορούν να μάθουν χρησιμοποιώντας είτε το Ρομπότ είτε τη Χελώνα.

Στην αρχή, κατά τη σύνταξη προγραμμάτων για το Robot (ή για το Vertun), κατά κανόνα, είχαμε εκ των προτέρων ολοκληρωμένες πληροφορίες για την κατάσταση του ρομπότ. Όμως το Robot (και το Vertun), από μεθοδολογικής άποψης, είναι πολύ πιο πλούσιο από το Turtle, αφού έχει εντολές ανάδρασης. Και, χρησιμοποιώντας αυτές τις εντολές, ένας Άνθρωπος μπορεί να λάβει γρήγορα πληροφορίες σχετικά με την κατάσταση γύρω από ένα ρομπότ απομακρυσμένο από αυτόν και ένας υπολογιστής μπορεί να λάβει γρήγορα πληροφορίες κατά την εκτέλεση ενός προγράμματος. Για παράδειγμα, εκτελώντας την εντολή "ελεύθερα προς τα αριστερά", ανεξάρτητα από ποιον προέρχεται, το ρομπότ επικοινωνεί ένα τμήμα πληροφοριών σχετικά με την κατάσταση στην οποία βρίσκεται αυτή τη στιγμή. Μια άλλη πληροφορία μπορείτε να λάβετε ρωτώντας το ρομπότ εάν το κελί όπου βρίσκεται είναι βαμμένο.

Όταν χρησιμοποιείτε το τηλεχειριστήριο που φαίνεται παραπάνω, το άτομο διαβάζει τις απαντήσεις του ρομπότ από τον πίνακα σε μορφή κειμένου. Ένα φθηνότερο τηλεχειριστήριο θα μπορούσε να μιμηθεί την απόκριση του ρομπότ ανάβοντας μια λάμπα (LED). Όταν το ρομπότ ελέγχεται από υπολογιστή, η απόκριση του ρομπότ μετατρέπεται σε επίπεδα ηλεκτρικού σήματος. Αλλά η ουσία της διαδικασίας είναι η ίδια: όταν εκτελείται η εντολή ανάδρασης, οι πληροφορίες όχι μόνο πηγαίνουν στο Ρομπότ, αλλά μεταδίδονται και προς την αντίθετη κατεύθυνση, από το Ρομπότ στον υπολογιστή ή στον Άνθρωπο. Εξ ου και ο όρος ανατροφοδότηση. Θεωρητικά, ήταν δυνατό να γίνει με μία μόνο εντολή ερώτησης από κάθε ζευγάρι του τύπου: Ελεύθερο Δεξί - Τοίχο Δεξιά. Ωστόσο, αυτό θα περιέπλεκε τη σύνταξη του αλγορίθμου, καθώς θα απαιτούσε την εισαγωγή της άρνησης, η οποία σε πρώιμο στάδιο εκπαίδευσης είναι μεθοδολογικά αδικαιολόγητη, περιπλέκοντας τους κανόνες για τη σύνταξη και την εκτέλεση προγραμμάτων. Αντί για τη φυσική σημειογραφία «πάνω από τον τοίχο», θα έπρεπε να γράψει κάτι σαν «πάνω δεν είναι δωρεάν», που υποδηλώνει ένα είδος δυαδικότητας, και τι θα συμβεί αν υπάρχει κάτι εκτός από τον τοίχο;

Τι είναι τα έπιπλα ρομπότ

Το περιβάλλον του ρομπότ είναι ένα ορθογώνιο πεδίο που περιβάλλεται από έναν φράκτη και χωρίζεται σε κελιά και περιγράφεται από τις ακόλουθες τιμές: 1) το μέγεθος του πεδίου - τον αριθμό των σειρών (από 1 έως τις 10) και τον αριθμό των στηλών (από 1 έως 16)· 2) για κάθε κελί: η παρουσία τοιχωμάτων γύρω από το κελί. σημάδι σκίασης? η ποσότητα της ακτινοβολίας (μετρούμενη σε αυθαίρετες μονάδες, μπορεί να πάρει οποιαδήποτε πραγματική τιμή από 0 έως 100). θερμοκρασία (μετρούμενη σε βαθμούς Κελσίου, μπορεί να πάρει οποιαδήποτε πραγματική τιμή από –273 έως +233). Σημείωση. Η χαμηλότερη δυνατή θερμοκρασία είναι (περίπου) απόλυτο μηδέν (0 βαθμοί Κέλβιν). Η ανώτερη θερμοκρασία είναι η θερμοκρασία στην οποία καίγονται τα βιβλία (451 βαθμοί Φαρενάιτ). Αυτή η θερμοκρασία είναι γνωστή σε όλους τους αναγνώστες της διάσημης ιστορίας του Ray Bradbury "Fahrenheit 451".

Το σύστημα εντολών του ρομπότ του επιτρέπει να προσδιορίζει τις τιμές όλων αυτών των χαρακτηριστικών κελιών. Επιπλέον, το κλουβί μπορεί να περιέχει σημάδια ορατά στον παρατηρητή, αλλά απρόσιτα στις «αισθήσεις» του ρομπότ: σύμβολα στην επάνω αριστερή και κάτω αριστερή γωνία του κλουβιού, μια κουκκίδα στην κάτω δεξιά γωνία του κλουβιού. Αναπόσπαστο μέρος του περιβάλλοντος είναι το ίδιο το Ρομπότ (ακριβέστερα, η θέση του στο γήπεδο). Δεν υπάρχουν εντολές στο σύστημα εντολών Robot που σας επιτρέπουν να ζητήσετε τις συντεταγμένες του Robot στο πεδίο.

Το Robot έχει τρεις ομάδες εντολών ανάδρασης. Η πρώτη ομάδα σάς επιτρέπει να αναλύσετε την παρουσία ή την απουσία τοίχων από πάνω, κάτω, δεξιά και αριστερά. Η δεύτερη ομάδα αποτελείται από δύο εκ διαμέτρου αντίθετες εντολές-ερωτήσεις "είναι βαμμένο το κλουβί;" και "είναι καθαρό το κλουβί;"

Εάν οι εντολές των δύο πρώτων ομάδων επιστρέφουν «ναι» ή «όχι» ως απάντηση, τότε οι εντολές της τελευταίας ομάδας επιστρέφουν έναν πραγματικό αριθμό ως απάντηση. Με τη βοήθεια αυτών των εντολών, μπορείτε να μάθετε ποια είναι η θερμοκρασία και ποια η ακτινοβολία στο κλουβί στο οποίο βρίσκεται το Ρομπότ. Λόγω των ομάδων του τρίτου ομίλου, ο κόσμος του Ρομπότ γίνεται αισθητά πλουσιότερος. Χάρη σε αυτές τις ομάδες, μπορούμε να ορίσουμε και να επιλύσουμε ένα ευρύτερο φάσμα εργασιών για τον έλεγχο του ρομπότ και τη συλλογή πληροφοριών στο πεδίο του Ρομπότ. Επιπλέον, οι εργασίες θερμοκρασίας και ακτινοβολίας στο πεδίο Robot μπορούν να αντικαταστήσουν μερικές από τις παραδοσιακές εργασίες επεξεργασίας συστοιχιών. Ο "εξοπλισμός" ενός ρομπότ με "θερμόμετρο" και "μετρητή Geiger" είναι μια καλή μεθοδολογική προσέγγιση κατά τη μελέτη προβλημάτων που συνήθως διατυπώνονται για πίνακες. Τέτοιες παραδοσιακές εργασίες για την επεξεργασία πινάκων όπως "ελάχιστο στοιχείο", "δείκτης μέγιστου στοιχείου", "άθροισμα στοιχείων", "αριθμητικός μέσος όρος" κ.λπ., μπορούν να αναδιατυπωθούν ως εργασίες για τη συλλογή πληροφοριών στο πεδίο Robot και ταυτόχρονα ο χρόνος λαμβάνει μια πολύ φυσική ερμηνεία...

Μια οριζόντια σειρά πέντε κελιών με δεδομένη ακτινοβολία σε κάθε κελί (10, 10, 30, 20 και 40) είναι ένα ακριβές ανάλογο ενός γραμμικού πίνακα πραγματικών αριθμών πέντε στοιχείων. Και σχεδόν κάθε πρόβλημα γραμμικού υπολογιστικού φύλλου μπορεί να αναδιατυπωθεί ως πρόβλημα ρομπότ. Σε μια τέτοια διατύπωση, θα είναι πιο σαφές γιατί έχει προκύψει ένα τέτοιο πρόβλημα και γιατί πρέπει να λυθεί. Ας φανταστούμε ότι στο πεδίο του ρομπότ στα δεξιά υπάρχει ένας τοίχος στον οποίο θα πρέπει να πάνε άνθρωποι - ίσως, διασώστες. Πρώτα πρέπει να μάθετε πόσο επικίνδυνο είναι το πέρασμα κατά μήκος του διαδρόμου για την υγεία, ποιο είναι το επίπεδο ακτινοβολίας. Εάν οι άνθρωποι κινούνται με περίπου σταθερή ταχύτητα, τότε η δόση της ακτινοβολίας που λαμβάνουν θα είναι ανάλογη με το άθροισμα των επιπέδων ακτινοβολίας σε όλα τα κύτταρα της διόδου προς τον τοίχο. Ως εκ τούτου, η ανάλυση του βαθμού επικινδυνότητας αυτής της διόδου για τη ζωή των διασωστών μπορεί να επαναδιατυπωθεί ως το πρόβλημα του υπολογισμού της συνολικής ακτινοβολίας στις κυψέλες διέλευσης. Αυτό είναι το πρόβλημα της εύρεσης του αθροίσματος των στοιχείων του πίνακα, που διατυπώνεται με όρους ελέγχου ρομπότ. Ομοίως, μπορείτε να επαναδιαμορφώσετε σχεδόν οποιαδήποτε εργασία για την επεξεργασία πινάκων (πίνακες).

Η άσκηση... Διαμορφώστε εκ νέου τις εργασίες "Ελάχιστο στοιχείο πίνακα" και "Ευρετήριο ελάχιστου στοιχείου πίνακα" όσον αφορά τον έλεγχο ρομπότ.

Ας δούμε λοιπόν ποια από τις παρακάτω διατυπώσεις του προβλήματος είναι πιο ελκυστική για τον μαθητή: 1) βρείτε τους δείκτες του ελάχιστου στοιχείου ενός ορθογώνιου πίνακα. 2) στο ορθογώνιο στο πεδίο Robot, βρείτε ένα κελί με ελάχιστη ακτινοβολία και μετακινήστε το Robot σε αυτό το κελί (για ανάπαυση).

Η πρώτη διατύπωση είναι καθαρά μαθηματική. Ποιος χρειάζεται αυτούς τους δείκτες και γιατί είναι πολύ πέρα ​​από το πεδίο εφαρμογής του έργου. Το δεύτερο είναι πιο κατανοητό και ουσιαστικό. Παρόλο που οι μαθητές πιθανότατα δεν ασχολήθηκαν με την ακτινοβολία πριν, είναι σαφές σε αυτούς ότι ένα υψηλό επίπεδο ακτινοβολίας είναι «κακό», ότι το κύτταρο που απαιτείται για την εργασία είναι το ασφαλέστερο και εάν το ρομπότ χρειάζεται να βρει ένα μέρος για να ξεκουραστεί , τότε είναι καλύτερο να επιλέξετε το πιο ασφαλές κελί - ένα κελί με ελάχιστη ακτινοβολία.

Όπως μπορείτε να δείτε, ο αλγόριθμος Sum of Elements χρησιμοποιεί έναν βρόχο «bye» που δεν έχουμε εισαγάγει ακόμα. Εδώ απλά προλάβαμε λίγο. Ο βρόχος «bye» θα πρέπει να εισάγεται όταν συζητάμε κάποιο πρόβλημα (προβληματική προσέγγιση), για παράδειγμα, όπως στο σχολικό βιβλίο:

«Υπάρχει ένας τοίχος κάπου κάτω από το ρομπότ στο γήπεδο. Είναι απαραίτητο να μετακινήσετε το Ρομπότ κάθετα προς τα κάτω στον τοίχο, δηλ. τοποθετήστε το ρομπότ στο κλουβί ακριβώς πάνω από τον τοίχο στην ίδια κάθετη με την αρχική θέση του ρομπότ. Μπορείτε να προσπαθήσετε να λύσετε αυτό το πρόβλημα πρώτα με μη αυτόματο τρόπο. Ο δάσκαλος μπορεί ακόμη και να σχεδιάσει ένα πεδίο Robot σε ένα φύλλο και, προς το παρόν, μη δείχνοντας το φύλλο στους μαθητές, να ακολουθήσει τις εντολές τους. Σύντομα, οι μαθητές του σχολείου θα καταλάβουν ότι πρέπει να ρωτούν όλη την ώρα, "Είναι δωρεάν από κάτω;" (ή «κάτω από τον τοίχο;») και δώστε εντολή «κάτω» μέχρι κάτω από το ρομπότ να είναι ελεύθερο.

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

Η μεθοδολογική τεχνική μιας τέτοιας εισαγωγής ενός νέου σχεδιασμού της γλώσσας προγραμματισμού G.V. Ο Λεμπέντεφ περιέγραψε στις διαλέξεις του ως εξής:

«Όταν οι μαθητές καταλαβαίνουν λεπτομερώς πώς να λύσουν το παραπάνω πρόβλημα ελέγχοντας το Ρομπότ «χειροκίνητα», μια βασική αντίθεση για τη μεθοδολογική μας μέθοδο λαμβάνει χώρα μεταξύ αυτής της εργασίας «χειροκίνητα» και του προγραμματισμένου σχήματος ελέγχου.

"Εκπληκτικός! - λέει ο δάσκαλος. - Όλοι κατάλαβαν πώς να ελέγχουν το ρομπότ. Όμως δεν έχουμε να κάνουμε με χειροκίνητο έλεγχο του Ρομπότ, αλλά επιστήμη των υπολογιστών. Επομένως, το καθήκον μας είναι να γράψουμε έναν αλγόριθμο για έναν υπολογιστή, όταν εκτελεστεί, ο υπολογιστής θα δώσει εντολή στο Robot έτσι ώστε το πρόβλημα να λυθεί. Σημειώστε ότι η απόσταση από το ρομπότ στον τοίχο είναι άγνωστη, αλλά ο υπολογιστής, που εκτελεί τον αλγόριθμο (και δεν γνωρίζει την απόσταση), πρέπει να μετακινήσει το ρομπότ στον τοίχο. Προσπαθήστε να γράψετε έναν αλγόριθμο σαν αυτόν. Εξάλλου, καταλαβαίνετε πώς πρέπει να ελέγχετε το Ρομπότ, ποιες εντολές πρέπει να εκδίδει ο υπολογιστής στο ρομπότ. Γράψτε το λοιπόν με τη μορφή αλγορίθμου υπολογιστή». Εφιστώ για άλλη μια φορά την προσοχή σας σε αυτήν την προβληματική προσέγγιση. Άλλωστε, πρακτικά σε αυτό το μέρος ζητάμε από τους μαθητές να καταλήξουν σε μια κατασκευή του κύκλου «αντίο». Δηλαδή, σε αντίθεση με την τυπική ακολουθία (πρώτα η μορφή σημειογραφίας, μετά η σημασιολογία της (έννοια), μετά η λύση των προβλημάτων), ορίζουμε πρώτα το πρόβλημα, μετά αναλύουμε πώς να το λύσουμε, δηλ. κατανοούμε το νόημα (σημασιολογία) της μελλοντικής κατασκευής και μετά ζητάμε από τους μαθητές να βρουν μια μορφή καταγραφής».

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

Εκτελεί ένα ΒΗΜΑ του προγράμματος και εισέρχεται σε λειτουργία ΠΑΥΣΗΣ. Όταν ξεκινά στην κατάσταση EDIT and ANALYSIS, παρακάμπτει τις γραμμές «χρήση» και σταματά πριν εκτελέσει την πρώτη γραμμή της εισαγωγής του κύριου προγράμματος (εάν υπάρχει) ή πριν εκτελέσει τη γραμμή με τη λέξη «alg» του κύριου αλγορίθμου . Η εκτέλεση της εντολής για την κλήση της διαδικασίας αλγόριθμου αντιμετωπίζεται ως ένα ΒΗΜΑ. Εξάγει τα αποτελέσματα των υπολογισμών και των ελέγχων συνθηκών σε πεδία.

Εκτελείται παρόμοια με την εντολή «STEP». Η διαφορά έγκειται στην εκτέλεση της εντολής για την κλήση της διαδικασίας αλγορίθμου ή στον υπολογισμό της τιμής της συνάρτησης αλγορίθμου (αν παρουσιάζονται στο παράθυρο εργασίας). Σε αυτές τις περιπτώσεις, το επόμενο βήμα είναι να εκτελέσετε τη γραμμή κεφαλίδας βοηθητικός αλγόριθμος... Στο μέλλον, η εντολή “step” ή “STEP” θα οδηγήσει στην εκτέλεση του επόμενου βήματος εντός του βοηθητικού αλγόριθμου που εκτελείται.

Ας προσπαθήσουμε να εκτελέσουμε τον αλγόριθμο "Walk to the end". Θα εκτελέσουμε το πρόγραμμα βήμα προς βήμα κάνοντας κλικ στο εικονίδιο STEP. Μας ενδιαφέρει η εκτέλεση του κύκλου «αντίο». Αρχικά, ελέγχεται η συνθήκη «ελεύθερη μπροστά». Η απάντηση είναι «ναι», που σημαίνει ότι το σώμα του βρόχου πρέπει να εκτελεστεί. Και το ρομπότ κινείται κάτω από ένα κελί. Όταν τελειώσει το σώμα του βρόχου, επιστρέφουμε και ελέγχουμε ξανά την κατάσταση. Και ούτω καθεξής, μέχρι το επόμενο ( Η άσκηση: Ποιο είναι το σκορ?) στο βήμα το ρομπότ θα χτυπήσει στον τοίχο και ο έλεγχος της κατάστασης θα δώσει το αποτέλεσμα "όχι". Και μετά θα ολοκληρώσουμε την εκτέλεση του κύκλου και θα αρχίσουμε να εκτελούμε τις εντολές που είναι γραμμένες στο πρόγραμμα μετά το kts.

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

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

αλλά τι γίνεται αν το ρομπότ χαλάσει; Τίποτα σαν αυτό. Το ρομπότ δεν έσπασε, ο κύκλος τελείωσε, αφού η προϋπόθεση «ελεύθερος από κάτω» στον πρώτο έλεγχο δεν πληρούται και, επομένως, το σώμα του κύκλου δεν εκτελείται ούτε μία φορά. Αυτό είναι ένα από τα σημαντικά χαρακτηριστικά του κύκλου bye.

Ένα άλλο σημαντικό χαρακτηριστικό της εκτέλεσης του βρόχου "bye" είναι η δυνατότητα επαναφοράς - ατελείωτης εκτέλεσης του σώματος του βρόχου. Ας πούμε ότι το μπερδέψαμε και αντί για την εντολή «κάτω», γράψαμε την εντολή «ζωγραφική» μέσα στον βρόχο. Αν είναι ελεύθερο κάτω από το Ρομπότ, τότε το Ρομπότ δεν θα κινηθεί πουθενά, αλλά θα μείνει ακίνητο και θα ζωγραφίζει επ' αόριστον το κελί στο οποίο στέκεται. Εάν εκτελείτε ένα τέτοιο πρόγραμμα, τότε μπορείτε να μάθετε για το looping από τον αριθμό των βημάτων που εκτελούνται από το πρόγραμμα, τα οποία θα αυξηθούν γρήγορα μπροστά στα μάτια μας, ενώ το Ρομπότ στέκεται ακίνητο.

Το τρίτο και τελευταίο χαρακτηριστικό του βρόχου "bye" είναι ότι δεν ελέγχεται η προϋπόθεση για τη συνέχιση του βρόχου κατά την εκτέλεση του σώματος του βρόχου. Ας αλλάξουμε ελαφρώς τον αλγόριθμο προσθέτοντας μια ακόμη εντολή «κάτω» στο σώμα του βρόχου. Αφήστε το ρομπότ να ολοκληρώσει την εργασία πιο γρήγορα. Κατά κανόνα, οι μαθητές δεν βλέπουν το λάθος ενός τέτοιου προγράμματος, υποθέτοντας λανθασμένα ότι η συνθήκη βρόχου ελέγχεται κατά κάποιο τρόπο μαγικά σε κάθε στιγμή της εκτέλεσης του σώματος του βρόχου. Αυτό, φυσικά, δεν ισχύει. Το παράδειγμα που δίνεται δείχνει τα προκύπτοντα σφάλμα χρόνου εκτέλεσης, παρόλο που η συνθήκη βρόχου ήταν (στο παρελθόν) η τιμή "ναι". Αλλά πριν από το δεύτερο βήμα «κάτω», κανείς δεν έλεγξε την κατάσταση. Εξαιτίας αυτού, υπήρξε άρνηση στο πρόγραμμα.

Συνθήκες σε αλγοριθμική γλώσσα. Εάν και επιλέξτε Εντολές

Κατά κανόνα, μετά τον έλεγχο του κύκλου «αντίο», οι εντολές «αν» και «επιλογή» κατακτώνται χωρίς μεγάλη δυσκολία. Ως συνήθως, η εισαγωγή μιας νέας εντολής θα πρέπει να ξεκινήσει από την εκάστοτε εργασία. Δεδομένα: Ένα ρομπότ είναι κάπου στο γήπεδο και στα δεξιά είναι ελεύθερο. Είναι απαραίτητο: μετακινήστε το ρομπότ προς τα κάτω, ζωγραφίζοντας εκείνα τα κελιά του χωραφιού στην πορεία, που έχουν έναν τοίχο στα δεξιά.

Ο αλγόριθμος λαμβάνεται με απλή επανεπεξεργασία της λύσης στο προηγούμενο πρόβλημα, απλά πρέπει να προσθέσετε την εντολή "if".

Το μεθοδολογικό ερώτημα γιατί η κατασκευή «αν» εμφανίζεται στην πορεία μετά την κατασκευή «αντίο» βρίσκεται στις «12 διαλέξεις» του G.V. Λεμπέντεβα: «Φυσικά, είναι εύκολο να εισαγάγεις και να εξηγήσεις την εντολή «εάν» χρησιμοποιώντας κάποιο παράδειγμα «προσεκτικού «βήματος:» αν το κάτω μέρος είναι ελεύθερο, τότε όλα είναι κάτω». Το πρόβλημα, κατά τη γνώμη μας, είναι ότι αν ξεκινήσετε από αυτό (και ειδικά αν εισάγετε την εντολή «αν» πριν από τους κύκλους), τότε οι μαθητές δεν έχουν κανένα (αν και όχι επισημοποιημένο) εξωτερικό πλαίσιο στο κεφάλι τους, εντός του οποίου το γράψιμο μιας τέτοιας ομάδας θα είχε νόημα για την επίλυση ορισμένων ουσιαστικών εργασιών. Αφού αναλυθεί τουλάχιστον ένα παράδειγμα με βρόχο και με ένα «αν» μέσα, εμφανίζεται ένα τέτοιο εξωτερικό πλαίσιο. Τότε είναι ήδη δυνατό να μελετηθεί η εντολή "αν" χωρίς κύκλους - οι μαθητές θα φανταστούν την κατάσταση στην οποία προκύπτει η ανάγκη για μια τέτοια εντολή. Αλλά όταν αντιμετωπίζεται αυτό το πρώτο παράδειγμα (με τον βρόχο και το "αν"), η εντολή "αν" δεν έχει τίποτα να μάθει. Άλλα επεξηγηματικά παραδείγματα απλά δεν απαιτούνται - πρέπει να λύσετε προβλήματα. Επομένως, πιστεύουμε ότι για πρώτη φορά θα πρέπει να εμφανιστεί η εντολή «αν» μέσα στον βρόχο. Η πολυπλοκότητα της εντολής "if" μπορεί να βρίσκεται μόνο στην εγγραφή συνθήκης. Μπορείτε να αντιμετωπίσετε ένα πρόβλημα για μαθητές - γράψτε επίσημα την προϋπόθεση "Το ρομπότ στέκεται στη γωνία":

(αριστερός τοίχος καιεπάνω τοίχος)

ή(πάνω τοίχος καιδεξιός τοίχος)

ή(δεξιός τοίχος καικάτω τοίχος)

ή(κάτω τοίχος καιαριστερός τοίχος)

Εντολή επιλογής

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

«Οπτική» παρουσίαση εντολών

Ο κύκλος "αντίο" μπορεί να εξηγηθεί όχι μόνο σε μαθητές που χρησιμοποιούν το "Kumir" με το ρομπότ, αλλά και σε παιδιά προσχολικής ηλικίας, χρησιμοποιώντας τον μικρότερο αδερφό του "Kumir" - "PiktoMir". Από την προηγούμενη διάλεξη, είμαστε εξοικειωμένοι με τον Vertun, ο οποίος μπορεί να περπατήσει σε ένα πεδίο παρόμοιο με αυτό ενός ρομπότ. Ο Vertun είναι ένας ενδιαφέρων ερμηνευτής, έχει εντολές ανατροφοδότησης: ο Vertun μπορεί να ελέγξει αν το κλουβί στο οποίο στέκεται είναι βαμμένο και αν υπάρχει τοίχος μπροστά του. Το Vertun, όπως και το Robot, έχει ένα διπλό σύνολο εντολών ανάδρασης. Αλλά υπάρχουν καλοί λόγοι για αυτό στο PiktoMir. Αν στο "Kumir" μπορούσαμε να λάβουμε το αντίστοιχο της εντολής "ελεύθερο δεξιά" από την εντολή Robot "στο δεξιό τοίχο" προσθέτοντας την άρνηση "not" μέσα στην εντολή, τότε στο οπτικό στυλ προγραμματισμού στο "PictoMir" σωματίδιο δεν υπάρχει. Αυτό σημαίνει ότι δεν μπορείς να κάνεις με δύο ομάδες και χρειάζεσαι και τις τέσσερις.

Τα εικονογράμματα που φαίνονται στο σχήμα υποδηλώνουν αυτά τα ζεύγη εντολών (από αριστερά προς τα δεξιά): «κελί γεμάτο» (γκρι πεδίο). "Τείχος μπροστά" (τουβλότοιχος). "Το κλουβί είναι καθαρό" ( πράσινο χρώμαπεδία)· «Ελεύθερος μπροστά» (ο τοίχος έχει καταστραφεί).

Εντολή επιλογής

Αν συνθήκη 1: σειρά 1

Με συνθήκη 2: σειρά 2

Αν συνθήκη n: σειρά n

Διαφορετικά η σειρά n + 1

Η λέξη-κλειδί αλλιώς, μαζί με την αντίστοιχη σειρά εντολών, ενδέχεται να λείπει:

Αν συνθήκη 1: σειρά 1

Με συνθήκη 2: σειρά 2

Αν συνθήκη n: σειρά n

Το "Kumir" ελέγχει πρώτα την συνθήκη 1. Εάν πληρούται, τότε το "Kumir" εκτελεί εντολές από τη σειρά 1 και μετά πηγαίνει στο εκτέλεση εντολώνγραμμένο μετά τη λέξη όλα. Διαφορετικά, το "Kumir" κάνει το ίδιο με τη συνθήκη 2 και εντολές από τη σειρά 2 κ.λπ.

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

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

Υπάρχουν τρεις εντολές ελέγχου εκτέλεσης στη γλώσσα Kumir:

εγκεκριμένο, δεδομένο, είναι απαραίτητο.

Μορφή κλήσης:

εγκρίθηκε<ЛОГ ВЫРАЖЕНИЕ>

δεδομένος<ЛОГ ВЫРАЖЕНИЕ>

απαραίτητη<ЛОГ ВЫРАЖЕНИЕ>

Και οι τρεις εντολές εκτελούνται έτσι. Η κατάσταση ελέγχεται. Εάν η συνθήκη δεν πληρούται, τότε το "Kumir" σταματά την εκτέλεση του αλγορίθμου και αναφέρει ότι έχει συμβεί μια αποτυχία. Εάν πληρούται η συνθήκη, τότε η εκτέλεση του αλγορίθμου συνεχίζεται κανονικά σαν να μην υπήρχε καθόλου εντολή ελέγχου. Η εντολή που δίνεται ελέγχει τη συνθήκη στην αρχή της εκτέλεσης του αλγορίθμου, η εντολή είναι απαραίτητη - στο τέλος της εκτέλεσης του αλγορίθμου και με την εντολή έγκρισης, μπορείτε να ελέγξετε τη συνθήκη κατά την εκτέλεση του αλγορίθμου.

Πώς μπορούν να χρησιμοποιηθούν αυτές οι συνθήκες στο PiktoMir; Οι συνθήκες μπορούν να τοποθετηθούν στην αρχή των βοηθητικών αλγορίθμων σε ειδικά κελιά. Τα μπλε περιέχουν έναν επαναλήπτη (για την οργάνωση του βρόχου N φορές) και τα ροζ - την προϋπόθεση για την εκτέλεση του αλγορίθμου f1 – f5. Όπως αναφέρθηκε ήδη στη Διάλεξη 3, ο βρόχος N φορές βοηθά τον μαθητή να αποθηκεύσει κελιά κατά την κατάρτιση του αλγόριθμου.

Αλλά εάν μια απλή εργασία είναι, για παράδειγμα, να μετακινήσετε το Vertun προς τα δεξιά στον τοίχο, τότε το πρόγραμμα μπορεί να μοιάζει με αυτό:

Πράγματι, αν «κοιτάξετε» την κατάσταση του Vertun, μπορείτε εύκολα να υπολογίσετε ότι υπάρχουν 4 σκαλοπάτια μέχρι τον τοίχο. Είναι άλλο θέμα αν η κατάσταση δεν είναι ορατή σε εμάς και μπορούμε να το μάθουμε μόνο μέσω των σχολίων από το Vertun. Παρόμοια με την κατάσταση με το Ρομπότ, ο μαθητής θα πρέπει να ρωτήσει τον Vertun προτού προχωρήσει μπροστά αν υπάρχει τοίχος μπροστά του. Στη σχολική αλγοριθμική γλώσσα, όταν οι μαθητές αναγκάζονται να κατασκευάσουν οι ίδιοι τον κύκλο «αντίο», τα παιδιά έχουν ακόμα πολύ χώρο για φαντασία, αφού τα όρια της αλγοριθμικής γλώσσας δεν είναι ορατά. Στο PiktoMir, ένα παιδί έχει μόνο αυτό που βλέπει στην οθόνη. Και οι όροι μπορούν να τοποθετηθούν μόνο σε ένα μέρος. Αρκεί να το δοκιμάσει.

Ένα τέτοιο πρόγραμμα θα λειτουργήσει σωστά για το τρέχον περιβάλλον του Vertun (και, φυσικά, σε όλες τις περιπτώσεις που ο τοίχος είναι πιο κοντά από τέσσερα βήματα από την αρχική θέση).

Ας εξηγήσουμε πώς λειτουργεί ο βοηθητικός αλγόριθμος f1. Πριν από την έναρξη του αλγορίθμου (που περιέχεται σε 12 εκτελέσιμα κελιά), εκτελείται η εντολή Vertun, η οποία βρίσκεται στο ροζ πλαίσιο. Εάν η απάντηση είναι «ναι», τότε ο αλγόριθμος εκτελείται όσες φορές υποδεικνύεται στο μπλε πεδίο. Σε αυτήν την περίπτωση, τα κενά κελιά παραλείπονται και η εντολή από το ροζ πεδίο καλείται κάθε φορά πριν από τον επόμενο κύκλο εκτέλεσης του αλγορίθμου f1.

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

nts <синее поле> απλά αντίο <розовое поле>

<команды в клетках алгоритма>

Αλλά δεν υπάρχει τέτοια κατασκευή σε μια αλγοριθμική γλώσσα. Σε αυτήν την περίπτωση, το f1 μετατρέπεται σε ανάλογο της κατασκευής "if", στην περίπτωση ενός κενού επαναλήπτη (κενό μπλε πεδίο) ή ενός μεμονωμένου επαναλήπτη, και ο αλγόριθμος f1 μετατρέπεται σε βρόχο "bye" εάν υπάρχει η συνθήκη ( ροζ πεδίο) και ο επαναλήπτης είναι άπειρος.

Η άσκηση... Θυμηθείτε πώς να δημιουργήσετε έναν βρόχο από f1 N φορές.

Τι θα παρακινήσει το παιδί να χρησιμοποιήσει τον κύκλο bye (χρησιμοποιήστε το ροζ κουτί); Το γεγονός είναι ότι υπάρχουν μόνο 7 επαναλήπτες στο PiktoMir: 1 φορά, 2 φορές, 3 φορές, 4 φορές, 5 φορές, 6 φορές και "ad infinitum". Με αυτό το σετ, μπορείτε να φτάσετε στον τοίχο όταν είναι 1, 2, 3, 4, 5 ή 6 βήματα. Τι να κάνετε όμως όταν υπάρχουν 7 σκαλοπάτια στον τοίχο ή υπάρχουν τόσα πολλά βήματα που το παιδί απλά δεν μπορεί να μετρήσει τον αριθμό τους; Υπάρχει ένας επαναλήπτης "άπειρο" και ακόμα κι αν το παιδί δεν έχει κατακτήσει ακόμη αυτήν την έννοια, αφού περάσει από τις λίγες επιλογές για τη δημιουργία προγραμμάτων στο "PictoMir", σίγουρα θα δοκιμάσει την επιλογή με τον επαναλήπτη "άπειρο" σε ένα μπλε κλουβί. και την απαραίτητη προϋπόθεση σε ροζ κλουβί. Αυτός θα είναι ο κύκλος «αντίο» που δημιουργεί το παιδί (συνειδητά).

Η γραφική γλώσσα του «PiktoMir» ενθαρρύνει το παιδί να εφεύρει τον κύκλο «αντίο» πιο έντονα από την αλγοριθμική γλώσσα του «Kumir». Γεγονός είναι ότι όταν «παίζει» με το «PiktoMir» το παιδί είναι πολύ περιορισμένο στην επιλογή των μέσων. Το "PiktoMir" είναι όλα στην παλάμη του χεριού σας και η αλγοριθμική γλώσσα μπορεί να μελετηθεί για μεγάλο χρονικό διάστημα. Στο PiktoMir, μπορείτε να περάσετε γρήγορα από όλες τις επιλογές προγραμματισμού και καθώς υπάρχει και ένας κύκλος «αντίο», μπορείτε να τον ανοίξετε κι εσείς. Η διαφορά μεταξύ "Kumir" και "PiktoMir" είναι παρόμοια με τη διαφορά μεταξύ σκακιού και πούλι. Για το τελευταίο, ο διάσημος Αμερικανός συγγραφέας Έντγκαρ Άλαν Πόε έγραψε στην αστυνομική ιστορία «Murder on Morgue Street» ως εξής:

«Εν τω μεταξύ, η προσοχή αποφασίζει εδώ (στο σκάκι. - Ed. Note). Μόλις αποδυναμωθεί, και διαπράξετε μια παράβλεψη που οδηγεί σε λάθος υπολογισμό ή ήττα. Και δεδομένου ότι οι σκακιστικές κινήσεις δεν είναι μόνο διαφορετικές, αλλά και διφορούμενες, οι πιθανότητες ενός λάθους αυξάνονται ανάλογα, και σε εννέα στις δέκα περιπτώσεις, δεν κερδίζει ο πιο ικανός, αλλά ο πιο συγκεντρωμένος παίκτης. Τα πούλια είναι ένα άλλο θέμα, όπου επιτρέπεται μόνο μία κίνηση με μικρές παραλλαγές. εδώ οι πιθανότητες επίβλεψης είναι πολύ λιγότερες, η προσοχή δεν παίζει ιδιαίτερο ρόλο και η επιτυχία εξαρτάται κυρίως από την ευκρίνεια. ... Προφανώς, εδώ (με ίσες δυνάμεις) η νίκη εξαρτάται από μια επιτυχημένη κίνηση, από μια απρόσμενη και πνευματώδη απόφαση 6 ».

Υπήρχε επίσης ένας βαθύτερος λόγος για τον οποίο προικίσαμε το Ρομπότ με διαμετρικά αντίθετα ζεύγη εντολών ερωτήσεων. Μόλις σε μια αλγοριθμική γλώσσα ήταν αδύνατο να τοποθετηθεί ένα σωματίδιο έξω από το όνομα της εντολής. Εκείνες τις μέρες, εξαιτίας αυτού, θα ήταν απαραίτητο να χρησιμοποιηθούν εντελώς αδιάβαστες από την άποψη της ρωσικής γλώσσας εκφράσεις όπως "δεν είναι ζωγραφισμένο το κελί" ή "δεν είναι ελεύθερο από πάνω". Στη σύγχρονη εκδοχή της γλώσσας, τέτοιες εκφράσεις γράφονται πολύ πιο κανονικά: «το κελί δεν είναι βαμμένο», «η κορυφή δεν είναι ελεύθερη».

Kushnirenko A.G., Lebedev G.V., Svoren R.A. Βασικές αρχές Πληροφορικής και Επιστήμης Υπολογιστών. Μ.: Εκπαίδευση, 1990, 1991, 1993, 1996.

Δυστυχώς, είναι αδύνατο να ονομάσουμε τον αλγόριθμο "Walk all the way" στο "Kumir", καθώς το "πριν" είναι λέξη-κλειδίΓλώσσα.

12 διαλέξεις για το τι είναι ένα σχολικό μάθημα πληροφορικής και πώς να το διδάξετε: A.G. Kushnirenko, G.V. Λεμπέντεφ. // Εργαλειοθήκη. Μόσχα: Εργαστήριο Βασικής Γνώσης, 2000.

Κάρτες εργασιών

    Βρείτε ανάμεσα στους ν-ακέραιους που εισάγονται από το πληκτρολόγιο τον αριθμό των αρνητικών

    Δίνονται δύο αυθαίρετοι αριθμοί. Ενώ το προϊόν τους είναι μικρότερο από 100, αυξήστε κάθε αριθμό κατά 2 και εμφανίστε τους τελικούς αριθμούς στην οθόνη

    Οι Ν-ακέραιοι εισάγονται διαδοχικά. Βρείτε τον αριθμό των πέντε σε μια ακολουθία

    Οι Ν-ακέραιοι εισάγονται διαδοχικά. Βρείτε τη διαφορά μεταξύ των μέγιστων και ελάχιστων τιμών των δεδομένων αριθμών

    Βρείτε ανάμεσα στους ν-ακέραιους που εισάγονται από το πληκτρολόγιο τον αριθμό των αρνητικών

    Δίνονται δύο αυθαίρετοι αριθμοί. Ενώ το προϊόν τους είναι μικρότερο από 100, αυξήστε κάθε αριθμό κατά 2 και εμφανίστε τους τελικούς αριθμούς στην οθόνη

    Οι Ν-ακέραιοι εισάγονται διαδοχικά. Βρείτε τον αριθμό των πέντε σε μια ακολουθία

    Οι Ν-ακέραιοι εισάγονται διαδοχικά. Βρείτε τη διαφορά μεταξύ των μέγιστων και ελάχιστων τιμών των δεδομένων αριθμών

    Βρείτε ανάμεσα στους ν-ακέραιους που εισάγονται από το πληκτρολόγιο τον αριθμό των αρνητικών

    Δίνονται δύο αυθαίρετοι αριθμοί. Ενώ το προϊόν τους είναι μικρότερο από 100, αυξήστε κάθε αριθμό κατά 2 και εμφανίστε τους τελικούς αριθμούς στην οθόνη

    Οι Ν-ακέραιοι εισάγονται διαδοχικά. Βρείτε τον αριθμό των πέντε σε μια ακολουθία

    Οι Ν-ακέραιοι εισάγονται διαδοχικά. Βρείτε τη διαφορά μεταξύ των μέγιστων και ελάχιστων τιμών των δεδομένων αριθμών

    Βρείτε ανάμεσα στους ν-ακέραιους που εισάγονται από το πληκτρολόγιο τον αριθμό των αρνητικών

    Δίνονται δύο αυθαίρετοι αριθμοί. Ενώ το προϊόν τους είναι μικρότερο από 100, αυξήστε κάθε αριθμό κατά 2 και εμφανίστε τους τελικούς αριθμούς στην οθόνη

    Οι Ν-ακέραιοι εισάγονται διαδοχικά. Βρείτε τον αριθμό των πέντε σε μια ακολουθία

    Οι Ν-ακέραιοι εισάγονται διαδοχικά. Βρείτε τη διαφορά μεταξύ των μέγιστων και ελάχιστων τιμών των δεδομένων αριθμών

Γνωριμία με το πρόγραμμα Kumir με γνώμονα τα βασικά του προγραμματισμού.

Σε αυτό, οι μαθητές μπορούν να αποκτήσουν πρακτικές δεξιότητες στη δημιουργία και τον εντοπισμό σφαλμάτων ενός αλγορίθμου, δουλεύοντας με καλλιτέχνες όπως Robot, Draftsman, Aquarius, Grasshopper, Turtle.

Κατά τη μελέτη μιας από τις πιο δύσκολες ενότητες της επιστήμης των υπολογιστών «αλγόριθμοι και προγραμματισμός».

Σκοπός ανάπτυξης :

Κατεβάστε:


Προεπισκόπηση:

Μεθοδική ανάπτυξη στην πληροφορική.

Θέμα: "Ρομπότ Performer στο πρόγραμμα Kumir σε μαθήματα πληροφορικής"

καθηγητής τεχνολογίας "Πληροφορική και ΤΠΕ"

Επεξηγηματικό σημείωμα

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

Μεθοδική ανάπτυξηπου συντάχθηκε για μαθήματα πληροφορικήςΕξάσκηση στον υπολογιστή: συνεργαστείτε με τον εκτελεστή εκπαίδευσης αλγορίθμων. σύνταξη γραμμικών, διακλαδώσεων και κυκλικούς αλγόριθμουςδιαχείριση εκτελεστών? Σύνταξη αλγορίθμων με πολύπλοκη δομή. τη χρήση βοηθητικών αλγορίθμων (διαδικασίες, υπορουτίνες).

Οι μαθητές πρέπει να γνωρίζουν:

  • τι είναι ερμηνευτής? SKI Robot, περιβάλλον ερμηνευτών ρομπότ.
  • τι είναι ένας αλγόριθμος;ποιες είναι οι κύριες ιδιότητες του αλγορίθμου;
  • μέθοδοι γραφής αλγορίθμων: μπλοκ διαγράμματα, εκπαιδευτική αλγοριθμική γλώσσα.βασικές αλγοριθμικές κατασκευές: ακολουθώντας, διακλάδωση, βρόχος; δομές
  • αλγόριθμοι? ⇒ εκχώρηση βοηθητικών αλγορίθμων. τεχνολογίες για την κατασκευή πολύπλοκων αλγορίθμων:

Οι μαθητές θα πρέπει να είναι σε θέση:

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

Μάθημα 1 (2 ώρες) Μάθημα 1.

Ρομπότ καλλιτέχνη.Σύστημα εντολών εκτελεστή.

Πλάνο μαθήματος.

  1. Περιγραφή του SKI του ερμηνευτή, του περιβάλλοντος του ερμηνευτή.

2. Ανάλυση τυπικών αλγορίθμων του Ρομπότ.

Κατά τη διάρκεια των μαθημάτων.

Εξετάστε την περιγραφή του ερμηνευτή.

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

Ρομπότ SKI : απλές εντολές: πάνω, κάτω, αριστερά, δεξιά, ζωγραφική.

Boolean εντολές: (έλεγχος συνθήκης)

πάνω ελεύθερο κάτω ελεύθερο

αριστερά ελεύθερη δεξιά ελεύθερη.

Λογικές συνδέσεις: ΚΑΙ, ΟΧΙ, Ή:

Παράδειγμα: (Όχι αριστερά) ή (Όχι δεξιά δωρεάν)

Εντολή υποκαταστήματος: εντολή βρόχου:

Εάν η προϋπόθεση τότε nts ενώ συνθήκη

Σειρά εντολών σειράς εντολών

όλα τα kts

(Στα KIM του 2009, οι εντολές του Robot διέφεραν από τα συνηθισμένα παιδιά, γεγονός που οδήγησε σεσύγχυση :)

Εντολή υποκαταστήματος: εντολή βρόχου:

Εάν η προϋπόθεση τότε nts ενώ η προϋπόθεση είναι να κάνουμε

Σειρά εντολών σειράς εντολών

τέλος τέλος

Γενική άποψη του παραθύρου του προγράμματος Kumir. Γραφικό περιβάλλον του ρομπότ:

Στα CMM της δοκιμαστικής έκδοσης 2010, η μορφή εντολής έχει αλλάξει σεσυνήθης

Διαδικασία δημιουργίας αλγορίθμου:

1.Ομάδες Εργαλεία -Επεξεργασία περιβάλλοντος εκκίνησηςσχεδιάστε τοίχους στο πεδίο Robot και ρυθμίστε το Robot στην αρχική του θέση.

2.Ομάδες Robot - Αλλαγή περιβάλλοντος εκκίνησηςκρατήστε το νέο περιβάλλον.

3.Ομάδες Εισαγωγή - Χρήση ρομπότκαθορίστε τον εκτελεστή.

4.Στο παράθυρο του εγγράφου, σημειώστε τον αλγόριθμο χρησιμοποιώντας το μενούΕισάγετε.

5. Χρησιμοποιώντας τις εντολές Εκτέλεση - εκτελέστε συνεχόμενα (ή βήμα προς βήμα) για να εκτελέσετε τον αλγόριθμο.

6. Εξετάστε το αποτέλεσμα του αλγορίθμου και, εάν χρειάζεται, διορθώστε το.

Μάθημα 1 (2 ώρες) Μάθημα 2.

Πρακτική δουλειά "Σχεδίαση γραμμικών αλγορίθμων».

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

  1. Ένα ρομπότ σε ένα αυθαίρετο σημείο του χωραφιού. Μετακινήστε τα κελιά Robot 4 προς τα δεξιά ζωγραφίζοντας πάνω τους.
  2. Δημιουργήστε ένα νέο αρχικό περιβάλλον σχεδιάζοντας ένα τετράγωνο με πλευρά 4 κελιών στον πίνακα. Αποθηκεύστε τη ρύθμιση ως σημείο εκκίνησης.
  3. Δημιουργήστε ένα νέο περιβάλλον εκκίνησης σχεδιάζοντας έναν διάδρομο με διαδρόμους στους τοίχους στο γήπεδο. Αποθηκεύστε τα έπιπλα ως obst2.fil. Αλλάξτε το περιβάλλον εκκίνησης στο νεοδημιουργημένο.

Μάθημα 2 (2 ώρες) Μάθημα 1.

Θέμα : Διακλάδωση και διαδοχική τελειοποίηση του αλγορίθμου.

Ανάλυση εργασιών CMM με χρήση του Robot performer.

χρησιμοποιήστε το Robot

alg kim 2009

νωρίς

αν όχι ελεύθερο από κάτω

τότε δεξιά

όλα

αν όχι ελεύθερο από κάτω

τότε δεξιά

όλα

αν όχι ελεύθερο από κάτω

τότε δεξιά

όλα

ενάντιος

χρησιμοποιήστε το Robot

alg kim 2010

νωρίς

αν όχι ελεύθερο από κάτω

τότε δεξιά

όλα

αν όχι ελεύθερο από κάτω

τότε δεξιά

όλα

αν όχι ελεύθερο από κάτω

τότε δεξιά

όλα

ενάντιος

NS. δούλος. Νο. 14. Σύνταξη και αποσφαλμάτωση αλγορίθμων διακλάδωσης

Καθήκοντα. Βλέπε συνημμένο.

Μάθημα 3. Κυκλικοί αλγόριθμοι. Μάθημα 1-2

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

NS. δούλος. Νο. 15. Σύνταξη και αποσφαλμάτωση κυκλικών αλγορίθμων

1. Φτιάξτε έναν αλγόριθμο που ζωγραφίζει όλα τα εσωτερικά κελιά που βρίσκονται δίπλα στον τοίχο.

χρησιμοποιήστε το Robot

αλγ

νωρίς

Το nts μέχρι στιγμής στα δεξιά είναι δωρεάν

Βαφή πάνω? δεξιά

kts

nts ενώ το παρακάτω είναι δωρεάν

Βαφή πάνω? πολύ κάτω

kts

nts μέχρι να ελευθερωθεί το κάτω μέρος

Βαφή πάνω? αριστερά

kts

ενάντιος

2. Φτιάξτε έναν αλγόριθμο που ζωγραφίζει όλα τα κελιά μεταξύ του Ρομπότ και του τοίχου. Η απόσταση από τον τοίχο είναι άγνωστη.

χρησιμοποιήστε το Robot

αλγ

νωρίς

Το nts μέχρι στιγμής στα δεξιά είναι δωρεάν

δεξιά; ζωγραφίζω

kts

ενάντιος

3. Φτιάξτε έναν αλγόριθμο που ζωγραφίζει όλα τα κελιά ανάμεσα στους δύο τοίχους.

χρησιμοποιήστε το Robot

alg uch3

νωρίς

nts μέχρι (όχι από πάνω ελεύθερα) ή (όχι από κάτω ελεύθερα)

δεξιά

εάν (όχι δωρεάν από πάνω) και (όχι από κάτω δωρεάν)

τότε

ζωγραφίζω

όλα

kts

ενάντιος

4. Φτιάξτε έναν αλγόριθμο που ζωγραφίζει όλα τα κελιά γύρω από τον ορθογώνιο τοίχο.

alg uch4

νωρίς

βάψιμο πάνω· επάνω

nts δεν είναι ακόμα στα δεξιά δωρεάν

βάψιμο πάνω, επάνω;

kts

ζωγραφίζω· δεξιά

nts μέχρι να ελευθερωθεί το κάτω μέρος

ζωγραφίζω πάνω δεξιά

kts

ζωγραφίζω πάνω· κάτω

nts δεν έχουν μείνει ακόμη ελεύθεροι

βάψιμο πάνω, κάτω;

kts

βάψιμο πάνω· αριστερά

nts μέχρι να απελευθερωθεί η κορυφή

Βαφή πάνω? αριστερά;

kts

ενάντιος

χρησιμοποιήστε το Robot

alg uch5

νωρίς

δεξιά

nts μέχρι να ελευθερωθεί το κάτω μέρος

Βαφή πάνω? δεξιά

kts

Βαφή πάνω? πολύ κάτω

Το nts μέχρι στιγμής στα αριστερά είναι δωρεάν

Βαφή πάνω? αριστερά

kts

nts δεν έχουν μείνει ακόμη ελεύθεροι

Βαφή πάνω? πολύ κάτω

kts

ζωγραφίζω πάνω, αριστερά, ζωγραφίζω πάνω πάνω;

nts μέχρι να απελευθερωθεί η κορυφή

Βαφή πάνω? πάνω

kts

nts μέχρι να απελευθερωθεί η κορυφή

Βαφή πάνω? αριστερά

kts

ενάντιος

Μάθημα 4 Μάθημα 1

Βοηθοί αλγόριθμοι.

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

Πλάνο μαθήματος

1. Εισαγωγή νέων όρων (κύριος και βοηθητικός αλγόριθμος, κλήση) και επεξήγηση νέων εννοιών.

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

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

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

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

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

Εργασία 1:

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

Λύση

Ανάλυση στον πίνακα:

Εργασία 2. Το ρομπότ βρίσκεται στην επάνω αριστερή γωνία του γηπέδου. Δεν υπάρχουν τοίχοι ούτε βαμμένα κελιά. Δημιουργήστε έναν αλγόριθμο που χρωματίζει ένα τετράγωνο 8 x 8 σε μοτίβο σκακιέρας. Η τελική θέση του ρομπότ μπορεί να είναι αυθαίρετη.

Μάθημα 4 Μάθημα 2

Πρακτική εργασία στον υπολογιστή "Επίλυση του προβλήματος με χρήση βοηθητικών αλγορίθμων".

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

Πλάνο μαθήματος

1. Η εργασία πραγματοποιείται πλήρως στον υπολογιστή. Οι μαθητές λαμβάνουν εργασίες και τις εκτελούν στο περιβάλλον λογισμικού Kumir. Αποτελέσματα Η εργασία αποθηκεύεται ως αρχεία για μετέπειτα επαλήθευση.

Εργασία 1 ... Το ρομπότ βρίσκεται στην κάτω αριστερή γωνία του γηπέδου. Δεν υπάρχουν τοίχοι ούτε βαμμένα κελιά. Φτιάξτε έναν αλγόριθμο που ζωγραφίζει 6 κάθετες ρίγες ίδιου μήκους σε 6 κελιά. Η τελική θέση του ρομπότ μπορεί να είναι αυθαίρετη.

Εργασία 2 Χρησιμοποιώντας τα βοηθητικά, δημιουργήστε έναν αλγόριθμο για τη ζωγραφική των κελιών που σχηματίζουν τον αριθμό 1212.

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

Μάθημα 5 Μάθημα 1-2

Δοκιμή

"Σχεδίαση αλγορίθμου στο περιβάλλον του εκτελεστή ρομπότ."

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

Εργασίες για δοκιμαστική εργασίαχωρίζονται ανά επίπεδα δυσκολίας και περιλαμβάνουν 3 εργασίες με τον εκτελεστή Robot (εργασίες 1 και 2 — για διακλάδωση και βρόχους, εργασία 3 — για χρήση βοηθητικού αλγόριθμου.) Τα κείμενα των εργασιών δίνονται στο παράρτημα.

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

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

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

Ετσι, τι είναι ένας κύκλος? Φανταστείτε ότι βρισκόμαστε σε μάθημα φυσικής αγωγής και βρισκόμαστε αντιμέτωποι με ένα έργο κάνε 7 squats... Αυτή η εργασία μπορεί να διαμορφωθεί ως γραμμικός αλγόριθμος και στη συνέχεια θα μοιάζει κάπως έτσι:

κάνε ένα squat

κάνε ένα squat

κάνε ένα squat

κάνε ένα squat

κάνε ένα squat

κάνε ένα squat

κάνε ένα squat

Δηλαδή επαναλάβαμε την εντολή squat 7 φορές. Έχει νόημα να γράψουμε 7 πανομοιότυπες εντολές; Ίσως είναι πιο εύκολο να δώσετε μια εντολή κάνε 7 squats? Φυσικά, είναι πιο εύκολο και σωστό. Αυτός είναι ο κύκλος... Εσείς οι ίδιοι μπορείτε να θυμηθείτε παραδείγματα κύκλων από τη ζωή - υπάρχουν αρκετοί από αυτούς.

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

επαναλάβετε 7 φορές

κάνε ένα squat

τέλος του κύκλου

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

Τύποι κύκλων.

Βρόχος με μετρητή.

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

Για να γράψετε έναν βρόχο με μετρητή για τον εκτελεστή, πρέπει να γνωρίζετε τη σύνταξή του. Και είναι έτσι:

nts<αριθμός επαναλήψεων> φορές

<команда 1>

<команда 2>

<команда n>

Εδώ πρέπει να αναφέρουμε τον αριθμό των επαναλήψεων (αριθμός) και τις εντολές που θα επαναληφθούν. Οι εντολές που επαναλαμβάνονται στον βρόχο καλούνται σώμα του κύκλου.

Ας ρίξουμε μια ματιά σε αυτό με ένα παράδειγμα.

Αρχικά, το Ρομπότ βρισκόταν στο πάνω αριστερό κλουβί.

Ας ξεκινήσουμε λύνοντας το πρόβλημα γραμμικά. Σε αυτήν την περίπτωση, θα ζωγραφίσουμε πάνω από το τρέχον κελί και θα μετακινήσουμε 1 κελί προς τα δεξιά και το πρόγραμμα θα μοιάζει με αυτό:
χρησιμοποιήστε το Robot
αλγ
νωρίς

ζωγραφίζω

δεξιά

ζωγραφίζω

δεξιά

ζωγραφίζω

δεξιά

ζωγραφίζω

δεξιά

ζωγραφίζω

δεξιά

ζωγραφίζω

δεξιά

ζωγραφίζω

δεξιά

Όπως μπορείτε να δείτε, οι εντολές για ζωγραφική από πάνω και προς τα δεξιά επαναλαμβάνονται 7 φορές. Ας ξαναγράψουμε τώρα το πρόγραμμα χρησιμοποιώντας έναν βρόχο. Παρεμπιπτόντως, για να εισαγάγετε έναν κύκλο στο πρόγραμμά σας, μπορείτε να μεταβείτε στο μενού Εισάγετεεπιλέξτε αντικείμενο nts-raz-ktsή πατήστε έναν από τους συνδυασμούς πλήκτρων Esc, Π(ρωσικό γράμμα P) ή Esc, H(λατινικό γράμμα Η). Και τα πλήκτρα πρέπει να πατηθούν διαδοχικά- πρώτα Esc, αφήστε το και μόνο μετά P ή H.

Λοιπόν, το δικό μας βρόχο πρόγραμμαθα μοιάζει με αυτό:

χρησιμοποιήστε το Robot

nts 7 φορές

ζωγραφίζω

δεξιά

Αν το τρέξουμε, θα δούμε ότι το αποτέλεσμα είναι το ίδιο - 7 γεμάτα κελιά. Ωστόσο, το πρόγραμμα έχει γίνει πιο σύντομο και πολύ πιο έξυπνο από αλγοριθμική άποψη!

Ως προθέρμανση και ενοποίηση, προτείνω να γράψετε ανεξάρτητα ένα πρόγραμμα για το ρομπότ, το οποίο θα σχεδιάσει ένα τετράγωνο με πλευρά 7 κελιών. Φυσικά χρησιμοποιώντας βρόχο. Περιμένω λύση στα σχόλια.

Βρόχος με συνθήκη.

Κατά την επίλυση του προβλήματος 19 του GIA στην πληροφορική με ένα ρομπότ, δεν θα λειτουργήσει η χρήση βρόχου με μετρητή. Δεδομένου ότι το πεδίο εκεί είναι συνήθως άπειρο και οι τοίχοι δεν έχουν συγκεκριμένο μήκος. Επομένως, δεν θα μπορούμε να προσδιορίσουμε τον αριθμό των επαναλήψεων για έναν βρόχο με μετρητή. Αλλά δεν πειράζει - θα μας βοηθήσει βρόχος υπό όρους.

Ας επιστρέψουμε στη φυσική αγωγή και ας αλλάξουμε το πρόβλημα. Άλλωστε, κάποιος μπορεί να μην κάνει 7 squats, ενώ κάποιος άλλος μπορεί να κάνει 27. Μπορεί αυτό να ληφθεί υπόψη κατά τη δημιουργία ενός κύκλου; Φυσικά. Μόνο που τώρα δεν θα χρησιμοποιήσουμε μετρητή (τον αριθμό των επαναλήψεων), αλλά συνθήκη. Για παράδειγμα, ενώ δεν είστε κουρασμένοι, κάντε squats. Σε αυτή την περίπτωση, το άτομο δεν θα κάνει συγκεκριμένο αριθμό squats, αλλά θα κάνει οκλαδόν μέχρι να κουραστεί. Και ο βρόχος μας σε μια αφηρημένη γλώσσα θα μοιάζει με αυτό:

ενώ ΟΧΙ κουρασμενος

κάνε ένα squat

τέλος του κύκλου

Τα λόγια δεν κουράζονται στην περίπτωσή μας - αυτή είναι μια προϋπόθεση. Όταν είναι αληθές, ο βρόχος εκτελείται. Εάν είναι false (κουρασμένο) το σώμα του βρόχου δεν θα εκτελεστεί. Το ρομπότ εκτελεστής έχει αρκετές προϋποθέσεις

ελεύθερο από ψηλά

από κάτω ελεύθερα

έφυγε ελεύθερα

δικαίωμα ελεύθερα

επάνω τοίχος

κάτω τοίχο

αριστερός τοίχος

δεξιός τοίχος

Αλλά στην συνθήκη του προβλήματος 19 του ΓΙΑ υποδεικνύονται μόνο τα πρώτα 4. Άρα θα χρησιμοποιήσουμε μόνο αυτά.

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

Ας διατυπώσουμε πρώτα λεκτικός αλγόριθμος- δηλαδή θα περιγράψουμε με λόγια τι πρέπει να κάνει το Ρομπότ. Αυτός ο αλγόριθμος θα ακούγεται κάπως έτσι:

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

Ως αποτέλεσμα, το ρομπότ θα τρέξει μέσα από όλα τα κελιά προς τα δεξιά και θα ζωγραφίσει πάνω τους μέχρι να υπάρχει ένας τοίχος στα δεξιά.

Ο πηγαίος κώδικας για το πρόγραμμα Robot μας θα είναι κάπως έτσι:

χρησιμοποιήστε το Robot

Το nts μέχρι στιγμής στα δεξιά είναι δωρεάν

δεξιά

ζωγραφίζω

Ως αποτέλεσμα της εκτέλεσης αυτού του προγράμματος, θα δούμε την παρακάτω εικόνα: