Khiryanov Timofey Fedorovich


Ο αλγόριθμος στη γλώσσα KuMir είναι γραμμένος ως εξής:

alg algorithm_type algorithm_name (περιγραφή ορισμάτων και αποτελεσμάτων)
δίνεται μια συνθήκη_εφαρμογής_αλγόριθμου
χρειάζεστε το target_of_execution_of_algorithm
νωρίς
ακολουθία εντολών
ενάντιος

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

Οι απλούστεροι αλγόριθμοι

Ας εξετάσουμε τον ακόλουθο βοηθητικό αλγόριθμο για τον εκτελεστή Draftsman.

Παράδειγμα αλγορίθμου

alg τετράγωνο
νωρίς
χαμηλώστε το στυλό
διάνυσμα κίνησης(0,2)
διάνυσμα κίνησης (2,0)
μετατόπιση κατά διάνυσμα(0,-2)
διάνυσμα κίνησης(-2,0)
σηκώστε το στυλό
ενάντιος

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

Αλγόριθμοι με ορίσματα

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

Παράδειγμα αλγορίθμου

alg τετράγωνο (arg res)
νωρίς
χαμηλώστε το στυλό
μετατόπιση κατά διάνυσμα(0, a)
μετατόπιση κατά διάνυσμα(a, 0)
μετατόπιση κατά διάνυσμα(0, -а)
μετατόπιση κατά διάνυσμα(-a, 0)
σηκώστε το στυλό
ενάντιος

Η λέξη arg σημαίνει ότι ο αλγόριθμος έχει διαφωνία(α) και το θέμα είναι ότι το επιχείρημα είναι πραγματικού τύπου. Η εντολή για να καλέσετε έναν τέτοιο αλγόριθμο μπορεί να μοιάζει

(σε αυτή την περίπτωση θα σχεδιαστεί ένα τετράγωνο 2x2) ή, για παράδειγμα,
(στην περίπτωση αυτή θα τραβηχτεί τετράγωνο 5x5).

Αλγόριθμοι με αποτελέσματα

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

Παράδειγμα αλγόριθμου με αποτελέσματα

alg hypotenuse (res a, b, res res c)
δίνεται a >= 0 και b >= 0 | μήκη των ποδιών ενός τριγώνου
ανάγκη | c = μήκος της υποτείνουσας αυτού του τριγώνου
νωρίς
c:= sqrt(a ** 2 + b ** 2)
ενάντιος

Εδώ είναι η επίσημη λέξη Τομήυποδεικνύει ότι η τιμή c είναι το αποτέλεσμα και η τιμή της θα αλλάξει στην πορεία του αλγορίθμου. Για παράδειγμα, μετά από κλήση

υποτείνουσα(3, 4, γ)

Η τιμή c θα πάρει την τιμή 5.

Αλγόριθμοι-διαδικασίες και αλγόριθμοι-συναρτήσεις

Τα παραδείγματα που συζητήθηκαν παραπάνω είναι αλγόριθμοι-διαδικασίες. Στο Kumir υπάρχουν επίσης συναρτήσεις-αλγόριθμοι. Συνάρτηση αλγορίθμου μετά την εκτέλεση επιστρέφει την τιμή του αποτελέσματος.
Κανόνες περιγραφήςαλγόριθμοι-διαδικασίες και αλγόριθμοι-συναρτήσεις έχουν δύο διαφορές.
Πρώτον, για αλγόριθμους-συναρτήσεις στη θέση τους algorithm_typeπρέπει να καθοριστεί ένας από τους απλούς τύπους αλγοριθμική γλώσσα(πράγμα, ακέραιος κ.λπ.) που ορίζει τον τύπο των τιμών που επιστρέφει αυτή η συνάρτηση.
Δεύτερον, στο σώμα του αλγορίθμου-συνάρτησης είναι απαραίτητο να χρησιμοποιηθεί η τιμή υπηρεσίας αξία, στο οποίο εκχωρείται η υπολογισμένη τιμή της συνάρτησης. Η περιγραφή του είναι ο τίτλος του αλγορίθμου, αλλά διαφορετικά η τιμή val χρησιμοποιείται με τον ίδιο τρόπο όπως κάθε άλλη ενδιάμεση τιμή. (Στο κύριο μέρος της διαδικασίας αλγορίθμου, χρησιμοποιήστε την τιμή ειναι ΑΠΑΓΟΡΕΥΜΕΝΟ.)
Κλήση αλγορίθμου-διαδικασίαςείναι μια ξεχωριστή εντολή της αλγοριθμικής γλώσσας και έχει τη μορφή:
Ρομπότ ελέγχου εκτελεστών στο σύστημα KUMIR

Το ρομπότ υπάρχει σε ένα συγκεκριμένο περιβάλλον (ορθογώνιο καρό πεδίο). Οι τοίχοι μπορούν να βρίσκονται ανάμεσα σε ορισμένα κελιά του πεδίου. Ορισμένα κελιά ενδέχεται να είναι σκιασμένα (Εικ. 3.11).

Το ρομπότ καταλαμβάνει ακριβώς ένα κελί του πεδίου.

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

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

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

Ο
λάθη: 1 συντακτικό; 2. λογικό

