Khiryanov Timofey Fedorovich

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

Υπό όρους εκτελέσιμος κώδικας

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

αν<условие>
έπειτα
<действия>
όλα

Εναλλακτική λύση

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

αν<условие>
έπειτα
<действия>
σε διαφορετική περίπτωση
<альтернативные действия>
όλα


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

Βρόχος με προϋπόθεση

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

nts αντίο<условие>
<тело цикла>
kts

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

Ένας βρόχος με μετασυνθήκη είναι ένας βρόχος στον οποίο η συνθήκη ελέγχεται μετά την εκτέλεση του σώματος του βρόχου. Από αυτό προκύπτει ότι το σώμα εκτελείται πάντα τουλάχιστον μία φορά. Στο Pascal αυτός ο βρόχος υλοποιείται από τον τελεστή επανάληψη..μέχρι, στο C είναι do…while .
Στη γλώσσα KuMir, ένας βρόχος με μετασυνθήκη έχει την ακόλουθη μορφή:

nc
<тело цикла>
cc_at<условие>

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

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

ολόκληρος
nc για ένα από 0 έως 9
... σώμα βρόχου
kts

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

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

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

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

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

Κατεβάστε:


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

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

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

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

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

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

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

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

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

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

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

Συνεδρία 1 (2 ώρες) Μάθημα 1.

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

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

  1. Περιγραφή του UCS του εκτελεστή, του περιβάλλοντος του εκτελεστή.

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

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

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

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

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

Λογικές εντολές: (έλεγχος συνθηκών)

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

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

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

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

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

Εάν συνθήκη τότε nts ενώ συνθήκη

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

όλα τα kts

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

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

Εάν συνθήκη τότε nts ενώ συνθήκη do

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

τέλος τέλος

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

σε KIM έκδοση επίδειξηςΗ μορφή εντολής 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.

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

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

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

alg kim 2009

νωρίς

αν όχι ο πάτος χαλαρός

μετά προς τα δεξιά

όλα

αν όχι ο πάτος χαλαρός

μετά προς τα δεξιά

όλα

αν όχι ο πάτος χαλαρός

μετά προς τα δεξιά

όλα

ενάντιος

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

alg kim 2010

νωρίς

αν όχι ο πάτος χαλαρός

μετά προς τα δεξιά

όλα

αν όχι ο πάτος χαλαρός

μετά προς τα δεξιά

όλα

αν όχι ο πάτος χαλαρός

μετά προς τα δεξιά

όλα

ενάντιος

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

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

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

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

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

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

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

αλγ

νωρίς

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

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

kts

nc ενώ το κάτω μέρος είναι ελεύθερο

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

kts

nc μέχρι να χαλαρώσει ο πάτος

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

kts

ενάντιος

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

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

αλγ

νωρίς

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

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

kts

ενάντιος

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

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

alg uch3

νωρίς

nc ακόμα (όχι επάνω χαλαρό) ή (όχι κάτω χαλαρό)

σωστά

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

έπειτα

ζωγραφίζω

όλα

kts

ενάντιος

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

alg uch4

νωρίς

βαφή;επάνω

nc μέχρι να χαλαρώσει σωστά

βαφή;πάνω;

kts

βαφή; σωστά

nc μέχρι να χαλαρώσει ο πάτος

βαφή;δεξιά;

kts

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

nc μέχρι να μείνει χαλαρό

βαφή;κάτω;

kts

βαφή, αριστερά

nc μέχρι πάνω χαλαρό

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

kts

ενάντιος

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

alg uch5

νωρίς

σωστά

nc μέχρι να χαλαρώσει ο πάτος

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

kts

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

nc ενώ έμεινε ελεύθερο

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

kts

nc μέχρι να μείνει χαλαρό

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

kts

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

nc ενώ κορυφαίο δωρεάν

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

kts

nc μέχρι πάνω χαλαρό

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

kts

ενάντιος

Δραστηριότητα 4 Μάθημα 1

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

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

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

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

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

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

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

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

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

Εργασία 1:

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

Λύση

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

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

Δραστηριότητα 4 Μάθημα 2

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

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

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

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

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

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

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

Δραστηριότητα 5 Μάθημα 1-2

Δοκιμή

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

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

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

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

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

1. Εισαγωγή

το σύστημα «KuMir» (το όνομα προέρχεται από τις λέξεις «Σύνολο Εκπαιδευτικών Κόσμων»), με το οποίο θα σας γνωρίσει αυτή η ηλεκτρονική έκδοση του σχολικού βιβλίου.
Οι προγραμματιστές της γλώσσας "KuMir" επεδίωξαν το στόχο να δημιουργήσουν μια απλή γλώσσα για το αρχικό μάθημα της επιστήμης των υπολογιστών που να ανταποκρίνεται στη σύγχρονη τεχνολογία προγραμματισμού και να επιτρέπει τη χρήση παραγωγής. Ως βάση λήφθηκε η σχολική αλγοριθμική γλώσσα. Η γλώσσα συμπληρώθηκε με κάποια χαρακτηριστικά που τη μετατρέπουν από εκπαιδευτική σε παραγωγική. Η γλώσσα έχει:
τύπους ολόκληρο, πράγμα, αναμμένο; το παραδοσιακό σύνολο πράξεων σε δεδομένα αυτών των τύπων (συμπεριλαμβανομένων των πράξεων σε συμβολοσειρές και τυπικό σετμαθηματικές συναρτήσεις);
συστοιχίες ( αυτί) καθορισμένους τύπους· δομικές δομές ελέγχου κύκλων, διακλάδωσης κ.λπ.
Το Kumir είναι ανοιχτό - η σύνδεση εξωτερικών εκτελεστών εμπλουτίζει τη γλώσσα με νέα χαρακτηριστικά: από τη διαχείριση βάσης δεδομένων και την εργασία με γεωμετρικά αντικείμενα έως την επέκταση του συνόλου έγκυρων αριθμητικών τύπων (σε αυτή την περίπτωση, η γλώσσα θα επιτρέψει την ανάμειξη νέων τύπων με υπάρχοντες αριθμητικούς τύπους στις εκφράσεις).
Μοντέρνα τεχνολογίαΟ προγραμματισμός μας διδάσκει να αναλύουμε ένα πρόγραμμα όχι μόνο σε υποπρογράμματα, αλλά και σε μεγαλύτερες μονάδες: σύνολα προγραμμάτων που λειτουργούν σε κοινά δεδομένα. ΣΤΟ διαφορετικές γλώσσεςπρογραμματισμός, τέτοιες μονάδες ονομάζονται διαφορετικά, στο KuMir μια τέτοια μονάδα ονομάζεται "Εκτελεστής". Η έννοια του ερμηνευτή είναι εξαιρετικά σημαντική στην πρακτική εργασία και θα πρέπει να εισαχθεί στα πρώτα δυνατά στάδια της εκπαίδευσης.
Η εμπειρία χρήσης του KuMir στη διδασκαλία και στην ανάπτυξη εκπαιδευτικού λογισμικού έχει δείξει ότι η γλώσσα είναι εύκολη στην εκμάθηση και ταυτόχρονα αρκετά ισχυρή ώστε να επεκτείνει μια ευρεία κατηγορία εργασιών παραγωγής.
Όπως το E-workshop, το KuMir είναι ένα ολοκληρωμένο σύστημα που περιλαμβάνει επεξεργαστής κειμένου, ένας σταδιακός μεταγλωττιστής με μηδενικό χρόνο απόκρισης, καθώς και ένας απλός και βολικός εντοπισμός σφαλμάτων. καλό όνομαγια ένα σύστημα αυτού του είδους - "Editor-Compiler": ενώ εισέρχεστε στο πρόγραμμά σας, ο μεταγλωττιστής το επεξεργάζεται και ανά πάσα στιγμή το πρόγραμμα είναι έτοιμο να εκτελεστεί χωρίς την παραμικρή καθυστέρηση.

