Φωλιασμένο βρόχο είδωλο. Αλγοριθμικό ειδώλιο γλώσσας. Βρόχος με προϋπόθεση

Εξετάστε το πρόβλημα:

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

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

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

Κύκλος του αντίο

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

  • nc μέχρι στιγμής κατάσταση
  • κύκλο_σώμα

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

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

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

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

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

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

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

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

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

  • κύκλο_σώμα
  • kts σε κατάσταση

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

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

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

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

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

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

1. Εισαγωγή

το σύστημα "Kumir" (το όνομα προέρχεται από τις λέξεις "Set of Training Worlds"), το οποίο θα σας μυήσει σε αυτό ηλεκτρονική παραλλαγήσχολικό βιβλίο.
Οι προγραμματιστές της γλώσσας Kumir επιδίωξαν τον στόχο της δημιουργίας μιας απλής γλώσσας για αρχικό μάθημαεπιστήμη των υπολογιστών, συναντώντας τη σύγχρονη τεχνολογία προγραμματισμού και επιτρέποντας τη βιομηχανική χρήση. Ως βάση ελήφθη η σχολική αλγοριθμική γλώσσα. Η γλώσσα έχει συμπληρωθεί με ορισμένα χαρακτηριστικά που την μετατρέπουν από εκπαιδευτική σε παραγωγή. Η γλώσσα έχει:
τύπους άθικτο, πράγμα, αναμμένο? παραδοσιακό σύνολο λειτουργιών σε δεδομένα αυτών των τύπων (συμπεριλαμβανομένων των λειτουργιών σε συμβολοσειρές και ενός τυπικού συνόλου μαθηματικές συναρτήσεις);
πίνακες ( αυτί) των καθορισμένων τύπων · δομημένες δομές ελέγχου για βρόχους, διακλάδωση κ.λπ.
Το Kumir είναι ανοιχτό - η σύνδεση εξωτερικών ερμηνευτών εμπλουτίζει τη γλώσσα με νέες δυνατότητες: από τη διαχείριση βάσεων δεδομένων και την εργασία με γεωμετρικά αντικείμενα έως την επέκταση του συνόλου των αποδεκτών αριθμητικών τύπων (η γλώσσα θα επιτρέπει τη μίξη νέων τύπων με υπάρχοντες αριθμητικούς τύπους σε εκφράσεις).
Μοντέρνα τεχνολογίαο προγραμματισμός διδάσκει να σπάσει ένα πρόγραμμα όχι μόνο σε υπορουτίνες, αλλά και σε μεγαλύτερες μονάδες: σύνολα προγραμμάτων που λειτουργούν σε κοινά δεδομένα. Σε διαφορετικές γλώσσες προγραμματισμού, τέτοιες μονάδες ονομάζονται διαφορετικά, στο Kumir μια τέτοια μονάδα ονομάζεται "Εκτελεστής". Η έννοια του ερμηνευτή είναι εξαιρετικά σημαντική στην πρακτική εργασία και πρέπει να εισαχθεί στο νωρίτερο δυνατό στάδιο της εκπαίδευσης.
Η εμπειρία από τη χρήση του Kumir στη διδασκαλία και την ανάπτυξη εκπαιδευτικού λογισμικού έδειξε ότι η γλώσσα είναι εύκολη στην εκμάθηση και ταυτόχρονα αρκετά ισχυρή για να επεκτείνει μια μεγάλη κατηγορία εργασιών παραγωγής.
Όπως το ηλεκτρονικό εργαστήριο, το Kumir είναι ένα ολοκληρωμένο σύστημα που περιλαμβάνει επεξεργαστής κειμένου, ένας σταδιακός μεταγλωττιστής με μηδενικό χρόνο απόκρισης και ένας απλός και βολικός εντοπισμός σφαλμάτων. Ένα καλό όνομα για αυτό το είδος συστήματος είναι "Editor-Compiler": ενώ εισάγετε το πρόγραμμά σας, ο μεταγλωττιστής το επεξεργάζεται και ανά πάσα στιγμή το πρόγραμμα είναι έτοιμο να τρέξει χωρίς την παραμικρή καθυστέρηση.

2. Ονόματα και τύποι ποσοτήτων. Οι επιχειρήσεις του Κουμίρ

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

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

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

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

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

Εφεση

Λειτουργία

Τύποι

Διαφωνία

Λειτουργίες

ΑΜΑΡΤΙΑ (Χ) COS (Χ) TG (Χ) ΛΗΞΗ (Χ) LN (Χ) ABS (Χ) SQRT (Χ) MOD (ΕΝΑ,ΣΙ) INT (Χ) πι

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

πράγματα
πράγματα
πράγματα
πράγματα
πράγματα
πράγματα
πράγματα
πράγμα, άθικτο
πράγματα
πράγματα