Οι περιγραφές της σκηνής αποθηκεύονται σε αρχεία κειμένουειδική μορφή (μορφή .fil).

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

Σπίτι- το περιβάλλον στο οποίο τοποθετείται αναγκαστικά το Ρομπότ στην αρχή της εκτέλεσης του προγράμματος χρησιμοποιώντας το Ρομπότ.

ΔΙΑΔΙΚΑΣΙΑ ΛΕΙΤΟΥΡΓΙΑΣ:


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

2. Προσδιορίστε τον Ανάδοχο:

Εισαγωγή μενού → Χρήση ρομπότ

3. Γράψτε έναν αλγόριθμο για την επίλυση του προβλήματος.

4. Εκτελέστε τον αλγόριθμο (Μενού Εκτέλεση → Συνεχής εκτέλεση / F9)

Το σύστημα εντολών του ρομπότ εκτελεστή στο σύστημα KUMIR


Ομάδα

Δράση

πάνω

Το ρομπότ ανεβαίνει 1 κελί

πολύ κάτω

Το ρομπότ κινείται προς τα κάτω 1 κελί

αριστερά

Το ρομπότ μετακινεί 1 κελί προς τα αριστερά

σωστά

Το ρομπότ μετακινεί 1 κελί προς τα δεξιά

ζωγραφίζω

Το ρομπότ ζωγραφίζει το κελί στο οποίο βρίσκεται

δικαίωμα δωρεάν

Το ρομπότ ελέγχει την εκτέλεση του αντίστοιχου απλόςόροι

έμεινε ελεύθερος



πάνω χαλαρό



κάτω χαλαρό



το κελί είναι σκιασμένο



κλουβί καθαρό



Κυκλικοί αλγόριθμοι

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

Σώμα βρόχου -ένα σύνολο επαναλαμβανόμενων ενεργειών.

Κατάσταση - Boolean έκφραση (απλή ή σύνθετη (σύνθετη))
Τύποι κύκλου:

1.Βρόχος "Επανάληψη n φορές" 2. Επανάληψη "Αντίο"
nc n φορές nts αντίο
. . Σώμα βρόχου. . Σώμα βρόχου
kts kts

Παράδειγμα: nts αντίοδικαίωμα δωρεάν


Γενική προβολή του κύκλου "Επανάληψη n φορές:

ΕΠΑΝΑΛΗΨΗ n ΦΟΡΕΣ

ΤΟ ΤΕΛΟΣ
kts

Γενική άποψη του βρόχου while:

ΕΝΩ ΝΑ ΚΑΝΟΥΜΕ

ΤΟ ΤΕΛΟΣ
Σύνθετες συνθήκεςσχηματίζεται από ένα ή περισσότερα απλές συνθήκεςκαι λόγια υπηρεσίας ΚΑΙ, Ή, ΟΧΙ.


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

Αφήστε τον Α - δωρεάν στην κορυφήΣΤΟ - δωρεάν στα δεξιάτότε η σύνθετη συνθήκη Α και Β- δωρεάν στην κορυφή ΚΑΙ δωρεάν στα δεξιά.


Σύνθετη κατάσταση Α Ή Β ικανοποιείται όταν ικανοποιείται τουλάχιστον μία από τις δύο απλές προϋποθέσεις που περιλαμβάνονται σε αυτήν: επάνω δωρεάν Ή δικαίωμα δωρεάν
Σύνθετη κατάσταση ΔΕΝ ΕΙΝΑΙ- πληρούται όταν δεν πληρούται η προϋπόθεση Α.

Παράδειγμα:Έστω A ένα σκιασμένο κελί (απλή συνθήκη).

Π Έλεγχος της συνθήκης της ένωσης ΟΧΙ Α:

α) Α - έγινε, ΟΧΙ Α (ΟΧΙ σκιασμένο) - δεν έγινε.

β) Α ​​- δεν έγινε, ΟΧΙ Α (ΟΧΙ σκιασμένο) - έγινε.


Εντολή υποκαταστήματος

Διακλάδωση -μια μορφή οργάνωσης ενεργειών κατά την οποία, ανάλογα με την εκπλήρωση ή τη μη εκπλήρωση μιας συγκεκριμένης προϋπόθεσης, εκτελείται είτε η μία είτε η άλλη ακολουθία ενεργειών.

Γενική άποψη της εντολής IF:

ΑΝ ΕΠΕΙΤΑ ΣΕ ΔΙΑΦΟΡΕΤΙΚΗ ΠΕΡΙΠΤΩΣΗ

ΤΟ ΤΕΛΟΣ

Στη γλώσσα KUMIR:

Πλήρης διακλάδωση: Μερική διακλάδωση:
αν έπειτα αν έπειτα

σε διαφορετική περίπτωση

όλα όλα

Βοηθητικός αλγόριθμος- ένας αλγόριθμος που λύνει κάποιο υποπρόβλημα του κύριου προβλήματος.

Στο σύστημα KUMIR βοηθητικούς αλγόριθμουςγράφονται στο τέλος του κύριου προγράμματος (μετά τη λέξη υπηρεσίας ενάντιος) καλούνται για εκτέλεση στο κύριο πρόγραμμα ονομαστικά.