2. Ονόματα και τύποι αξίας. Λειτουργίες KuMir

Τυχόν χαρακτήρες του ρωσικού και λατινικού αλφαβήτου, καθώς και αριθμοί, μπορούν να χρησιμοποιηθούν για τη σύνταξη ονομάτων μεταβλητών. Το όνομα δεν πρέπει να ξεκινά με αριθμό. Δεν υπάρχουν αυστηροί περιορισμοί στο μήκος των ονομάτων στο σύστημα KuMir, αλλά για ευκολία επεξεργασίας και αποφυγή υπερχείλισης γραμμών, οι μεταβλητές και οι αλγόριθμοι δεν θα πρέπει να δίνουν πολύ μεγάλα ονόματα. Συνήθως το όνομα επιλέγεται έτσι ώστε να μπορείτε να καταλάβετε σε τι προορίζεται ο αλγόριθμος. Κατά την επεξεργασία προγραμμάτων, θα πρέπει επίσης να θυμόμαστε ότι τα ρωσικά και τα λατινικά γράμματα, παρόμοια στην ορθογραφία, διακρίνονται από υπολογιστές. Για παράδειγμα, εάν όταν περιγράφει μια μεταβλητή με το όνομα A, ο χρήστης πληκτρολογεί "A" στο λατινικό αλφάβητο και στο κείμενο του αλγορίθμου προσπαθεί να έχει πρόσβαση σε αυτήν τη μεταβλητή πληκτρολογώντας το όνομά της στο ρωσικό αλφάβητο, τότε σε αυτή τη γραμμή το " το όνομα δεν έχει οριστεί" θα εμφανιστεί το μήνυμα στα "πεδία" .
Η αλγοριθμική γλώσσα του συστήματος προγραμματισμού KuMir χρησιμοποιεί τρεις τύπους μεγεθών: ακέραιους ( ολόκληρος), πραγματικό ( πράγμα) και με γράμματα ( litas).
Τύπος τιμής- ορίζει το σύνολο των τιμών που μπορεί να λάβει μια τιμή και το σύνολο των ενεργειών που μπορούν να εκτελεστούν με αυτήν την τιμή.
αξίαείναι ένα μεμονωμένο αντικείμενο πληροφοριών που έχει ένα όνομα, μια τιμή και έναν τύπο.

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

Για να υποδείξετε σημάδια λογικές πράξειςχρησιμοποιούνται σύμβολα:
= ίσος;
< >όχι ίσο?
< меньше;
> περισσότερα;
< = меньше или равно;
> = μεγαλύτερο ή ίσο.
Για τα πρακτικά, για την ιστορία, για καθαρά τυπικούς λόγους δύσκολες συνθήκεςλειτουργίες όπως: Και, Ή ΟΧΙ.
ΚΑΙ -
ταυτόχρονη εκπλήρωση των παραπάνω προϋποθέσεων (Χ > 0 και Χ< = 2);
Ή- εκπλήρωση τουλάχιστον μίας από τις προϋποθέσεις (X > 0 ή Y > 0).
ΔΕΝ- άρνηση.

3. Ενσωματωμένες λειτουργίες της γλώσσας KuMir

Ακολουθεί ένα παράδειγμα ενσωματωμένων λειτουργιών:

Εφεση

Λειτουργία

Τύποι

Διαφωνία

Λειτουργίες

ΑΜΑΡΤΙΑ(Χ) cos(Χ) T. G. (Χ) ΛΗΞΗ(Χ) LN(Χ) ABS (Χ) SQRT(Χ) MOD(ΕΝΑ,σι) int(Χ) πι

sine x συνημίτονο x εφαπτομένη x
εκθέτης x (πρώην) φύση. λογάριθμος x
ενότητα x
τετραγωνική ρίζα x
υπόλοιπο της διαίρεσης (Α έως Β)
το ακέραιο μέρος του αριθμού
ο αριθμός "pi" - 3,14159

πράγμα
πράγμα
πράγμα
πράγμα
πράγμα
πράγμα
πράγμα
πράγμα, στόχος
πράγμα
πράγμα

πράγμα
πράγμα
πράγμα
πράγμα
πράγμα
πράγμα
πράγμα
ολόκληρος
ολόκληρος
χωρίς επιχειρήματα

Ένα παράδειγμα γραφής αριθμητικών παραστάσεων σε αλγοριθμική γλώσσα:

4. Εντολές INPUT / OUTPUT