πράγματα
πράγματα
πράγματα
πράγματα
πράγματα
πράγματα
πράγματα
άθικτος
άθικτος
χωρίς αργούμ

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

4. Εντολές πληροφοριών INPUT / OUTPUT

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

Λέξη υπηρεσίας NS (νέα γραμμή) υποδεικνύει στον υπολογιστή ότι οι πληροφορίες πρέπει να εμφανίζονται σε μια νέα γραμμή.

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

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

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

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

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

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

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

Εντολή κλάδου: ΑΝ - ΤΟΤΕ - ΑΛΛΟ - ΟΛΑ

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

Γραφικό διάγραμμα της εκτέλεσης του σχεδιασμού " αν"

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

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

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

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

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

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

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

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

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

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

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

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

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

ai =ai-1 +ρε

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

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

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

9. Τιμές πίνακακαι συνεργαστείτε μαζί τους

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

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

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

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

Εργο.

Εργασία με ορθογώνιους πίνακες (πίνακες)

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

Η σημείωση 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ο στοιχείο της πρώτης σειράς, έτσι, στη θέση του 3ου στοιχείου του πρώτη γραμμή στον πίνακα, αντί για 0, θα εμφανιστεί η τιμή 5.
Οποιοσδήποτε (τόσο θετικός όσο και αρνητικός) ακέραιος αριθμός και 0 μπορούν να χρησιμοποιηθούν ως τιμές των περιγραμμάτων του πίνακα. Η τιμή του κατώτερου περιγράμματος πρέπει να είναι μικρότερη από την τιμή του άνω περιγράμματος. Εάν είναι ίσες, ο πίνακας θεωρείται ότι αποτελείται από ένα στοιχείο Το Εάν στην περιγραφή του πίνακα λόγω ολίσθησης της γλώσσας, το κάτω περίγραμμα είναι μεγαλύτερο από το πάνω, για παράδειγμα, celtab [3: 1, 5: 2], τότε αυτό δεν θα θεωρηθεί σφάλμα , και δεν θα εμφανίζονται μηνύματα στα "πεδία" κατά την εισαγωγή του αλγορίθμου. Σε αυτήν την περίπτωση, θα θεωρηθεί ότι δεν υπάρχουν στοιχεία σε αυτόν τον πίνακα και το μήνυμα "bad index" θα εμφανιστεί την πρώτη φορά που θα έχετε πρόσβαση στον πίνακα.

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

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

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

Πρόβλημα νούμερο 1

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

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

Πρόβλημα νούμερο 2

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

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

Πρόβλημα αριθμός 3

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

άθικτος α, β, γ

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

Πρόβλημα αριθμός 4

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

πράγματα α, β, γ

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

Πρόβλημα αριθμός 5

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

πράγματα a, b, c, d, e, f

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

Διακλάδωση

Πρόβλημα νούμερο 1

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

alg το μέγιστο
άθικτος α Β Γ
παραγωγή "εισαγάγετε τρεις αυθαίρετους αριθμούς"
εισαγωγή α Β Γ
αν α> β> γ
τότε η έξοδος ns ," μέγιστος αριθμόςείναι και
όλα
αν ένα<б>με
τότε η έξοδος ns , "ο μέγιστος αριθμός είναι", β
όλα
αν ένα<б<с
τότε η έξοδος ns , "ο μέγιστος αριθμός είναι", με
όλα
ενάντιος

Πρόβλημα νούμερο 2

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

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

Αριθμός εργασίας 3:

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

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

Πρόβλημα αριθμός 4

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

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

Πρόβλημα αριθμός 5

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

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

Κύκλος "για"

Πρόβλημα νούμερο 1

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

alg παραγοντικό
ξεκινήστε πράγματα
ένα. σι
άθικτος
η, και
παραγωγή

εισαγωγή
ν
α: = 1
nts για
και από 1 πριν ν
ns έξοδος,
"εισαγάγετε τον αριθμό"
εισαγωγή
σι
α: = α * β
kts
ns έξοδος
,
"factorial", n, "ακέραιοι είναι ίσοι με", και
ενάντιος

Πρόβλημα νούμερο 2

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

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

Πρόβλημα αριθμός 3

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

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

ενάντιος

Πρόβλημα αριθμός 4

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

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

Πρόβλημα αριθμός 5

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

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

Κύκλος του αντίο

Πρόβλημα νούμερο 1

Βρείτε το άθροισμα όλων των αριθμών στην περιοχή από 1 έως 5
Λύση:

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

Πρόβλημα νούμερο 2

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

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

Πρόβλημα αριθμός 3

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

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

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

Πρόβλημα νούμερο 1

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

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

ενάντιος

Πρόβλημα νούμερο 2

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

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