ΣΤΟ έρευνες και εργασίες

1. Δώστε όλους τους αλγόριθμους των τριών εντολών που θα μετακινήσουν το Ρομπότ από την αρχική του θέση στο κελί Β.

Υπάρχει αλγόριθμος για αυτήν την εργασία, κατά την οποία το ρομπότ κάνει:

α) δύο βήματα β) τέσσερα βήματα. γ) πέντε βήματα. δ) επτά βήματα;


  1. Ο Petya έφτιαξε έναν αλγόριθμο που μεταφέρει το ρομπότ από το κελί Α στο κελί Β με μερικά κελιά ζωγραφισμένα. Τι πρέπει να κάνει ο Κόλια με αυτόν τον αλγόριθμο για να αποκτήσει έναν αλγόριθμο που θα μεταφέρει το ρομπότ από το Β στο Α και θα γεμίσει τα ίδια κελιά;


7. Είναι γνωστοί δύο βοηθητικοί αλγόριθμοι ρομπότ

Σχεδιάστε τι συμβαίνει όταν το ρομπότ εκτελεί τους ακόλουθους βασικούς αλγόριθμους:


ένα)

nc 5 φορές


πρότυπο_1

σωστά; σωστά;


σι)

nc 7 φορές


πρότυπο_2

σωστά; σωστά


σε)
σωστά; σωστά; σωστά

πάνω; πάνω

σωστά; σωστά; σωστά

πολύ κάτω; πολύ κάτω


ΣΟΛ)
σωστά; σωστά
σωστά; σωστά

8. Δημιουργήστε αλγόριθμους με τους οποίους το ρομπότ θα ζωγραφίσει πάνω από τα καθορισμένα κελιά:



9. Είναι γνωστό ότι κάπου στα δεξιά του Ρομπότ υπάρχει ένας τοίχος. Δημιουργήστε έναν αλγόριθμο, υπό τον έλεγχο του οποίου το Ρομπότ θα ζωγραφίσει πάνω από μια σειρά από κελιά μέχρι τον τοίχο και θα επιστρέψει στην αρχική του θέση.

10. Είναι γνωστό ότι κάπου στα δεξιά του Ρομπότ υπάρχει ένα σκιασμένο κελί.

ΑΠΟ αφήστε τον αλγόριθμο, υπό τον έλεγχο του οποίου το Ρομπότ θα ζωγραφίσει έναν αριθμό κελιών μέχρι το σκιασμένο κελί και θα επιστρέψει στην αρχική του θέση.

11. Είναι γνωστό ότι το Ρομπότ βρίσκεται κοντά στην αριστερή είσοδο του οριζόντιου διαδρόμου.

12. Είναι γνωστό ότι το Ρομπότ βρίσκεται κάπου στον οριζόντιο διάδρομο. Κανένα από τα κελιά του διαδρόμου δεν είναι βαμμένο.

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


13. Σε μια σειρά δέκα κελιών στα δεξιά του ρομπότ, ορισμένα κελιά είναι σκιασμένα.

ΑΠΟ αφήστε τον αλγόριθμο που ζωγραφίζει τα κελιά:

α) κάτω από κάθε σκιασμένο κελί.

β) πάνω και κάτω από κάθε σκιασμένο κελί.


14. Τι μπορεί να ειπωθεί για την ορθότητα του παρακάτω τμήματος του αλγορίθμου;

nts αντίοτο κελί είναι σκιασμένο

ΑΝδικαίωμα δωρεάν ΕΠΕΙΤΑ

σωστά; ζωγραφίζω

προς την
ντο

15. Γράψτε ένα πρόγραμμα με το οποίο το Ρομπότ μπορεί να φτάσει στο κελί Β και στους τρεις λαβύρινθους.


16. Γράψτε ένα πρόγραμμα, μετά από το οποίο το Ρομπότ θα μπορεί να πάει κατά μήκος του διαδρόμου από την κάτω αριστερή γωνία του χωραφιού προς την επάνω δεξιά. Ο διάδρομος έχει πλάτος ενός κελιού και εκτείνεται προς την κατεύθυνση από αριστερά-κάτω-δεξιά-επάνω. Ένα παράδειγμα πιθανού διαδρόμου φαίνεται στο σχήμα.

Ζ

adachi GIA


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

  1. Προς την
    Απαραίτητη

    Δεδομένος
    διάδρομος 2. Το ρομπότ βρίσκεται στο πάνω κελί ενός στενού κάθετου διαδρόμου. Το πλάτος του διαδρόμου είναι ένα κελί, το μήκος του διαδρόμου μπορεί να είναι αυθαίρετο.

Μια πιθανή παραλλαγή της αρχικής θέσης του ρομπότ φαίνεται στο σχήμα (το ρομπότ υποδεικνύεται με το γράμμα "P")