Συχνά απαιτείται να οργανωθεί μια ανταλλαγή πληροφοριών («διάλογος») μεταξύ ενός ατόμου και ενός υπολογιστή κατά τη διαδικασία εκτέλεσης ενός αλγορίθμου. Για να γίνει αυτό, η αλγοριθμική γλώσσα έχει ειδικές εντολές για πληροφορίες OUTPUT από τη μνήμη του υπολογιστή στην οθόνη και INPUT πληροφορίες από το πληκτρολόγιο (από ένα άτομο) στη μνήμη του υπολογιστή.
εντολή ENTER -μια εντολή με την οποία ορίζονται οι τιμές των μεταβλητών μέσω συσκευών εισόδου (πληκτρολόγιο).
Εντολή OUTPUT- μια εντολή με την οποία η τιμή της τιμής αντικατοπτρίζεται στη συσκευή εξόδου του υπολογιστή (οθόνη οθόνης).
Δεδομένου ότι οι τιμές χρησιμοποιούνται στην αλγοριθμική γλώσσα για την αποθήκευση πληροφοριών, οι εντολές εισόδου / εξόδου υποδεικνύουν τα ονόματα των ποσοτήτων των οποίων οι τιμές πρέπει να εμφανίζονται (εμφανίζονται στην οθόνη) ή να εισαχθούν (να απομνημονεύονται στη μνήμη του υπολογιστή).
Παράδειγμα:

Επίσημη λέξη NS (νέα γραμμή) λέει στον υπολογιστή ότι οι πληροφορίες πρέπει να εξάγονται σε μια νέα γραμμή.

5. Εντολή ανάθεσης. Δημιουργία και επεξεργασία προγραμμάτων γραμμικής δομής

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

ΟΝΟΜΑ ΤΙΜΗΣ: = ΕΚΦΡΑΣΗ

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

Οι αλγόριθμοι που είναι μια απλή ακολουθία ενεργειών ονομάζονται αλγόριθμοι γραμμικής δομής.
Εξετάστε τη διαδικασία δημιουργίας γραμμικός αλγόριθμοςστο παράδειγμα του υπολογισμού της έκφρασης:
1. Υπολογίστε το άθροισμα δύο αριθμών
2. Γράψτε ένα πρόγραμμα για την εύρεση της υποτείνουσας ενός ορθογωνίου τριγώνου με δύο σκέλη
3. Να βρείτε τον όγκο ενός κύβου αν είναι γνωστή η πλευρά του

6. Δημιουργία και επεξεργασία προγραμμάτων δομής διακλάδωσης

Η επίλυση προβλημάτων δεν μπορεί πάντα να αναπαρασταθεί ως γραμμικός αλγόριθμος. Υπάρχουν εργασίες στις οποίες απαιτείται να οργανωθεί η επιλογή της εκτέλεσης μιας ακολουθίας ενεργειών ανάλογα με οποιεσδήποτε συνθήκες. Τέτοιοι αλγόριθμοι ονομάζονται αλγόριθμοι δομής διακλάδωσης.Στο σύστημα προγραμματισμού KuMir, για τη δημιουργία ενός αλγόριθμου για μια δομή διακλάδωσης, παρέχονται οι κατασκευές "ΑΝ - ΤΟΤΕ - ΑΛΛΟ - ΟΛΟΙ" και "ΕΠΙΛΟΓΗ - ΑΝ - ΟΛΟΙ".

Εντολή υποκαταστήματος: ΑΝ - ΤΟΤΕ - ΑΛΛΟ - ΟΛΟΙ

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

Γραφικό σχέδιο της κατασκευής " αν"

Λέξεις εξυπηρέτησης " αν", "έπειτα", "σε διαφορετική περίπτωση"έχουν τη συνήθη σημασία. Η λέξη" όλα"σημαίνει το τέλος της κατασκευής. Μεταξύ" έπειτα" και " σε διαφορετική περίπτωση" - σε μία ή περισσότερες γραμμές - γράφεται μια ακολουθία εντολών της αλγοριθμικής γλώσσας (σειρά 1). Μεταξύ " σε διαφορετική περίπτωση" και " όλα"μια άλλη σειρά εντολών καταγράφεται (σειρά 2). Σειρά 2 μαζί με τη λέξη υπηρεσίας " σε διαφορετική περίπτωση"μπορεί να λείπει. Κατά την εκτέλεση του " αν"Ο υπολογιστής ελέγχει πρώτα τη συνθήκη που είναι γραμμένη μεταξύ" αν" και " έπειτα«. Ως αποτέλεσμα του ελέγχου, είτε ΝΑΙ, ή ΟΧΙ.Αν είναι δυνατόν ΝΑΙ,τότε εκτελείται η ΣΕΙΡΑ 1 και αν ΟΧΙ, -τότε ΣΕΙΡΑ 2 (αν υπάρχει) .
Εάν δεν πληρούται η προϋπόθεση (θα αποδειχθεί ΟΧΙ), και η σειρά 2 μαζί με το " σε διαφορετική περίπτωση" απουσιάζει, τότε ο υπολογιστής προχωρά αμέσως στην εκτέλεση των εντολών που γράφτηκαν μετά τη λέξη " όλα".

7. Τύποι κύκλων στο σύστημα προγραμματισμού KuMir

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

Βρόχος με προϋπόθεση (while loop)

Ένας βρόχος με προϋπόθεση (while loop) είναι ένας βρόχος του οποίου η εκτέλεση επαναλαμβάνεται ενώ η συνθήκη του βρόχου είναι αληθής. Λόγια υπηρεσίας NC(αρχή κύκλου) και KC(τέλος κύκλου) γράφονται αυστηρά το ένα κάτω από το άλλο και συνδέονται κάθετη μπάρα. Στα δεξιά αυτής της γραμμής, γράφεται μια επαναλαμβανόμενη ακολουθία εντολών (σώμα βρόχου).

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

Δίνεται ένας θετικός ακέραιος αριθμός N. Υπολογίστε το παραγοντικό αυτού του αριθμού: Ν! = 1 * 2 * 3 * ... * Ν.

Βρόχος με παράμετρο (βρόχος για)