Πρόβλημα αριθμός 3

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

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

Πρόβλημα αριθμός 4

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

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

Πίνακες

Πρόβλημα νούμερο 1


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

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


Πρόβλημα νούμερο 2


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

alg πίνακας 2
νωρίς
πράγματα b, x, z
άθικτος
σε
παραγωγή

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

ns έξοδος,

ενάντιος


Πρόβλημα αριθμός 3


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

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


Πρόβλημα αριθμός 4


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

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

Khiryanov Timofey Fedorovich

αν-τότε-αλλιώς-τα πάντα

Γενική άποψη της ομάδας:

αν συνθήκη
μετά σειρά 1
αλλιώς σειρά 2
όλα

Σειρά 2μαζί με τη λέξη υπηρεσίας σε διαφορετική περίπτωσημπορεί να απουσιάζει. Σε αυτήν την περίπτωση, η εντολή μοιάζει με αυτήν:

αν συνθήκη
μετά σειρά 1
όλα

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

Παράδειγμα 1

αν ένα τότε
β: = β-α
p: = p + q
σε διαφορετική περίπτωση
α: = α-β
q: = q + p
όλα

Παράδειγμα 2

αν x> m
τότε
m: = x
n: = n + 1
όλα

Παράδειγμα 3 (ρομπότ ερμηνευτή)

αν το δικαίωμα είναι δωρεάν
τότε
δεξιά
όλα

επιλογή-αν-αλλιώς-τα πάντα

Γενική άποψη της ομάδας:

επιλογή
για την κατάσταση 1: σειρά 1
για την κατάσταση 2: σειρά 2

για τη συνθήκη n: σειρά n
αλλιώς η σειρά n + 1
όλα

Λέξη -κλειδί σε διαφορετική περίπτωσημαζί με την αντίστοιχη σειρά εντολών μπορεί να λείπουν:

επιλογή
για την κατάσταση 1: σειρά 1
για την κατάσταση 2: σειρά 2

για τη συνθήκη n: σειρά n
όλα

Ο Κουμίρ ελέγχει πρώτα συνθήκη 1... Εάν τηρείται, τότε ο Kumir εκτελεί εντολές από σειρά 1, και στη συνέχεια προχωρά στην εκτέλεση των εντολών που γράφονται μετά τη λέξη όλα... Διαφορετικά, ο Κουμίρ κάνει το ίδιο με συνθήκη 2και ομάδες από σειρά 2και τα λοιπά.
Εντολές γραμμένες μετά τη λέξη σε διαφορετική περίπτωση, εκτελούνται όταν δεν πληρούται καμία από τις προϋποθέσεις.
Σε μια εντολή, δεν επιλέγονται πάντοτε περισσότερες από μία σειρές εντολών, ακόμη και αν ισχύουν αρκετές συνθήκες. Η εκτέλεση της εντολής επιλογής τελειώνει αφού βρεθεί η πρώτη (κατά σειρά) συνθήκη με την τιμή ναι (και η αντίστοιχη σειρά εντολών έχει εκτελεστεί).

Παράδειγμα 1

επιλογή
για a> 1: i: = i + 1
σε α< 0: j:= j - 1
αλλιώς t: = i; i: = j; j: = t
όλα

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

    Βρείτε μεταξύ των ακεραίων που έχουν εισαχθεί από το πληκτρολόγιο τον αριθμό των αρνητικών

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

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

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

    Βρείτε μεταξύ των ακεραίων που έχουν εισαχθεί από το πληκτρολόγιο τον αριθμό των αρνητικών

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

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

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

    Βρείτε μεταξύ των ακεραίων που έχουν εισαχθεί από το πληκτρολόγιο τον αριθμό των αρνητικών

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

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

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

    Βρείτε μεταξύ των ακεραίων που έχουν εισαχθεί από το πληκτρολόγιο τον αριθμό των αρνητικών

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

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

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

Khiryanov Timofey Fedorovich

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

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

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

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

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

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

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


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

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

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

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

Βρόχος με μετα -κατάσταση

Ένας βρόχος με μετα -συνθήκη είναι ένας βρόχος στον οποίο ελέγχεται η κατάσταση μετά την εκτέλεση του σώματος του βρόχου. Ως εκ τούτου, προκύπτει ότι το σώμα εκτελείται πάντα τουλάχιστον μία φορά. Στο Pascal, αυτός ο βρόχος υλοποιεί την επανάληψη .. έως τον τελεστή, στο C - κάνει ... ενώ.
Στη γλώσσα Kumir, ένας βρόχος με μια κατάσταση μετά όρου μοιάζει με αυτό:

nts
<тело цикла>
kts_mith<условие>

Κύκλος με μετρητή

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

άθικτος
nts για ένα από 0 έως 9
... το σώμα του βρόχου
kts

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