Γράψτε έναν αλγόριθμο για το Ρομπότ που γεμίζει όλα τα κελιά μέσα στο διάδρομο και επαναφέρει το ρομπότ στην αρχική του θέση. Για παράδειγμα, για την παραπάνω εικόνα, το ρομπότ πρέπει να ζωγραφίσει πάνω από τα ακόλουθα κελιά (βλ. εικόνα):


  1. Υπάρχει ένας μακρύς οριζόντιος τοίχος στο ατελείωτο χωράφι. Το μήκος του τοίχου είναι άγνωστο. Το ρομπότ βρίσκεται σε ένα από τα κλουβιά ακριβώς πάνω από τον τοίχο. Η αρχική θέση του ρομπότ είναι επίσης άγνωστη. Μία από τις πιθανές θέσεις:
H


Απαραίτητη

Δεδομένος
Γράψτε έναν αλγόριθμο για το Ρομπότ που ζωγραφίζει όλα τα κελιά πάνω και δίπλα στον τοίχο, ανεξάρτητα από το μέγεθος του τοίχου και την αρχική θέση του ρομπότ. Για παράδειγμα, για το δεδομένο σχέδιο, το ρομπότ πρέπει να ζωγραφίσει πάνω από τα ακόλουθα κελιά:

Η τελική θέση του ρομπότ μπορεί να είναι αυθαίρετη. Κατά την εκτέλεση του αλγόριθμου, το Robot δεν πρέπει να καταστραφεί.



  1. Υπάρχει ένας μακρύς κατακόρυφος τοίχος στο άπειρο πεδίο. Το μήκος του τοίχου είναι άγνωστο. Το ρομπότ βρίσκεται σε ένα από τα κλουβιά που βρίσκονται ακριβώς στα δεξιά του τοίχου. Η αρχική θέση του ρομπότ είναι επίσης άγνωστη. Μία από τις πιθανές θέσεις του ρομπότ φαίνεται στο σχήμα (το ρομπότ σημειώνεται με το γράμμα "P"): Γράψτε έναν αλγόριθμο για εργασία που ζωγραφίζει όλα τα κελιά δίπλα στον τοίχο: στα αριστερά, ξεκινώντας από την κορυφή άβαφο και μέσα από ένα? στα δεξιά, ξεκινώντας από κάτω σκιασμένο και μέσω ενός. Το ρομπότ πρέπει να ζωγραφίζει μόνο τα κελιά που ικανοποιούν αυτή η συνθήκη. Για παράδειγμα, για το παραπάνω σχήμα, το ρομπότ πρέπει να συμπληρώσει τα ακόλουθα κελιά (βλ. εικόνα): Η τελική θέση του ρομπότ μπορεί να είναι αυθαίρετη. Ο αλγόριθμος πρέπει να λύσει το πρόβλημα για ένα αυθαίρετο μέγεθος τοίχου και οποιαδήποτε έγκυρη αρχική θέση του ρομπότ. Κατά την εκτέλεση του αλγόριθμου, το ρομπότ δεν πρέπει να συμπτύσσεται.


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


H γράψτε έναν αλγόριθμο για το Ρομπότ που χρωματίζει τα κελιά που βρίσκονται δίπλα στον τοίχο, από πάνω και κάτω, ξεκινώντας από αριστερά και μέσα από ένα. Το ρομπότ πρέπει να ζωγραφίζει μόνο τα κελιά που πληρούν αυτήν την προϋπόθεση. Για παράδειγμα, για το δεδομένο σχήμα α) το Ρομπότ πρέπει να ζωγραφίσει πάνω από τα παρακάτω κελιά (βλ. Εικ. β).

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



R

  1. Υπάρχει ένας μακρύς κατακόρυφος τοίχος στο άπειρο πεδίο. Το μήκος του τοίχου είναι άγνωστο. Το ρομπότ βρίσκεται σε ένα από τα κλουβιά που βρίσκονται ακριβώς στα αριστερά του τοίχου. Η αρχική θέση του ρομπότ είναι επίσης άγνωστη. Μία από τις πιθανές θέσεις του ρομπότ φαίνεται στο σχήμα (το ρομπότ σημειώνεται με το γράμμα "P"):
Γράψτε για εργασία έναν αλγόριθμο που ζωγραφίζει όλα τα κελιά που βρίσκονται δίπλα στον τοίχο:

  • όλα στα αριστερά?

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

σι
1102_GIA2011

Υπάρχουν δύο οριζόντιοι τοίχοι στο άπειρο πεδίο. Το μήκος των τοίχων είναι άγνωστο. Η απόσταση μεταξύ των τοίχων είναι άγνωστη. Το ρομπότ βρίσκεται πάνω από τον κάτω τοίχο σε ένα κλουβί που βρίσκεται στο αριστερό του άκρο. Γράψτε έναν αλγόριθμο για το Ρομπότ που ζωγραφίζει όλα τα κελιά που βρίσκονται πάνω από τον κάτω τοίχο και κάτω από τον επάνω τοίχο και δίπλα τους. Το ρομπότ πρέπει να ζωγραφίζει μόνο τα κελιά που πληρούν αυτήν την προϋπόθεση. Για παράδειγμα, για το παραπάνω σχέδιο, το ρομπότ πρέπει να συμπληρώσει τα ακόλουθα κελιά (βλ. εικόνα):

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


ΣΤΟ
1103_GIA_2011