Βρόχος με παράμετρο(βρόχος για) - επαναλαμβανόμενη εκτέλεση του σώματος βρόχου ενώ η ακέραια παράμετρος διατρέχει το σύνολο όλων των τιμών από την αρχική (i1) έως την τελική (in):

Εδώ το i είναι μια μεταβλητή ακέραιου τύπου, που ονομάζεται παράμετρος βρόχου: i1, in είναι οι αρχικές και τελικές τιμές της παραμέτρου βρόχου, οι οποίες μπορούν να καθοριστούν είτε με αυθαίρετους ακέραιους είτε με εκφράσεις με ακέραιες τιμές. h - βήμα αλλαγής της τιμής της παραμέτρου κύκλου, η τιμή βήματος μπορεί να είναι οποιοσδήποτε ακέραιος (τόσος θετικός όσο και αρνητικός). Η καταχώρηση "βήμα h" στην πρώτη γραμμή μπορεί να απουσιάζει εντελώς, ενώ η προεπιλεγμένη τιμή του βήματος είναι 1.
Κατά την εκτέλεση ενός βρόχου Για,Το σώμα του εκτελείται για i = i1, i = i1 + h, i = i1 + 2*h, . . . , i = μέσα. Οι κανόνες της αλγοριθμικής γλώσσας επιτρέπουν τον καθορισμό τυχόν ακεραίων i1, in, h. Συγκεκριμένα, το in μπορεί να είναι μικρότερο από i1. Εάν, επιπλέον, η τιμή του h< 0, то цикл выполняется нужное количество раз, а если h имеет положительное значение, то этот случай не считается ошибочным - просто тело цикла не будет выполнено ни разу, а ЭВМ сразу перейдет к выполнению команд, записанных после KC. Για h = 0, εμφανίζεται βρόχος.

Παράδειγμα: Δίνεται θετικός ακέραιος N. Υπολογίστε το παραγοντικό αυτού του αριθμού: N! = 1 * 2 * 3 * ... * Ν.

8. Αλγόριθμοι για επαναλαμβανόμενες εκφράσεις

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

αι =αι-1 +ρε

Στην ακολουθία 1, 1, 2, 3, 5, 8, 13, ... ( ονομάζεται ακολουθία Fibonacci) κάθε επόμενος όρος ισούται με το άθροισμα των δύο προηγούμενων. Για αυτή τη σειρά

ai = ai-1 + ai-2, a1 = a2 =1

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

9. Πίνακας τιμών ​και εργαστείτε μαζί τους

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

Εργασία με γραμμικούς πίνακες (μονοδιάστατοι πίνακες)

Όπως κάθε αξία γραμμικός πίνακαςκαταλαμβάνει μια θέση στη μνήμη του υπολογιστή, έχει όνομα, τιμή και τύπο. Το KuMir χρησιμοποιεί πίνακες τύπων ακεραίων (celtab) και πραγματικών (vehtab). Για παράδειγμα:

Η εγγραφή celtab A [ 1: 5 ] σημαίνει ότι η τιμή A είναι ένας πίνακας (καρτέλα) που αποτελείται από ακέραιους αριθμούς (ακέραιοι), τα στοιχεία αυτού του πίνακα έχουν δείκτες από το 1 (κάτω όριο) έως το 5 (ανώτατο όριο). Η τιμή του Α είναι πέντε ακέραιοι: 3, 15, 0, -10.101.
Τα στοιχεία του πίνακα δεν έχουν ξεχωριστά ονόματα. Για να ορίσετε το i-ο στοιχείο του πίνακα Α, χρησιμοποιείται η εγγραφή A [ i ]. Για παράδειγμα, κατά την εκτέλεση της εντολής A [ 3 ] : = A [ 2 ] + A [ 4 ] ο υπολογιστής θα αντικαταστήσει αντί για A [ 2 ] και A [ 4 ] τις τιμές του 2ου και 4ου στοιχείου του πίνακα A , δηλαδή τους αριθμούς 15 και -10, αθροίστε τους και αντιστοιχίστε την τιμή που προκύπτει στο 3ο στοιχείο, επομένως, αντί για 0, θα εμφανιστεί η τιμή 5 αντί για 0 ​​στη θέση του 3ου στοιχείου στον πίνακα.
Οποιοσδήποτε (θετικός και αρνητικός) ακέραιος αριθμός, καθώς και το 0, μπορούν να χρησιμοποιηθούν ως τιμές περιγράμματος πίνακα. Η τιμή του κάτω περιγράμματος πρέπει να είναι μικρότερη από την τιμή του άνω περιγράμματος. Εάν είναι ίσοι, ο πίνακας θεωρείται ότι αποτελείται ενός στοιχείου. Εάν στην περιγραφή του πίνακα, λόγω τυπογραφικού λάθους, το κάτω όριο αποδειχθεί μεγαλύτερο από το ανώτερο, για παράδειγμα, celtab [ 3: 1], τότε αυτό δεν θα θεωρηθεί σφάλμα και κατά την εισαγωγή του αλγόριθμου , δεν θα εμφανιστούν μηνύματα στα "πεδία". Σε αυτήν την περίπτωση, θα θεωρηθεί ότι δεν υπάρχει ούτε ένα στοιχείο σε αυτόν τον πίνακα και το μήνυμα "κακός δείκτης" θα εμφανιστεί την πρώτη φορά που γίνεται πρόσβαση σε αυτόν τον πίνακα.

Μια εργασία.

Εργασία με ορθογώνια τραπέζια (μήτρες)

Όπως ένας γραμμικός πίνακας, ένας πίνακας καταλαμβάνει χώρο στη μνήμη του υπολογιστή, έχει ένα όνομα, μια τιμή και έναν τύπο. Το KuMir χρησιμοποιεί πίνακες τύπων ακεραίων (celtab) και πραγματικών (vehtab).