Υπάρχει ένα οριζόντιο τείχος στο άπειρο πεδίο. Το μήκος του τοίχου είναι άγνωστο. Από το δεξί άκρο του τοίχου εκτείνεται προς τα κάτω ένας κατακόρυφος τοίχος, επίσης άγνωστου μήκους. Το ρομπότ βρίσκεται πάνω από έναν οριζόντιο τοίχο σε ένα κλουβί που βρίσκεται στο αριστερό του άκρο. Το σχήμα δείχνει ένα από πιθανούς τρόπουςτη θέση των τοίχων και του Ρομπότ (το ρομπότ υποδεικνύεται με το γράμμα "P").

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

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

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

αλγτετράγωνο( arg πράγμαένα)
νωρίς
. χαμηλώστε το στυλό
. μετατόπιση κατά διάνυσμα(0,a)
. μετατόπιση κατά διάνυσμα(α, 0)
. μετατόπιση κατά διάνυσμα(0,-a)
. μετατόπιση κατά διάνυσμα(-a,0)
. σηκώστε το στυλό
ενάντιος

Ρεκόρ " αλγτετράγωνο( arg πράγμαα)" σημαίνει ότι ο αλγόριθμος "τετράγωνο" έχει ένα όρισμα (arg) "a", το οποίο μπορεί να είναι ένας αυθαίρετος πραγματικός (πραγματικός) αριθμός. Για να καλέσετε αυτόν τον αλγόριθμο, πρέπει να γράψετε, για παράδειγμα, "τετράγωνο (2)" - παίρνουμε ένα τετράγωνο με πλευρά 2 ή "τετράγωνο (3)" - παίρνουμε ένα τετράγωνο με πλευρά 3 κ.λπ. Κάποια συγκεκριμένη τιμή Το "a" θα λαμβάνει μόνο ενώ το πρόγραμμα εκτελείται κατά τη διάρκεια του αντίστοιχου βοηθητικού αλγόριθμου. Και παντού αντί για "a" αυτός ο αριθμός θα αντικατασταθεί από τον υπολογιστή.

Το πρόγραμμα για τη σχεδίαση αυτής της εικόνας μπορεί να είναι ως εξής:

χρησιμοποιήστε το συρτάρι
αλγτετράγωνα
νωρίς
. μετακινηθείτε σε ένα σημείο(1,1)
. τετράγωνο (2)
. μετακινηθείτε σε ένα σημείο(4,1)
. τετράγωνο (3)
. μετακινηθείτε σε ένα σημείο(8,1)
. τετράγωνο (4)
. μετακινηθείτε σε ένα σημείο(13,1)
. τετράγωνο (5)
. μετακινηθείτε σε ένα σημείο(0,0)
ενάντιος
αλγτετράγωνο( arg πράγμαένα)
νωρίς
. χαμηλώστε το στυλό
. μετατόπιση κατά διάνυσμα(0,a)
. μετατόπιση κατά διάνυσμα(α, 0)
. μετατόπιση κατά διάνυσμα(0,-a)
. μετατόπιση κατά διάνυσμα(-a,0)
. σηκώστε το στυλό
ενάντιος

Εργασία Β. Ας διδάξουμε στον Συντάκτη νέες εντολές. Αφήστε μια από τις εντολές να ονομάζεται " γραμμή (arg th x1,y1,x2,y2)» – να σχεδιάσετε μια γραμμή από το σημείο (x1,y1) στο σημείο (x2,y2).

αλγγραμμή( arg πράγμα x1, y1, x2, y2)
νωρίς
. μετακινηθείτε σε ένα σημείο(x1,y1)
. χαμηλώστε το στυλό
. μετακινηθείτε σε ένα σημείο(x2,y2)
. σηκώστε το στυλό
ενάντιος

Εργασία Β. Αφήστε τη δεύτερη εντολή να ονομάζεται " ορθογώνιο (arg th x1,y1,x2,y2)για να σχεδιάσετε ένα ορθογώνιο. Το σημείο (x1,y1) είναι ένα σημείο της διαγωνίου AC του ορθογωνίου, το σημείο (x2,y2) είναι το αντίθετο. Πριν γράψετε τον αλγόριθμο, πρέπει να καταλάβετε ποιες είναι οι συντεταγμένες των άλλων δύο σημείων.

Ένας βοηθητικός αλγόριθμος μπορεί να μοιάζει με αυτό:

αλγορθογώνιο παραλληλόγραμμο( arg πράγμα x1, y1, x2, y2)
νωρίς
. μετακινηθείτε σε ένα σημείο(x1,y1)
. χαμηλώστε το στυλό
. μετακινηθείτε σε ένα σημείο(x2,y1)
. μετακινηθείτε σε ένα σημείο(x2,y2)
. μετακινηθείτε σε ένα σημείο(x1,y2)
. μετακινηθείτε σε ένα σημείο(x1,y1)
. σηκώστε το στυλό
ενάντιος

Εργασία Γ. Τώρα χρησιμοποιώντας αυτές τις εντολές θα σχεδιάσουμε ένα σπίτι:

χρησιμοποιήστε το συρτάρι
αλγσπίτι
νωρίς
. ορθογώνιο (2,1,8,5)
. ορθογώνιο (3,2,5,4)
. ορθογώνιο (6,1,7,4)
. γραμμή (1,4,5,8)
. γραμμή(5,8,9,4)
ενάντιος
αλγγραμμή( arg πράγμα x1, y1, x2, y2)
νωρίς
. μετακινηθείτε σε ένα σημείο(x1,y1)
. χαμηλώστε το στυλό
. μετακινηθείτε σε ένα σημείο(x2,y2)
. σηκώστε το στυλό
ενάντιος
αλγορθογώνιο παραλληλόγραμμο( arg πράγμα x1, y1, x2, y2)
νωρίς
. μετακινηθείτε σε ένα σημείο(x1,y1)
. χαμηλώστε το στυλό
. μετακινηθείτε σε ένα σημείο(x2,y1)
. μετακινηθείτε σε ένα σημείο(x2,y2)
. μετακινηθείτε σε ένα σημείο(x1,y2)
. μετακινηθείτε σε ένα σημείο(x1,y1)
. σηκώστε το στυλό
ενάντιος

Σημείωση: φυσικά, μαζί με αυτές τις εντολές, μπορούμε να χρησιμοποιήσουμε τις τυπικές εντολές του draftsman (μετακίνηση σε σημείο, μετακίνηση σε διάνυσμα ...).

Εργασία Δ. Σχεδιάστε μόνοι σας τι θα σχεδιάσει το Συρτάρι εκτελώντας τον αλγόριθμο:

χρησιμοποιήστε το συρτάρι
αλγσπειροειδής
νωρίς
. μετακινηθείτε σε ένα σημείο(3,3)
. χαμηλώστε το στυλό
. πηνίο (1); πηνίο (3); πηνίο (5); πηνίο (7); πηνίο (9)
. σηκώστε το στυλό
ενάντιος
αλγσπείρα( arg πράγμαένα)
νωρίς
. μετατόπιση κατά διάνυσμα(α, 0)
. μετατόπιση κατά διάνυσμα(0, -a)
. μετατόπιση κατά διάνυσμα(-a-1,0)
. μετατόπιση κατά διάνυσμα(0, a+1)
ενάντιος.

ΣΧΕΔΙΟ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

Θέμα του μαθήματος

"Χρήση βοηθητικών αλγορίθμων για τον συντάκτη"

Ηλικία μαθητών

1 2 χρόνια (6 τάξη)

Τύπος μαθήματος

Αφομοίωση νέας γνώσης

Φόρμα μαθήματος

Αρθρωτό μάθημα

Σκοπός του μαθήματος:

Να διαμορφώσει την κατανόηση των μαθητών για την έννοια του «βοηθητικού αλγόριθμου» ως μία από τις μεθόδους βελτιστοποίησης κώδικα προγράμματος

Στόχοι μαθήματος:

    να αναπτύξουν τις αντιλήψεις των μαθητών για τους ερμηνευτές

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

    εισάγουν βοηθητικούς αλγόριθμους

    εδραιώνουν τις δεξιότητες διαχείρισης του ερμηνευτή

Προγραμματισμένα αποτελέσματα

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

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

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

Υλικό και τεχνικό εξοπλισμό (διδακτικά εργαλεία κ.λπ.)

Δάσκαλος: παρουσίαση μαθήματος? Ελεημοσύνη

Μαθητης σχολειου: στυλό, μολύβι, χάρακας, εγχειρίδιο, τετράδιο εργασίας

UMK (ακολουθία βίντεο)

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

Μεταχειρισμένα υλικά

Πληροφορική: εγχειρίδιο για τους βαθμούς 5-6 / L.L. Bosova, A.Yu. Μπόσοβα. – Μ.: Binom. Εργαστήριο Γνώσης, 2014

Πληροφορική: Σχολικό βιβλίο για την 6η τάξη / L.L. Bosova, A.Yu. Μπόσοβα. – Μ.: Binom. Εργαστήριο Γνώσης, 2013

Πληροφορική: Τετράδιο Εργασιών ΣΤ τάξης / Λ.Λ. Bosova, A.Yu. Μπόσοβα. – Μ.: Binom. Εργαστήριο Γνώσης, 2013

Θέμα: Βοηθοί Αλγόριθμοι για Σχεδιαστή

Δρομολόγηση(ενότητα) μάθημα

Βαθμολογία βαθμολογίας

(μέγ. βαθμολογία)

UE - 0

2 λεπτά.

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

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

    θα βελτιώσετε τις δεξιότητές σας στο περιβάλλον προγραμματισμού KuMir

    θα αναπτύξετε λογική σκέψη, κριτική στάση στις πληροφορίες που λαμβάνετε

UE - 1

Επικαιροποίηση βασικών γνώσεων.

Στόχος : ενημέρωση των γνώσεων που αποκτήθηκαν

Ασκηση 1.

α) μεταβείτε στο σημείο (5,2) __________

β) μετακίνηση στο διάνυσμα (3,4) _______

γ) μεταβείτε στο σημείο (1,4) __________

Εργασία 2.

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

αλγ

νωρίς

    μετακίνηση στο σημείο (2,4)

    μετακίνηση στο σημείο (4,1)

    μετακίνηση στο σημείο (0,0)

ενάντιος

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