Ο συμβολισμός celtab A [ 1: 5, 1:2 ] σημαίνει ότι η τιμή A είναι ένας πίνακας (καρτέλα) που αποτελείται από ακέραιους (ακέραιους) αριθμούς, τα στοιχεία αυτού του πίνακα έχουν δείκτες από (πρώτη στήλη, πρώτη σειρά) έως (τελευταία στήλη, τελευταία γραμμή). Η τιμή του Α είναι δέκα ακέραιοι: 3, 15, 0, -10, 101, 200, -45, 50, 10, 222.
Τα στοιχεία του πίνακα δεν έχουν ξεχωριστά ονόματα. Για να ορίσετε το i-ο στοιχείο του πίνακα A, χρησιμοποιείται η εγγραφή A [ i, j ]. Για παράδειγμα, κατά την εκτέλεση της εντολής A [ 3, 1 ] : = A [ 2, 1 ] + A [ 4, 1 ] ο υπολογιστής θα αντικαταστήσει αντί για A [ 2, 1 ] και A [ 4, 1 ] τις τιμές ​​του 2ου και 4ου στοιχείου της πρώτης στήλης του πίνακα Α, δηλαδή οι αριθμοί 15 και -10, θα τους αθροίσουν και θα αντιστοιχίσουν την τιμή που προκύπτει στο 3ο στοιχείο της πρώτης σειράς, έτσι ώστε αντί για 0, η τιμή 5 θα εμφανιστεί στη θέση του 3ου στοιχείου της πρώτης σειράς στον πίνακα.
Οποιοσδήποτε (θετικός και αρνητικός) ακέραιος αριθμός, καθώς και το 0, μπορούν να χρησιμοποιηθούν ως τιμές περιγράμματος πίνακα. Η τιμή του κάτω περιγράμματος πρέπει να είναι μικρότερη από την τιμή του άνω περιγράμματος. Εάν είναι ίσοι, ο πίνακας θεωρείται ότι αποτελείται ενός στοιχείου. Εάν στην περιγραφή του πίνακα, λόγω τυπογραφικού λάθους, το κάτω όριο αποδειχθεί μεγαλύτερο από το πάνω, για παράδειγμα, celtab [ 3: 1, 5: 2], τότε αυτό δεν θα θεωρηθεί σφάλμα και δεν θα εμφανιστούν μηνύματα στα "πεδία" κατά την είσοδο στον αλγόριθμο. Σε αυτήν την περίπτωση, θα θεωρηθεί ότι δεν υπάρχει ούτε ένα στοιχείο σε αυτόν τον πίνακα και το μήνυμα "κακός δείκτης" θα εμφανιστεί την πρώτη φορά που γίνεται πρόσβαση σε αυτόν τον πίνακα.

Μια εργασία.Στον πίνακα Β, προσδιορίστε τον δείκτη και την τιμή του μέγιστου στοιχείου.

Παράρτημα: Εργασίες

Γραμμικοί αλγόριθμοι

Εργασία #1

Βρείτε το άθροισμα δύο αριθμών - α και β
Λύση:

αλγ άθροισμα
νωρίς πράγμα α, β, γ
συμπέρασμα "εισάγετε την τιμή 2 αριθμών"
εισαγωγή α, β
γ:= α + β
συμπέρασμα ns , "άθροισμα αριθμών",a"και",b,"ίσο με",c
ενάντιος

Εργασία #2

Βρείτε τη διαφορά δύο αριθμών
Λύση:

αλγ διαφορά
νωρίς πράγμα α, β, γ
συμπέρασμα "εισαγωγή μεταβλητών τιμών"
εισαγωγή α, β
γ:= α - β
ns εξόδου, "διαφορά αριθμών",a"και"b,"ισούται",c
ενάντιος

Εργασία #3

Βρείτε το γινόμενο δύο οποιωνδήποτε φυσικών αριθμών
Λύση:

ολόκληρος α, β, γ

αλγ δουλειά
νωρίς
συμπέρασμα
" εισάγετε δύο αριθμούς"
εισαγωγή
ένα,σιγ:=ένα +σι
ns εξόδου,
"
γινόμενο αριθμών",a"και",b"ίσον",γ
ενάντιος

Εργασία #4

Να βρείτε το πηλίκο δύο φυσικών αριθμών
Λύση:

πράγμα α, β, γ

αλγ ιδιωτικός
νωρίς
συμπέρασμα "
εισάγετε μέρισμα και διαιρέτης"
εισαγωγή
α, β
γ:= α / β
ns εξόδου,
"πηλίκο",a"και"b,"ίσο με",c
ενάντιος

Εργασία #5

Να βρείτε τον αριθμητικό μέσο όρο πέντε αυθαίρετων αριθμών
Λύση:

πράγμα α, β, γ, δ, ε, στ

αλγ αριθμητική
ξεκινήστε τα πράγματα α, β, γ, δ, ε, στ
συμπέρασμα "Εισαγάγετε τυχόν 5 αριθμούς"
εισαγωγή α, β, γ, δ, ε
f:=(a + b + c + d + e)/ 5
συμπέρασμα ns », ο αριθμητικός μέσος όρος των 5 αριθμών είναι», στ
ενάντιος

διακλάδωση

Εργασία #1

Βρείτε τον μεγαλύτερο ανάμεσα σε 3 ακέραιους αριθμούς (οι αριθμοί είναι αυθαίρετοι)

αλγ το μέγιστο
πρώιμος στόχος α Β Γ
συμπέρασμα "Εισαγάγετε τρεις τυχαίους αριθμούς"
εισαγωγή α Β Γ
αν α>β>γ
τότε το συμπέρασμα είναι ns "Ο μέγιστος αριθμός είναι" και
όλα
αν ένα<б>Με
τότε το συμπέρασμα είναι ns "ο μέγιστος αριθμός είναι", β
όλα
αν ένα<б<с
τότε το συμπέρασμα είναι ns "ο μέγιστος αριθμός είναι", με
όλα
ενάντιος

Εργασία #2

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

αλγ κατάσταση
ξεκινήστε τα πράγματα α, β
συμπέρασμα "Εισαγάγετε δύο αριθμούς"
εισαγωγή α, β
αν α > β
έπειτα α:= α + β
β := α * β
σε διαφορετική περίπτωση α:= α * β
β := α + β
συμπέρασμα ns , α, β
ενάντιος

Εργασία #3:

Βρείτε ανάμεσα σε 4 αυθαίρετους αριθμούς το ελάχιστο
Λύση:

αλγ ελάχιστο
ξεκινήστε τα πράγματα α, β, γ, ε
συμπέρασμα "Εισαγάγετε 4 τυχαίους αριθμούς"
εισαγωγή α, β, s. μι
αν α>β>γ>ε
τότε το συμπέρασμα είναι ns "μέγιστος αριθμός-"και
όλα
αν ένα<б>γ>ε
τότε το συμπέρασμα είναι ns "μέγιστος αριθμός -", β
όλα
αν
ένα<б<с>μι
τότε το συμπέρασμα είναι ns "μέγιστος αριθμός -", s
όλα
αν
ένα<б<с<е
τότε το συμπέρασμα είναι ns , "μέγιστος αριθμός -", π.χ
όλα
ενάντιος

Εργασία #4

Δίνονται 2 σκέλη (2 cm και 2 cm) ισοσκελούς τριγώνου και η βάση του (2,82 cm). Προσδιορίστε αν το τρίγωνο είναι ορθογώνιο.
Λύση:

αλγ τρίγωνο
ξεκινήστε τα πράγματα i, h, s
i:= 2
h:= 2
c:= 2,82
αν c**2= (i**2)+(h**2)
τότε η έξοδος "αλήθεια"
διαφορετικά έξοδο "Λάθος"
όλα
ενάντιος

Εργασία #5

Εκτυπώστε το μήνυμα "true" αν το γινόμενο δύο αρνητικών αριθμών είναι μεγαλύτερο από μηδέν, διαφορετικά εκτυπώστε το μήνυμα "false"
Λύση:

αλγ αρνητικός
ξεκινήστε τα πράγματα i, h, s, m
συμπέρασμα "Εισαγάγετε δύο αρνητικούς αριθμούς"
εισαγωγή i h
c:=0
m := i*h
αν m>s
τότε το συμπέρασμα είναι ns , "αληθεια"
διαφορετικά έξοδος ns ,"Ψευδής"
όλα
ενάντιος

Βρόχος "για"

Εργασία #1

Εύρημα Παραγοντικόφυσικός αριθμόςn ( Παραγοντικό φυσικού αριθμού n είναι το γινόμενο όλων των φυσικών αριθμών μεταξύ 1 και n ) Λύση:

αλγ παραγοντικό
ξεκινήστε τα πράγματα
ένα. σι
ολόκληρος
n, και
συμπέρασμα

εισαγωγή
n
α:= 1
nc για
και από 1 πριν n
συμπέρασμα ns,
"πληκτρολογήστε τον αριθμό"
εισαγωγή
σι
α:= α * β
kts
συμπέρασμα ns
,
"παραγοντικό",n"των ακεραίων είναι" και
ενάντιος

Εργασία #2

Βρείτε τη μέγιστη τιμή μεταξύn - ακέραιοι αριθμοί
Λύση:

αλγ το μέγιστο
ξεκινήστε τα πράγματα
α, β
ολόκληρος
σε
συμπέρασμα
"Εισαγάγετε τον αριθμό των ακεραίων προς σύγκριση"
εισαγωγή
n
a:=0
nc για
και από 1 πριν n
συμπέρασμα ns,
"πληκτρολογήστε τον αριθμό"
εισαγωγή
σι
αν
β>α
έπειτα
α:=β
όλα
kts
συμπέρασμα ns,
"ο μέγιστος αριθμός μεταξύ των δεδομένων είναι ένας αριθμός", και
ενάντιος

Εργασία #3

Βρείτε μεταξύn-ακέραιοι αριθμός αρνητικών
Λύση:

αλγ σύμπτωση
ξεκινήστε τα πράγματα
α, β, γ
ολόκληρος
n, i, s
συμπέρασμα "
εισάγετε τον αριθμό των φυσικών αριθμών"
εισαγωγή
n
συμπέρασμα ns,
"πληκτρολογήστε τον αριθμό"
εισαγωγή
σι
n:= n - 1
h:= 0
nc για
και από 1 πριν n
συμπέρασμα ns,"
εισάγετε τον αριθμό"
εισαγωγή
Με
αν
c = β
έπειτα
s:= s + 1
όλα
kts
συμπέρασμα ns
,

ενάντιος

Εργασία #4

Εισάγονται διαδοχικά n-ακέραιοι αριθμοί. Βρείτε τον αριθμό των αντιστοιχιών με τον πρώτο αριθμό
Λύση:

ξεκινήστε τα πράγματα α, β, γ
ολόκληρος
n, i, s
συμπέρασμα
"Εισαγάγετε τον αριθμό των φυσικών αριθμών"
εισαγωγή
n
συμπέρασμα ns,
"πληκτρολογήστε τον αριθμό"
εισαγωγή
σι
n:= n - 1
h:= 0
nc για
και από 1 πριν n
συμπέρασμα ns,
"πληκτρολογήστε τον αριθμό"
εισαγωγή
Με
αν
c = β
έπειτα s:= s + 1
όλα
kts
συμπέρασμα ns
,
"ο αριθμός των αντιστοιχιών με τον πρώτο αριθμό είναι", z
ενάντιος

Εργασία #5

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

αλγ διαφορά
ξεκινήστε τα πράγματα
ένα. β, s, δ
ολόκληρος
n, και
συμπέρασμα
"Εισαγάγετε τον αριθμό των αριθμών"
εισαγωγή
n
α: = 0
c:=0
nc για
και από 1 πριν n
συμπέρασμα ns,
"πληκτρολογήστε τον αριθμό"
εισαγωγή
ρε
αν
e>s
έπειτα
γ:=δ
όλα
αν
ρε<а
έπειτα
α:= δ
όλα
kts
β:= γ - α
συμπέρασμα ns,
"η διαφορά μεταξύ της ελάχιστης και της μέγιστης τιμής είναι ίση", β
ενάντιος

Ο βρόχος while

Εργασία #1

Βρείτε το άθροισμα όλων των αριθμών μεταξύ 1 και 5
Λύση:

αλγ αριθμοί
ξεκινήστε τα πράγματα α, β
συμπέρασμα "Εισαγάγετε δύο αριθμούς έτσι ώστε ο δεύτερος αριθμός να είναι μεγαλύτερος από τον πρώτο"
εισαγωγή α, β
nts αντίο ένα<б
a:= a + 1
kts
συμπέρασμα ns
, ένα
ενάντιος