αλγ

νωρίς

    χαμηλώστε το στυλό

    μετατόπιση κατά διάνυσμα (0,3)

    διάνυσμα κίνησης (3,0)

    μετατόπιση κατά διάνυσμα (0,-3)

    μετακινήστε ένα διάνυσμα (-3,0)

ενάντιος

Διαβάστε προσεκτικά το γκολ του UE - 1

Δουλέψτε σε ζευγάρια

Ελέγξτε τον εαυτό σας με τις απαντήσεις γραμμένες στον πίνακα.

Η σωστά ολοκληρωμένη εργασία 1 υπολογίζεται σε 3 βαθμούς, 1 βαθμό για κάθε στοιχείο (α, β, γ)

Η σωστά ολοκληρωμένη εργασία 2 υπολογίζεται σε 2 βαθμούς, 1 βαθμό για κάθε στοιχείο (α, β)

Μέγιστο ποσόπόντοι για εργασία με UE-1 =5

____________

UE - 2

Εκμάθηση νέου υλικού.

13 λεπτά.

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

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

    Προσδιορίστε τα μειονεκτήματα ενός τέτοιου αλγορίθμου:

_________________________________

_________________________________

_________________________________

_________________________________

    Πώς μπορούν να αποφευχθούν αυτές οι δυσκολίες;

_________________________________

_________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

Διαβάστε προσεκτικά το γκολ του UE - 2

Ατομική εργασία με τις εργασίες 1 - 3

Για το στοιχείο 4, χρησιμοποιήστε το υλικό της παραγράφου 18 του σχολικού σας βιβλίου (σελ. 123-125), την παρουσίαση του δασκάλου

Συζήτηση των σημείων 1 - 4 - ομαδική εργασία σε μετωπική λειτουργία

Εργασία 5 - 6 κάντε μεμονωμένα

9

Αξιολόγηση εργασίας

Η εργασία 1-2 ολοκληρώθηκε σωστά για 1 βαθμό

____________

Η εργασία 3 υποδεικνύει τουλάχιστον 3 ελλείψεις - 1 βαθμός

_____________

Η εργασία 4 δείχνει πώς να λύσετε το πρόβλημα:

1 τρόπος = 1 βαθμός, 2 τρόποι = 2 βαθμοί

_____________

Εργασία 5. Υπάρχουν 6-8 αστέρια στο επίπεδο συντεταγμένων, το μέγεθος των οποίων αντιστοιχεί στον "Αστερίσκο" - 1 βαθμός

____________

Συντάχθηκε ο κύριος αλγόριθμος "Cosmos" - 3 βαθμοί

____________

UE - 3

Πρακτική δουλειά

Στόχος: Να διαμορφώσει τη δυνατότητα εργασίας με βοηθητικούς αλγόριθμους στο περιβάλλον προγραμματισμού KuMir

Ασκηση 1. Εφαρμόστε τον αλγόριθμο που έχετε μεταγλωττίσει στο σύστημα προγραμματισμού KuMir

Εργασία 2 (δημιουργική). Σκεφτείτε τι είδους αεροσκάφος μπορεί να είναι στο διάστημα:

α) σχεδιάστε το στο επίπεδο συντεταγμένων δίπλα στα αστέρια σε χαρτί

β) συμπληρώστε τον αλγόριθμό σας με τον κωδικό του αεροσκάφους, εφαρμόστε τον στο σύστημα προγραμματισμού KuMir

Διαβάστε προσεκτικά το γκολ του UE - 3

Ατομική εργασία με εργασίες

Αναφέρετε την ολοκλήρωση κάθε εργασίας στον δάσκαλο για έλεγχο

Ένα παράδειγμα φαίνεται στο Παράρτημα 1

Ο μέγιστος αριθμός πόντων για εργασία με UE-2 =6

Η εργασία 1 που ολοκληρώθηκε σωστά υπολογίζεται σε 2

Η εργασία 2 (δημιουργική) πλήρως ολοκληρωμένη υπολογίζεται σε 4 βαθμούς

_____________

UE - 4

Αντανάκλαση

Στόχος: Ελέγξτε την πρόοδό σας στην τάξη

Δώστε μια απάντηση σε κάθε ερώτηση

1. Διαβάστε ξανά τους στόχους του μαθήματος.

2. Έχετε πετύχει τους στόχους σας;

__________________________________

3. Τι εμπόδισε την επίτευξη των στόχων;

__________________________________

4. Τι σας δυσκόλεψε περισσότερο;

__________________________________

5. Τι δεν προκάλεσε δυσκολίες;

__________________________________

6. Πώς βαθμολογείτε τη δουλειά σας;

7. Σκόραρε λιγότερους από 20 πόντους; (αν ναι, τότε δούλεψε στο σπίτι και έχεις την ευκαιρία να ξαναδοκιμάσεις). Καλή τύχη!

Εργασία για το σπίτι:

Ελέγξτε όλες τις σημειώσεις που έγιναν στο μάθημα.

§18(3), αρ.6 στη σ. 128; Νο 216.

Διαβάστε προσεκτικά το γκολ της UE-4

Απάντησε στις ερωτήσεις

Υπολογίστε τον αριθμό των πόντων, βαθμολογήστε τον εαυτό σας (Παράρτημα 2, Παράρτημα 3)

ΕΦΑΡΜΟΓΕΣ

Συνημμένο 1

Ένα παράδειγμα ολοκληρωμένης εργασίας

Παράρτημα 2

Φύλλο ελέγχου

Επίθετο όνομα ______________________________________________

Παράρτημα 3

17 -19

(85 – 99%)

υψηλός

Είσαι απλά υπέροχος!

15 - 16

(75 – 84 %)

μέση τιμή

Λίγο ακόμα και θα είναι "5"

10 - 14

(50 – 74%)

μικρός

Πρόσεχε

1 - 9

(0,7 – 49%)

πολύ χαμηλά

Και τι σκέφτεσαι στην τάξη;

μηδενικό

Δεν παρακολούθησες το μάθημα;

Απαντήσεις

UE - 1

Ασκηση 1. Η αρχική θέση του Draftsman είναι το σημείο Α, στο οποίο θα μετακινηθεί εκτελώντας την εντολή:

α) μεταβείτε στο σημείο (5,2) ____φά ______

β) μετακίνηση στο διάνυσμα (3,4) __ντο ______

γ) μεταβείτε στο σημείο (1,4) ____ΕΝΑ ______

Εργασία 2. Η αρχική θέση του Draftsman είναι η προέλευση των συντεταγμένων, η πένα σηκώνεται. Εκτελέστε τον αλγόριθμο και καθορίστε τι σχήμα θα σχεδιάσει.

α) ΤΙΠΟΤΑ, ΔΕΝ ΥΠΗΡΧΕ ΕΝΤΟΛΗ ΝΑ ΚΑΤΕΒΕΙ ΤΟ ΜΕΝΛΟ

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

αλγ

νωρίς

    μετακίνηση στο σημείο (2,4)

    μετακίνηση στο σημείο (4,1)

    μετακίνηση στο σημείο (0,0)

ενάντιος

β) ΤΕΤΡΑΓΩΝΟ

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

αλγ

νωρίς

    χαμηλώστε το στυλό

    μετατόπιση κατά διάνυσμα (0,3)

    διάνυσμα κίνησης (3,0)

    μετατόπιση κατά διάνυσμα (0,-3)

    μετακινήστε ένα διάνυσμα (-3,0)

ενάντιος

UE - 2

    Πώς πρέπει να αλλάξει ο αλγόριθμος εάν ο Σχεδιαστής χρειάζεται να σχεδιάσει έναν έναστρο ουρανό με 20, 50, 1000 αστέρια;

Θα έχει περισσότερες ομάδες

    Πόσες σειρές θα πάρει ο αλγόριθμος για 10 αστέρια;

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

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

    Τοποθετήστε 6 - 8 αστέρια στο επίπεδο συντεταγμένων, το μέγεθος του καθενός πρέπει να αντιστοιχεί στον αστερίσκο που σχεδιάσατε στο τελευταίο μάθημα

    Γράψτε τον κύριο αλγόριθμο "Space" χρησιμοποιώντας τον αλγόριθμο "Asterisk" ως βοηθητικό αλγόριθμο

χρησιμοποιήστε το συρτάρι

αλγικό χώρο

νωρίς

μετακίνηση στο σημείο (1,1)

αστέρι

μετατόπιση κατά διάνυσμα (2, 2)

αστέρι

μετακινήστε ένα διάνυσμα (-2, 2)

αστέρι

μετατόπιση κατά διάνυσμα (2, 2)

αστέρι

ρουκέτα

μετάβαση στο σημείο (13,1)

αστέρι

μετακινήστε ένα διάνυσμα (-2, 2)

αστέρι

μετατόπιση κατά διάνυσμα (2, 2)

αστέρι

μετακινήστε ένα διάνυσμα (-2, 2)

αστέρι

ενάντιος

alg αστερίσκος

νωρίς

χαμηλώστε το στυλό

χρώμα σετ ("κίτρινο")

διάνυσμα κίνησης(1,2)

μετατόπιση κατά διάνυσμα(1,-2)

μετατόπιση κατά διάνυσμα(-2,1)

διάνυσμα κίνησης (2,0)

μετατόπιση κατά διάνυσμα(-2,-1)

σηκώστε το στυλό

ενάντιος

πύραυλος alg

νωρίς

μετακίνηση στο σημείο (6,1)

χαμηλώστε το στυλό

σετ χρώματος ("κόκκινο")

διάνυσμα κίνησης(0,1)

διάνυσμα κίνησης (1,1)

μετατόπιση κατά διάνυσμα(0,4)

διάνυσμα κίνησης (1,1)

μετατόπιση κατά διάνυσμα(1,-1)

μετατόπιση κατά διάνυσμα(0,-4)

μετατόπιση κατά διάνυσμα(1,-1)

μετατόπιση κατά διάνυσμα(0,-1)

μετατόπιση κατά διάνυσμα(-1,1)

μετατόπιση κατά διάνυσμα(-1,-1)

μετατόπιση κατά διάνυσμα(-1,1)

μετατόπιση κατά διάνυσμα(-1,-1)

σηκώστε το στυλό