Εργασία #2

Δίνονται δύο αριθμοί έτσι ώστε ο δεύτερος αριθμός να είναι μεγαλύτερος από τον πρώτο. Είναι απαραίτητο να προσθέσετε 1 στον πρώτο αριθμό έως ότου γίνει ίσος με τον δεύτερο αριθμό, εμφανίστε τον στην οθόνη.
Λύση:

αλγ άθροισμα
ξεκινήστε τα πράγματα α, β, γ
συμπέρασμα "εισαγωγή διαστήματος άθροισης"
εισαγωγή α, β
γ:= α
nts αντίο ένα< б
a:= a + 1
γ:= γ + α
kts
συμπέρασμα ns
"Το άθροισμα των αριθμών στο δεδομένο διάστημα είναι", με
ενάντιος

Εργασία #3

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

αλγ δουλειά
ξεκινήστε τα πράγματα α, β, γ
συμπέρασμα "Εισαγάγετε δύο τυχαίους αριθμούς"
εισαγωγή α, β
c:= 100
nts αντίο α*β< с
α:= α + 2
b := b + 2
kts
συμπέρασμα ns
, α, β
ενάντιος

Μονοδιάστατοι πίνακες

Εργασία #1

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

αλγ πίνακας 2
πρώιμος στόχος
n,i
πράγμα
β, μέγ
μανταλάκι
a [ 1:n ]
συμπέρασμα
"γεμίζω πίνακα"
εισαγωγή
n
μέγιστο: = 0
nc για
Εγώ από 1 πριν n
συμπέρασμα ns,
"εισαγωγή στοιχείου πίνακα"
εισαγωγή
σι
αν
β > μέγ
έπειτα μέγ.:=β
όλα
kts
συμπέρασμα ns
,

ενάντιος

Εργασία #2

Βρείτε το μέγιστο στοιχείο του πίνακα και εμφανίστε το στην οθόνη Λύση:

αλγ πίνακας 2
νωρίς
ολόκληρος n,i
πράγμα
β, μέγ
μανταλάκι a [ 1:n ]
συμπέρασμα
"γεμίζω πίνακα"
εισαγωγή
n
μέγιστο: = 0
nc για
Εγώ από 1 πριν n
συμπέρασμα ns,
"εισαγωγή στοιχείου πίνακα"
εισαγωγή
σι
αν
β > μέγ
έπειτα μέγ.:=β
όλα
kts
συμπέρασμα ns
,
"το μέγιστο στοιχείο αυτού του πίνακα είναι", μέγ
ενάντιος

Εργασία #3

Βρείτε το άθροισμα των στοιχείων ενός μονοδιάστατου πίνακα Λύση:

αλγ άθροισμα
νωρίς ολόκληρος
n,i
μανταλάκι
a [ 1:n ]
πράγμα
Β Ζ
συμπέρασμα
"πληκτρολογήστε τον αριθμό των στοιχείων πίνακα"
εισαγωγή
n
z:= 0
nc για Εγώ από 1 πριν n
συμπέρασμα ns,
"εισαγωγή στοιχείου πίνακα"
εισαγωγή
σι
z:= z + b
kts
συμπέρασμα ns
,
"sum",n"στοιχεία πίνακα ίσον", z
ενάντιος

Εργασία #4

Βρείτε το γινόμενο των στοιχείων ενός μονοδιάστατου πίνακα Λύση:

αλγ δουλειά
πρώιμος στόχος
σε
πράγμα
s, d
μανταλάκι
a [ 1:n ]
συμπέρασμα
"εισάγετε τον αριθμό των στοιχείων πίνακα"
εισαγωγή
n
d:= 1
nc για
Εγώ από 1 πριν n
συμπέρασμα ns,
"πληκτρολογήστε τον αριθμό"
εισαγωγή
μικρό
d:= d*s
kts
συμπέρασμα ns
,"
γινόμενο", n, "στοιχεία ίσον", δ
ενάντιος

Πίνακες

Εργασία #1


Συμπληρώστε τον πίνακα με τυχαίους αριθμούς Λύση:

αλγ ο πίνακας είναι δισδιάστατος
ολόκληρος
n, j, h, v
ξεκινήστε την καρτέλα ρούχων
ένα
συμπέρασμα
"πληκτρολογήστε τον αριθμό των στοιχείων στον πίνακα"
εισαγωγή
n
h:= 0
v: = 0
συμπέρασμα ns,
"γεμίζω πίνακα"
εισαγωγή
ένα
nc για
ι από 1 πριν n
αν α > 0
έπειτα
h:= h + 1
σε διαφορετική περίπτωση
v:= v + 1
kts
συμπέρασμα ns,
ένα
ενάντιος


Εργασία #2


Υπολογίστε τον αριθμό των θετικών και αρνητικών στοιχείων της πρώτης σειράς του πίνακα Λύση:

αλγ πίνακας 2
νωρίς
πράγμαβ, χ, ζ
ολόκληρος
σε
συμπέρασμα

εισαγωγή
n x:=0
z:= 0
nc για
Εγώ από 1 πριν n
συμπέρασμα
ns"Εισαγάγετε τον αριθμό"
εισαγωγή
σι
αν
β > 0
έπειτα
x:= x + 1
σε διαφορετική περίπτωση
z:= z + 1
όλα
kts
συμπέρασμα ns
,

συμπέρασμα ns,

ενάντιος


Εργασία #3


Υπολογίστε το άθροισμα των στοιχείων κάθε σειράς Λύση:

αλγ πίνακας 3
ξεκινήστε τα πράγματα
b, x, z, y
ολόκληρος
σε
μανταλάκι
a[ 1:n, 1:n]
συμπέρασμα
"εισαγωγή αριθμού στηλών"
εισαγωγή
n x:=0
z:= 0
nc για
Εγώ από 1 πριν n
συμπέρασμα ns,
"γεμίζω πίνακα"
εισαγωγή
a[ 1:n, 1:n]
b:= a[ 1,i ]+a[ n, i ]
kts
συμπέρασμα ns
,
"ο αριθμός των θετικών αριθμών είναι",χ
συμπέρασμα ns,
"ο αριθμός των αρνητικών αριθμών είναι", z
ενάντιος


Εργασία #4


Υπολογίστε το άθροισμα των τριών αριθμών στη δεύτερη σειρά μιας Λύσης πίνακα τρία προς τρία:

αλγ μήτρα
νωρίς ολόκληρος
σε
μανταλάκι α[1:3, 1:3]
συμπέρασμα "γεμίζω πίνακα"
εισαγωγή α[1:3, 1:3]
n:=0
nc Για Εγώ από 1 πριν 3
n:= n + a[ 2,i]
kts
συμπέρασμα ns,
"το άθροισμα των αριθμών στη δεύτερη σειρά του πίνακα είναι", n
ενάντιος

Αλγόριθμος για τη σχεδίαση μιας σπείρας:

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

Δώστε προσοχή στο μπλοκ εντολών:

Πηνίο (1); πηνίο (3); πηνίο (5); πηνίο (7); πηνίο (9)

Ο βοηθητικός αλγόριθμος "coil (πράγμα arg a)" καλείται 5 φορές, αλλά δεν μπορεί να κληθεί στον βρόχο "N φορές", γιατί κάθε φορά καλείται με διαφορετικές αξίεςδιαφωνία.

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

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

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

Γενική άποψη του κύκλου με μετρητή:

nc για<счетчик>από<нач. знач.>πριν<кон. знач.>[βήμα<знач.>]
<тело цикла (последовательность команд)>
kts

Δεν είναι απαραίτητο να υποδειχθεί το βήμα, εάν δεν προσδιορίζεται, τότε θεωρείται ίσο με ένα.

Τώρα μπορούμε να ξαναγράψουμε τον αλγόριθμο "σπιράλ" με αυτόν τον τρόπο:

χρησιμοποιήστε το συρτάρι
αλγ
νωρίς
. μετακινηθείτε σε ένα σημείο(3,3)
. χαμηλώστε το στυλό
. ολόκληρο το μέγεθος
. nc για μέγεθος 1 έως 9 βήμα 2
. . πηνίο (μέγεθος)
. kts
. σηκώστε το στυλό
ενάντιος
alg turn (arg w)
νωρίς
. μετατόπιση κατά διάνυσμα(α, 0)
. μετατόπιση κατά διάνυσμα(0, -a)
. μετατόπιση κατά διάνυσμα(-a-1,0)
. μετατόπιση κατά διάνυσμα(0, a+1)
ενάντιος

Σε αυτό το παράδειγμα, η μεταβλητή μετρητή "size" θα λάβει τις τιμές: 1, 3, 5, 7, 9. Δηλαδή, Ο βρόχος θα εκτελεστεί 5 φορές. Για κάθε τιμή της μεταβλητής «μέγεθος», το σώμα του βρόχου θα εκτελεστεί μία φορά, στο παράδειγμά μας, αυτή είναι μια κλήση στον βοηθητικό αλγόριθμο «πηνίο (πράγμα arg)».

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

Το μπλοκ διάγραμμα ενός τέτοιου αλγορίθμου μοιάζει με αυτό:

Ας δούμε ένα άλλο παράδειγμα:

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

Ο αλγόριθμος θα μπορούσε να είναι ο εξής:

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

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

Για να το κάνουμε αυτό, χρησιμοποιούμε τον βρόχο "για". Μελετήστε το παράδειγμα προγράμματος:

χρησιμοποιήστε το συρτάρι
alg σχήμα 1
νωρίς
. ακέραιος z
. nc για z από 2 έως 10 βήμα 2
. . τετράγωνο(0, 0, z)
. kts
ενάντιος
alg τετράγωνο (arg x, y, πλευρά)
νωρίς
. μετακινηθείτε σε ένα σημείο(x, y)
. μετατόπιση κατά διάνυσμα(-πλευρά/2, πλάγια/2)
. χαμηλώστε το στυλό
. μετατόπιση κατά διάνυσμα(πλευρά, 0)
. μετατόπιση κατά διάνυσμα(0, -πλευρά)
. μετατόπιση κατά διάνυσμα(-πλευρά, 0)
. μετατόπιση κατά διάνυσμα(0, πλευρά)
. σηκώστε το στυλό
ενάντιος

Σε αυτό το παράδειγμα, η μεταβλητή "z" θα λάβει τις τιμές: 2, 4, 6, 8, 10. Ο βρόχος θα εκτελεστεί 5 φορές. Για κάθε τιμή "z", το σώμα του βρόχου θα εκτελεστεί μία φορά, στο παράδειγμά μας, αυτή είναι μια κλήση στον αλγόριθμο του βοηθητικού τετραγώνου.

Πριν από την πρώτη χρήση μιας μεταβλητής, πρέπει να δηλωθεί, δηλαδή τι τύπος είναι. Αυτό γίνεται στο πρόγραμμά μας στη γραμμή "ακέραιος z", δηλαδή υποδεικνύουμε ότι θα χρησιμοποιήσουμε τη μεταβλητή "z" για να αποθηκεύσουμε ακέραιους αριθμούς και επομένως πρέπει να διαθέσουμε μνήμη για αυτήν. Θα μιλήσουμε περισσότερο για τις μεταβλητές λίγο αργότερα.

Όπως παρατηρήσατε, ο αλγόριθμος χρησιμοποίησε όχι μόνο αριθμούς, αλλά και αλγεβρικές εκφράσεις, τύπους, για παράδειγμα "-side/2". Στην επιστήμη των υπολογιστών, αυτές οι εκφράσεις ονομάζονται αριθμητική. Οι κανόνες της γλώσσας επιτρέπουν, όταν γράφετε αλγόριθμους, όπου μπορείτε να γράψετε έναν αριθμό, να γράψετε μια αυθαίρετη αριθμητική έκφραση.

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

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

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

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

Ο βρόχος while

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

  • nc αντίο όρος
  • loop_body

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

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

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

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

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

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

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

Μέχρι τότε κύκλος

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

  • loop_body
  • kc υπό συνθήκες

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

Η εργασία του βρόχου μέχρι τότε προχωρά ως εξής:

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

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

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

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