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

Μελετώντας στο σχολείο

Συχνά στα σχολεία διδάσκεται μια αλγοριθμική γλώσσα, η πιο γνωστή ως γλώσσα εκμάθησης. Έχει λάβει μεγάλη διανομή λόγω του γεγονότος ότι χρησιμοποιεί τις λέξεις που είναι πιο κατανοητές σε κάθε μαθητή. Μια παρόμοια γλώσσα με σύνταξη στα ρωσικά εισήχθη εδώ και πολύ καιρό, συγκεκριμένα στα μέσα της δεκαετίας του 1980. Χρησιμοποιήθηκε για να δώσει τη βάση σε μαθητές και να τους διδάξει ένα μάθημα πληροφορικής χωρίς υπολογιστή. Αυτή η γλώσσα δημοσιεύτηκε το 1985 σε ένα από τα σχολικά βιβλία. Επανεκδόθηκε επίσης πολλές φορές για ειδικά βιβλία που προορίζονταν για διδασκαλία στις τάξεις 9 και 10. Η συνολική κυκλοφορία της έκδοσης ανήλθε σε 7 εκατομμύρια αντίτυπα.

Ακολουθία γραφής αλγορίθμου

Πρώτα απ 'όλα, πρέπει να γράψετε τον συνδυασμό γραμμάτων ALG. Ακολουθεί το όνομα του αλγορίθμου. Στη συνέχεια, μετά την ΕΝΑΡΞΗ, πρέπει να περιγράψετε μια σειρά από εντολές. Ο χειριστής KOH σημαίνει το τέλος του προγράμματος.

Περιγραφή του αλγορίθμου σε αλγοριθμική γλώσσα:

Εταιρεία ALG

ΑΡΧΗ

περιστρέψτε 90 μοίρες προς τα αριστερά

ΚΟΗ

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

Κατάρτιση αλγορίθμων

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

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

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

Η εντολή bind-to-self βρίσκεται μέσα στο ίδιο το σύστημα. Μια τέτοια αναδρομή είναι άμεση. Έμμεσος είναι αυτός όπου ο αλγόριθμος καλείται σε οποιαδήποτε άλλη βοηθητική εντολή.

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

Ηλεκτρονικό εργαστήριο

Προκειμένου να βελτιωθεί η μελέτη της θεωρίας της γραμματικής γλώσσας, οι επαγγελματίες του Mekhmat του Κρατικού Πανεπιστημίου της Μόσχας το 1985 δημιούργησαν έναν ειδικό μεταγλωττιστή. Ονομάστηκε «Ηλεκτρονικό εργαστήριο». Με αυτό, ήταν δυνατή η εισαγωγή, η τροποποίηση και η εκτέλεση προγραμμάτων. Ένα συγκεκριμένο σύνολο ερμηνευτών κυκλοφόρησε το επόμενο έτος. Μιλάμε για τα «Ρομπότ», «Στραφτ», «Δίποδα», «ATV». Αυτό επέτρεψε την απλή και εύκολη εφαρμογή των αλγορίθμων. Αυτός ο μεταγλωττιστής έχει γίνει πολύ δημοφιλής και έχει χρησιμοποιηθεί σε ορισμένους υπολογιστές. Αρκετά για πολύ καιρόΑυτή η γλώσσα προγραμματισμού έχει βελτιωθεί και αλλάξει. Το 1990, μια μεταγενέστερη εκδοχή του εμφανίστηκε σε ένα σχολικό βιβλίο.

Είδωλο

Τώρα η σχολική αλγοριθμική γλώσσα βιώνει τη δεύτερη γέννησή της, αφού αναπτύχθηκε ένα ειδικό πακέτο «Kumir» για Windows και Linux. Το σύστημα λειτουργεί με πολλούς εκτελεστές. Κλασικά μεταξύ αυτών είναι τα "Robot", "Drafter". Το ίδιο πακέτο περιλαμβάνεται στην εγκατάσταση αρχείο linux"Σχολείο". Αυτό το σύστημααναπτύχθηκε ειδικά με εντολή της Ρωσικής Ακαδημίας Επιστημών. Διανέμεται δωρεάν και ελεύθερα. Τα τελευταία χρόνια, η περιγραφόμενη γλώσσα έχει προταθεί ενεργά για χρήση στη ΧΡΗΣΗ ως μία από τις

Γλωσσική Εργασία

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

Διαφορές μεταξύ μηχανικών και αλγοριθμικών γλωσσών

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

Τυποποιημένα χαρακτηριστικά

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

  • απόλυτη ενότητα abs(X);
  • τετραγωνική ρίζα sqrt(X);
  • φυσικό και ln(X), lg(X);
  • ελάχιστη και μέγιστη ελάχιστη (X,Y), max (X, Y);
  • τριγωνομετρικές συναρτήσεις sin(X), cos(X), tg(X), ctg(X).

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

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

Το όνομα "αλγόριθμος" προέρχεται από τη λατινική μορφή του ονόματος του μαθηματικού της Κεντρικής Ασίας al-Khwarizmi - Algorithmi. Ο αλγόριθμος είναι μια από τις βασικές έννοιες της επιστήμης των υπολογιστών και των μαθηματικών.

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

Ο ερμηνευτής χαρακτηρίζεται από:

στοιχειώδεις δράσεις?

σύστημα εντολών?

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

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

Μετά την κλήση της εντολής, ο εκτελεστής εκτελεί την αντίστοιχη στοιχειώδη ενέργεια.

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

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

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

Οι κύριες ιδιότητες των αλγορίθμων είναι οι εξής:

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

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

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

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

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

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

λεκτική (εγγραφές σε φυσική γλώσσα).

γραφικό (εικόνες από γραφικά σύμβολα).

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

προγραμματικά (κείμενα σε γλώσσες προγραμματισμού).

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

Για παράδειγμα. Να γράψετε έναν αλγόριθμο για την εύρεση του μεγαλύτερου κοινού διαιρέτη (GCD) δύο φυσικών αριθμών.

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

ορίστε δύο αριθμούς.

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

προσδιορίστε τον μεγαλύτερο από τους αριθμούς.

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

επαναλάβετε τον αλγόριθμο από το βήμα 2.

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

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

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

υποφέρουν από πολυλογία των αρχείων.

επιτρέπουν διφορούμενη ερμηνεία μεμονωμένων συνταγών.

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

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

Τέτοιος γραφική αναπαράστασηονομάζεται διάγραμμα ροής ή διάγραμμα ροής.

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

Ο Πίνακας 1 παραθέτει τους πιο συχνά χρησιμοποιούμενους χαρακτήρες.

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

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

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

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

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

Καταλαμβάνει μια ενδιάμεση θέση μεταξύ φυσικών και τυπικών γλωσσών.

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

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

Ένα παράδειγμα ψευδοκώδικα είναι η σχολική αλγοριθμική γλώσσα στη ρωσική σημειογραφία (σχολείο AL), που περιγράφεται στο εγχειρίδιο από τον A.G. Kushnirenko et al. "Fundamentals of Informatics and Computer Engineering", 1991. Αυτή η γλώσσα θα αναφέρεται απλώς ως "αλγοριθμική γλώσσα".

Βασικές λέξεις υπηρεσίας

Γενική άποψη του αλγορίθμου:

όνομα αλγορίθμου alg (επιχειρήματα και αποτελέσματα)

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

χρειάζεται ο στόχος του αλγορίθμου

περιγραφή έναρξης των ενδιάμεσων τιμών

| ακολουθία εντολών (σώμα αλγορίθμου)

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

Στην πρόταση alg, μετά το όνομα του αλγορίθμου, σε παρένθεση, τα χαρακτηριστικά (arg, res) και ο τύπος τιμής (ακέραιος, πράγμα, sim, lit ή log) όλων των μεταβλητών εισόδου (ορίσματα) και εξόδου (αποτελέσματα) είναι υποδεικνύεται. Όταν περιγράφονται πίνακες (πίνακες), χρησιμοποιείται η καρτέλα λέξης υπηρεσίας, συμπληρωμένη με ζεύγη ορίων για κάθε ευρετήριο στοιχείων πίνακα.

Παραδείγματα προτάσεων alg:

alg Όγκος και εμβαδόν του κυλίνδρου (arg ref R, H, res ref V, S)

alg Roots QvUr(arg w, b, c, res w x1, x2, res lit t)

alg Εξαίρεση στοιχείου (arg ακέραιος N, arg res καρτέλα στοιχείου A)

alg Διαγώνιος (arg ακέραιος N, arg ακέραιος καρτέλα A, res lit Otvet)

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

αντικατάσταση arg (arg lit Str1, Str2, arg res lit Text)

δίνεται | τα μήκη των υποσυμβολοσειρών Str1 και Str2 είναι τα ίδια

ανάγκη | παντού στη γραμμή Κείμενο η υποσυμβολοσειρά Str1 αντικαθίσταται από Str2

alg Αριθμός μέγιστων (arg ακέραιος N, arg πραγματική καρτέλα A, res ακέραιος K)

δίνεται | N>0

ανάγκη | K - ο αριθμός των μέγιστων στοιχείων στον πίνακα Α

alg Αντίσταση (arg real R1, R2, arg ακέραιος N, res real R)

δίνεται | N>5, R1>0, R2>0

ανάγκη | R - αντίσταση κυκλώματος

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

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

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

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

Η λογική δομή οποιουδήποτε αλγορίθμου μπορεί να αναπαρασταθεί από έναν συνδυασμό τριών βασικών δομών:

ΕΠΟΜΕΝΟ,

διακλάδωση,

Ένα χαρακτηριστικό γνώρισμα των βασικών δομών είναι ότι έχουν μία είσοδο και μία έξοδο.

Υπουργείο Παιδείας Ρωσική ΟμοσπονδίαΚρατικό Τεχνικό Πανεπιστήμιο του Περμ

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

Vikentyeva O. L.

Περίληψη διαλέξεων για το μάθημα "Αλγοριθμικές γλώσσες και προγραμματισμός" (Βασικές αρχές της γλώσσας C ++, Α' εξάμηνο)

Εισαγωγή

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

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

1.1. Αλγόριθμος και πρόγραμμα

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

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

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

1.2 Ιδιότητες του αλγορίθμου

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

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

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

4. Διακριτικότητα - η διαδικασία πρέπει να περιγράφεται χρησιμοποιώντας αδιαίρετο

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

Οι αλγόριθμοι μπορούν να αναπαρασταθούν με τις ακόλουθες μορφές:

1) λεκτική περιγραφή του αλγορίθμου.

2) γραφική περιγραφή του αλγορίθμου.

3) χρησιμοποιώντας μια αλγοριθμική γλώσσα προγραμματισμού

1.2. Μεταγλωττιστές και διερμηνείς

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

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

1.3 Γλώσσες προγραμματισμού

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

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

Οι γλώσσες υψηλού επιπέδου είναι:

1. Η Fortran είναι η πρώτη μεταγλωττισμένη γλώσσα που δημιουργήθηκε σεδεκαετία του '50 του 20ου αιώνα. Εφάρμοσε μια σειρά από σημαντικές έννοιες προγραμματισμού. Για αυτή τη γλώσσα δημιουργήθηκε μεγάλο ποσόβιβλιοθήκες που κυμαίνονται από στατιστικές σουίτες έως δορυφορική διαχείριση, επομένως συνεχίζει να χρησιμοποιείται σε πολλούς οργανισμούς.

2. COBOL - Compiled Language for Economic Calculations and Solutionsεπιχειρηματικά καθήκοντα αναπτύχθηκαν στις αρχές της δεκαετίας του '60. Η Cobol έχει εφαρμόσει πολύ ισχυρά εργαλεία για εργασία με μεγάλες ποσότητες δεδομένων που είναι αποθηκευμένα σε εξωτερικά μέσα.

3. Pascal - δημιουργήθηκε στο τέλος 70s από τον Ελβετό μαθηματικό Niklaus Wirth ειδικά για τη διδασκαλία του προγραμματισμού. Σας επιτρέπει να αναπτύξετε αλγοριθμική σκέψη, να δημιουργήσετε ένα σύντομο, καλά ευανάγνωστο πρόγραμμα, επιδεικνύουν τις βασικές τεχνικές αλγορίθμου, είναι επίσης κατάλληλο για την υλοποίηση μεγάλων έργων.

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

5. Η C - δημιουργήθηκε τη δεκαετία του '70 δεν θεωρήθηκε αρχικά ως μαζική γλώσσα προγραμματισμού. Σχεδιάστηκε να αντικατασταθεί ο assembler για να μπορέσουμε να δημιουργήσουμε τα ίδια αποδοτικά και σύντομα προγράμματα, αλλά να μην εξαρτώνται από έναν συγκεκριμένο επεξεργαστή. Μοιάζει με τον Πασκάλ από πολλές απόψεις και έχει Επιπρόσθετα χαρακτηριστικάνα δουλεύει με τη μνήμη. Περιέχει πολλά εφαρμοσμένα και προγράμματα του συστήματος, καθώς λειτουργικό σύστημα Unix.

6. Η C++ είναι μια αντικειμενοστραφής επέκταση της γλώσσας C που δημιουργήθηκε από τον Bjarne Stroustrup το 1980.

7. Η Java είναι μια γλώσσα που δημιουργήθηκε από τη Sun στην αρχήΔεκαετία του '90 βασισμένο σε C++. Έχει σχεδιαστεί για να απλοποιεί την ανάπτυξη εφαρμογών σε C++ εξαλείφοντας χαρακτηριστικά χαμηλού επιπέδου από αυτήν. κύριο χαρακτηριστικόγλώσσα είναι ότι δεν μεταγλωττίζεται σε κώδικα μηχανής, αλλά σε ανεξάρτητο από πλατφόρμα bytecode (κάθε εντολή καταλαμβάνει ένα byte). Αυτός ο κώδικας μπορεί να εκτελεστεί χρησιμοποιώντας έναν διερμηνέα, την Java Virtual Machine (JVM).

2. Η δομή του προγράμματος σε C++

Ένα πρόγραμμα C έχει την ακόλουθη δομή: #preprocessor directives

. . . . . . . . .

# οδηγίες προεπεξεργαστή συνάρτηση α ()

τελεστές συνάρτησης σε ()

χειριστές

void main () //συνάρτηση με την οποία ξεκινά η εκτέλεση του προγράμματος τελεστές

περιγραφές

αναθέσεις

κενή συνάρτηση δήλωσης

σύνθετος

μετάβαση

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

1) μετατροπή κειμένου προεπεξεργαστή.

2) σύνταξη?

3) διάταξη (επεξεργασία συνδέσμου ή συναρμολόγηση).

Μετά από αυτά τα τρία στάδια σχηματίζεται ο εκτελέσιμος κώδικας του προγράμματος. Το έργο της προ-

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

1) #define - υποδεικνύει τους κανόνες αντικατάστασης στο κείμενο. #define ZERO 0,0

Σημαίνει ότι κάθε χρήση του ονόματος ZERO στο πρόγραμμα θα αντικαθίσταται από

2) #περιλαμβάνω< имя заголовочного файла>- προορίζεται για συμπερίληψη στο κείμενο του προγράμματος του κειμένου από τον κατάλογο "Αρχεία κεφαλίδας" που παρέχεται με τις τυπικές βιβλιοθήκες. Κάθε συνάρτηση βιβλιοθήκης C έχει μια αντίστοιχη περιγραφή σε ένα από τα αρχεία κεφαλίδας. Η λίστα των αρχείων κεφαλίδας ορίζεται από το πρότυπο γλώσσας. Η χρήση της οδηγίας συμπερίληψης δεν περιλαμβάνει την αντίστοιχη τυπική σαλιάρα.

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

Μετά την προεπεξεργασία, δεν παραμένουν οδηγίες προεπεξεργαστή στο κείμενο του προγράμματος.

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

Το σώμα της συνάρτησης ακολουθεί την κεφαλίδα συνάρτησης. Το σώμα μιας συνάρτησης είναι μια ακολουθία ορισμών, δηλώσεων και εκτελέσιμων δηλώσεων που περικλείονται σε σιδερακια ΔΟΝΤΙΩΝ. Κάθε ορισμός, περιγραφή ή δήλωση τελειώνει με ένα ερωτηματικό.

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

int y = 10 ; //όνομα σταθερού float x ; //μεταβλητός

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

Χειριστές - ορίζουν τις ενέργειες του προγράμματος σε κάθε βήμα της εκτέλεσής του

Παράδειγμα προγράμματος Γ:

#περιλαμβάνω //οδηγία προεπεξεργαστή

ερωτήσεις δοκιμής

1. Ποια είναι τα μέρη ενός προγράμματος C++;

2. Σε τι διαφέρει ένας ορισμός από μια δήλωση;

3. Καταγράψτε τα στάδια δημιουργίας ενός εκτελέσιμου προγράμματος σε C++.

4. Τι είναι ο προεπεξεργαστής;

5. Τι είναι η οδηγία προεπεξεργαστή; Δώστε παραδείγματα οδηγιών προεπεξεργαστή.

6. Γράψτε ένα πρόγραμμα που να εκτυπώνει το κείμενο "Το πρώτο μου πρόγραμμα C++"

2. Βασικές διευκολύνσεις της γλώσσας C++ 2.1 Η σύνθεση της γλώσσας

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

Ρύζι. 1.1. Σύνθεση της αλγοριθμικής γλώσσας Έτσι, τα στοιχεία της αλγοριθμικής γλώσσας είναι:

Τα αναγνωριστικά είναι τα ονόματα των αντικειμένων του προγράμματος C. Στο αναγνωριστικό μπορούν να χρησιμοποιηθούν λατινικά γράμματα, αριθμοί και κάτω παύλες. Τα κεφαλαία και τα πεζά γράμματα διακρίνονται, για παράδειγμα PROG1, prog1 και Prog1 είναι τρία διαφορετικά αναγνωριστικά. Ο πρώτος χαρακτήρας πρέπει να είναι γράμμα ή κάτω παύλα (όχι αριθμός). Δεν επιτρέπονται κενά στα αναγνωριστικά.

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

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

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

Διαχωριστικά - αγκύλες, τελεία, κόμμα, χαρακτήρες διαστήματος.

2.1.1. Σταθερές σε C++

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

Οι σταθερές χωρίζονται σε 5 ομάδες:

ολόκληρος;

- πραγματικό (κινητή υποδιαστολή).

απαριθμούνται?

Συμβολικός;

Σειρά.

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

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

Οι ακέραιες σταθερές μπορεί να είναι δεκαδικές, οκταδικές και δεκαεξαδικές. Μια δεκαδική σταθερά ορίζεται ως μια ακολουθία δεκαδικών ψηφίων που δεν ξεκινά από το 0, εκτός εάν αυτός ο αριθμός είναι 0 (παραδείγματα: 8, 0, 192345). Οκταδική σταθερά είναι μια σταθερά που ξεκινά πάντα με 0. Το 0 ακολουθείται από οκταδικά ψηφία (παραδείγματα: 016 - δεκαδική τιμή 14, 01). Οι δεκαεξαδικές σταθερές είναι μια ακολουθία δεκαεξαδικών ψηφίων πριν από τους χαρακτήρες 0x ή 0X (παραδείγματα: 0xA, 0X00F).

ΣΤΟ ανάλογα με την τιμή ενός μεταγλωττιστή ακέραιων σταθερώνπαρουσιάστε το διαφορετικά

σε μνήμη υπολογιστή (δηλαδή, ο μεταγλωττιστής θα αποδώσει τον κατάλληλο τύπο δεδομένων στη σταθερά).

Οι πραγματικές σταθερές έχουν διαφορετική μορφή εσωτερικής αναπαράστασης στη μνήμη του υπολογιστή. Ο μεταγλωττιστής αναγνωρίζει τέτοιες σταθερές από τη μορφή τους. Οι πραγματικές σταθερές μπορούν να αναπαρασταθούν με δύο μορφές: σταθερού σημείου και κινητής υποδιαστολής. Τύπος σταθερού σταθερού σημείου: [ψηφία].[ψηφία] (παραδείγματα: 5.7, .0001, 41.).Τύπος σταθεράς κινητής υποδιαστολής: [ψηφία][.][ψηφία]E|e[+|-][ψηφία ] (παραδείγματα: 0,5e5, .11e-5, 5E3). Στη σημειογραφία των πραγματικών σταθερών, μπορεί να παραλειφθεί είτε ένας ακέραιος είτε ένα κλασματικό μέρος, είτε μια υποδιαστολή, είτε ένα πρόσημο ενός εκθέτη με έναν εκθέτη.

Οι απαριθμημένες σταθερές εισάγονται χρησιμοποιώντας τη λέξη-κλειδί enum. Αυτές είναι συνηθισμένες ακέραιες σταθερές, στις οποίες εκχωρείται μοναδικός και εύχρηστος συμβολισμός. Παραδείγματα: enum (ένα=1, δύο=2, τρία=3, τέσσερα=4);

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

enum( ten=10, three=3, four, five, six);

enum (Κυριακή, Δευτέρα, Τρίτη, Τετάρτη, Πέμπτη, Παρασκευή, Σαούρ-

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

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

\a - ηχητικό σήμα,

\b - επιστροφή ενός βήματος, \n - ροή γραμμής,

\t - οριζόντια καρτέλα.

- Για να αναπαραστήσετε χαρακτήρες: \ , ’ , ? , ” (\\, \’ ,\? ,\”).

- Για να αναπαραστήσετε χαρακτήρες χρησιμοποιώντας δεκαεξαδικούς ή οκταδικούς κωδικούς (\073, \0xF5).

Μια σταθερά συμβολοσειράς είναι μια ακολουθία χαρακτήρων που περικλείονται σε εισαγωγικά.

Οι χαρακτήρες ελέγχου μπορούν επίσης να χρησιμοποιηθούν μέσα σε συμβολοσειρές. Για παράδειγμα: "\nΝέα γραμμή",

“\n\”Γλώσσες αλγοριθμικού προγραμματισμού υψηλού επιπέδου \”” .

2.2. Τύποι δεδομένων σε C++

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

1) εσωτερική αναπαράσταση δεδομένων στη μνήμη του υπολογιστή.

2) το σύνολο των τιμών που μπορούν να λάβουν οι τιμές αυτού του τύπου.

3) λειτουργίες και λειτουργίες που μπορούν να εφαρμοστούν σε δεδομένα αυτού του τύπου.

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

int (ακέραιος αριθμός)

χαρακτήρας (χαρακτήρας)

wchar_t (ευρύς χαρακτήρας) bool (boolean) float (πραγματικό)

διπλό (πραγματική διπλής ακρίβειας)

Υπάρχουν 4 προσδιοριστές τύπων που καθορίζουν την εσωτερική αναπαράσταση και το εύρος των τυπικών τύπων

σύντομη (σύντομη) μακρά (μακριά) υπογεγραμμένη (υπογεγραμμένη)

ανυπόγραφο

2.2.1. πληκτρολογήστε int

Οι τιμές αυτού του τύπου είναι ακέραιοι.

Το μέγεθος του τύπου int δεν καθορίζεται από το πρότυπο, αλλά εξαρτάται από τον υπολογιστή και τον μεταγλωττιστή. Για έναν επεξεργαστή 16 bit, εκχωρούνται 2 byte για αυτόν, για έναν επεξεργαστή 32 bit, 4 byte.

Εάν υπάρχει ένας σύντομος προσδιοριστής πριν από το int, τότε εκχωρούνται 2 byte για τον αριθμό και εάν ο προσδιοριστής είναι μεγάλος, τότε 4 byte. Το σύνολο εξαρτάται από την ποσότητα μνήμης που εκχωρείται για το αντικείμενο. επιτρεπόμενες τιμές, την οποία το αντικείμενο μπορεί να δεχθεί:

short int - καταλαμβάνει 2 byte, επομένως έχει εύρος -32768 ..+32767;

long int - καταλαμβάνει 4 byte, επομένως έχει εύρος -2 147 483 648..+2 147 483 647

Ο τύπος int είναι ο ίδιος με τον τύπο short int σε υπολογιστές 16 bit και ο τύπος long int σε υπολογιστές 32 bit.

Οι υπογεγραμμένοι και μη υπογεγραμμένοι τροποποιητές επηρεάζουν επίσης το σύνολο των έγκυρων τιμών που μπορεί να λάβει ένα αντικείμενο:

ανυπόγραφο σύντομο int - καταλαμβάνει 2 byte, επομένως έχει εύρος 0 ..65536. unsigned long int - καταλαμβάνει 4 byte, επομένως, έχει εύρος 0..+4 294 967

2.2.2. τύπου χαρ

Οι τιμές αυτού του τύπου είναι στοιχεία ενός πεπερασμένου διατεταγμένου συνόλου χαρακτήρων. Σε κάθε χαρακτήρα εκχωρείται ένας αριθμός, ο οποίος ονομάζεται κωδικός χαρακτήρα. Κάτω από τιμή τύπος χαρακτήραΕκχωρείται 1 byte. Ο τύπος χαρακτήρων μπορεί να χρησιμοποιηθεί με τους προσδιοριστές με υπογραφή και χωρίς υπογραφή. Τα δεδομένα υπογεγραμμένων χαρακτήρων μπορούν να αποθηκεύσουν τιμές στην περιοχή -128 έως 127. Ο ανυπόγραφος χαρακτήρας μπορεί να αποθηκεύσει τιμές στην περιοχή από 0 έως 255. Η κωδικοποίηση χρησιμοποιεί ASCII (Αμερικανικός Τυπικός Κώδικας εχθρός Διεθνούς Ανταλλαγής). Τα σύμβολα με κωδικούς από το 0 έως το 31 είναι σύμβολα υπηρεσιών και έχουν ανεξάρτητη σημασία μόνο σε δηλώσεις εισόδου/εξόδου.

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

2.2.3. τύπου wchar_t

Σχεδιασμένο για να λειτουργεί με ένα σύνολο χαρακτήρων για τους οποίους η κωδικοποίηση δεν επαρκεί 1 byte, όπως το Unicode. Το μέγεθος αυτού του τύπου, κατά κανόνα, αντιστοιχεί στον κοντό τύπο. Οι σταθερές συμβολοσειράς αυτού του τύπου γράφονται με ένα πρόθεμα L: L"String #1".

2.2.4. τύπου bool

Ο τύπος bool ονομάζεται boolean. Οι τιμές του μπορούν να πάρουν τις τιμές αληθές και ψευδές. Η εσωτερική αναπαράσταση του false είναι 0, οποιαδήποτε άλλη τιμή ερμηνεύεται ως true.

2.2.5. τύπους κινητής υποδιαστολής.

Εσωτερική αναπαράσταση πραγματικός αριθμόςαποτελείται από 2 μέρη: μάντισσα και εκθέτη. Σε υπολογιστές συμβατούς με IBM, οι τιμές float καταλαμβάνουν 4 byte, εκ των οποίων ένα bit εκχωρείται για το πρόσημο του mantissa, 8 bit για τον εκθέτη και 24 για το mantissa.

Οι τιμές διπλού τύπου καταλαμβάνουν 8 byte, 11 και 52 ψηφία κατανέμονται για την παραγγελία και τη μάντισσα, αντίστοιχα. Το μήκος της μάντισσας καθορίζει την ακρίβεια του αριθμού, ενώ το μήκος του εκθέτη καθορίζει το εύρος του.

Εάν το όνομα του διπλού τύπου προηγείται από τον προσδιοριστή long, τότε τα byte εκχωρούνται για την τιμή.

2.2.6. κενός τύπος

Προς την Οι κύριοι τύποι περιλαμβάνουν επίσης τον τύπο κενού Το σύνολο τιμών αυτού του τύπου είναι κενό.

2.3. Μεταβλητές

Μια μεταβλητή στη C++ είναι μια ονομαζόμενη περιοχή μνήμης που αποθηκεύει δεδομένα ενός συγκεκριμένου τύπου. Μια μεταβλητή έχει ένα όνομα και μια τιμή. Το όνομα χρησιμοποιείται για να αναφέρεται στην περιοχή της μνήμης όπου είναι αποθηκευμένη η τιμή. Οποιαδήποτε μεταβλητή πρέπει να δηλωθεί πριν από τη χρήση. Παραδείγματα:

Γενική άποψη του χειριστή περιγραφής:

[κλάση μνήμης] όνομα τύπου [αρχικοποιητής].

Η κλάση αποθήκευσης μπορεί να λάβει τις ακόλουθες τιμές: auto, extern, static, register. Η κλάση αποθήκευσης ορίζει τη διάρκεια ζωής και το εύρος της μεταβλητής. Εάν η κλάση αποθήκευσης δεν ορίζεται ρητά, τότε ο μεταγλωττιστής την καθορίζει με βάση το περιβάλλον της δήλωσης. Η διάρκεια ζωής μπορεί να είναι σταθερή - κατά την εκτέλεση του προγράμματος, ή προσωρινή - κατά τη διάρκεια του μπλοκ. Το πεδίο εφαρμογής είναι το μέρος του κειμένου του προγράμματος από το οποίο επιτρέπεται η κανονική πρόσβαση σε μια μεταβλητή. Συνήθως το πεδίο εφαρμογής είναι το ίδιο με το πεδίο εφαρμογής. Εκτός εάν υπάρχει μια μεταβλητή με το ίδιο όνομα στο εσωτερικό μπλοκ.

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

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

Το extern είναι μια καθολική μεταβλητή, βρίσκεται σε άλλο σημείο του προγράμματος (σε άλλο αρχείο ή νεότερο στο κείμενο). Χρησιμοποιείται για τη δημιουργία μεταβλητών που είναι διαθέσιμες σε όλα τα αρχεία προγράμματος.

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

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

int a? //καθολική μεταβλητή void main()(

int b;//τοπική μεταβλητή

extern int x;//variable x ορίζεται αλλού static int c;//τοπική στατική μεταβλητή a=1;//ανάθεση σε καθολική μεταβλητή

int a;//τοπική μεταβλητή α

a=2;//ανάθεση σε τοπική μεταβλητή::a=3;//ανάθεση σε καθολική μεταβλητή

int x=4;//καθορίστε και αρχικοποιήστε το x

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

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

Το όνομα της μεταβλητής πρέπει να είναι μοναδικό εντός του πεδίου εφαρμογής του.

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

2.4 Σημάδια λειτουργιών στη C++

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

Ενιαίες πράξεις

& λάβετε τη διεύθυνση του τελεστή

* Αναφορά διεύθυνσης (αποαναφορά)

- unary minus, αλλάζει το πρόσημο του αριθμητικού τελεστή

++ Αύξηση μονάδας:

λειτουργία προθέματος - αυξάνει τον τελεστέα πριν χρησιμοποιηθεί

Η λειτουργία postfix αυξάνει έναν τελεστή μετά τη χρήση του

int a=(m++)+n; // a=4,m=2,n=2

int b=m+(++n);//a=3,m=1,n=3

μειωθεί κατά ένα:

λειτουργία προθέματος - μειώνει τον τελεστή στη χρήση του

Η λειτουργία postfix μειώνει έναν τελεστή μετά τη χρήση του

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

έχει τελεστή

έχει δύο μορφές

μέγεθος έκφρασης

sizeof(float)//4

sizeof(1.0)//8 αφού οι πραγματικές σταθερές είναι προεπιλεγμένες

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

Παραδείγματα

Ο αλγόριθμος στην αλγοριθμική γλώσσα σε γενικούς όρους γράφεται με τη μορφή:

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

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

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

αλγΆθροισμα τετραγώνων ( αργ ολόκληρος n, Τομή ολόκληροςΜΙΚΡΟ) δεδομένος| n > 0 απαραίτητη| S = 1*1 + 2*2 + 3*3 + … + n*n νωρίς ολόκληρος i | εισαγωγή n; S:=0 | ncγια i από 1 έως n | | S:= S + i * i | kts | συμπέρασμα"S=", S ενάντιος

Ηλεκτρονικό εργαστήριο

Για να ενισχύσουν τη θεωρητική μελέτη του προγραμματισμού σε μια αλγοριθμική γλώσσα, το 1985, ειδικοί από το Mekhmat του Κρατικού Πανεπιστημίου της Μόσχας δημιούργησαν έναν συντάκτη-μεταγλωττιστή "Ηλεκτρονικό εργαστήριο"("E" - προς τιμήν του Ershov), το οποίο σας επιτρέπει να εισάγετε, να επεξεργάζεστε και να εκτελείτε προγράμματα σε μια αλγοριθμική γλώσσα.

Το 1986, κυκλοφόρησε ένα σύνολο κόσμων εκπαίδευσης (εκτελεστές) για το "E-practice": "Robot", "Drafter", "Two-leged", "All-terrain όχημα", που σας επιτρέπουν να εισάγετε απλά τις έννοιες του αλγορίθμου. Το "E-workshop" εφαρμόστηκε σε υπολογιστές: Yamaha, Corvette, UKNC και χρησιμοποιήθηκε ευρέως.

Αυτή η γλώσσα προγραμματισμού βελτιώνεται συνεχώς και μια περιγραφή μιας μεταγενέστερης έκδοσης του "E-workshop" εμφανίστηκε σε ένα εγχειρίδιο του 1990. Το σύστημα προγραμματισμού "KuMir" ("Σετ Εκπαιδευτικών Κόσμων"), το οποίο υποστηρίζει αυτό το εγχειρίδιο, κυκλοφόρησε από την επιχείρηση InfoMir το 1990. Η γλώσσα αυτού του συστήματος ονομάζεται επίσης "KuMir".

Το 1995, το "KuMir" προτάθηκε από το Υπουργείο Παιδείας της Ρωσικής Ομοσπονδίας ως το κύριο εκπαιδευτικό υλικό για το μάθημα "Βασικές αρχές της Πληροφορικής και της Μηχανικής Υπολογιστών" με βάση το εγχειρίδιο των A. G. Kushnirenko, G. V. Lebedev και R. A. Svorenya. .

Κριτική

Ωστόσο, πρέπει να σημειωθεί ότι η αλγοριθμική γλώσσα, ελλείψει λεπτομερειών που τη συνδέουν άμεσα με την αρχιτεκτονική του υπολογιστή, ωστόσο, αναφέρεται στην Algolo -όπως γλώσσες, διδάσκει έμμεσα στους μαθητές να βασίζονται στην αρχιτεκτονική των μηχανών von Neumann. (Η αρχιτεκτονική Von Neumann είναι μια πρακτική εφαρμογή μιας προηγούμενης ιδέας που ονομάζεται Turing Machine. Υπάρχουν και άλλες ιδέες εκτός από την ιδέα του Turing. Η πιο δημοφιλής από αυτές ονομάζεται Lambda Calculus: Ο Alonzo Church εργάστηκε σε αυτό. Η Lisp Machine είναι μια αρχιτεκτονική που βασίζεται στη Lambda - λογισμός.)

Συνδέσεις

  • A. P. Ershov. Αλγοριθμική γλώσσα στο σχολικό μάθημα των βασικών της πληροφορικής και της τεχνολογίας υπολογιστών. 05/07/1985
  • Φόρουμ για τις ρωσικές γλώσσες προγραμματισμού και εργαλεία ανάπτυξης

Ίδρυμα Wikimedia. 2010 .

Δείτε τι είναι η "Ρωσική αλγοριθμική γλώσσα" σε άλλα λεξικά:

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

    Αυτός ο όρος έχει άλλες έννοιες, βλέπε Δράκος (έννοιες). Ένα παράδειγμα μπλοκ διαγράμματος αλγορίθμου στη γλώσσα DRAKON dragon του σχήματος DRAKON (Φιλική ρωσική αλγοριθμική γλώσσα που παρέχει ορατότητα) οπτική ... ... Wikipedia

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

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

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

    Ένα παράδειγμα μπλοκ διαγράμματος ενός αλγορίθμου στη γλώσσα DRAKON dragon diagrams DRAKON (Φιλική ρωσική αλγοριθμική γλώσσα που παρέχει ορατότητα) είναι μια οπτική αλγοριθμική γλώσσα που δημιουργήθηκε στο πλαίσιο του διαστημικού προγράμματος Buran. Ανάπτυξη δεδομένης γλώσσας... Βικιπαίδεια

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

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

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

Ένας αλγόριθμος γραμμένος σε αλγοριθμική γλώσσα πρέπει να έχει όνομα. Είναι επιθυμητό να επιλέξετε το όνομα έτσι ώστε να είναι σαφές ποια λύση περιγράφει ο δεδομένος αλγόριθμος. Για να επισημάνετε το όνομα του αλγορίθμου, μπροστά του αναγράφεται η λέξη υπηρεσίας ALG (ALGORITHM). Πίσω από το όνομα του αλγορίθμου (συνήθως με νέα γραμμή) καταγράψτε τις εντολές του. Για να υποδείξει την αρχή και το τέλος του αλγορίθμου, οι εντολές του περικλείονται σε ένα ζεύγος λέξεων υπηρεσίας BEGIN (START) και KON (END). Οι εντολές γράφονται διαδοχικά.

ALG - το όνομα του αλγορίθμου

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

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

ALG - προς_αποθήκη

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

Πολύ συχνά, κατά τη σύνταξη αλγορίθμων, καθίσταται απαραίτητο να χρησιμοποιηθεί ο ίδιος αλγόριθμος ως βοηθητικός, ο οποίος, επιπλέον, μπορεί να είναι πολύ περίπλοκος και δυσκίνητος. Θα ήταν παράλογο, ξεκινώντας τη δουλειά, να συνθέτουμε και να απομνημονεύουμε έναν τέτοιο αλγόριθμο κάθε φορά για την επακόλουθη χρήση του. Επομένως, στην πράξη, χρησιμοποιούνται ευρέως οι λεγόμενοι ενσωματωμένοι (ή τυπικοί) βοηθητικοί αλγόριθμοι, δηλ. τέτοιους αλγόριθμους που είναι συνεχώς διαθέσιμοι στον ερμηνευτή. Η προσφυγή σε τέτοιους αλγόριθμους πραγματοποιείται με τον ίδιο τρόπο όπως και στους «συνηθισμένους» βοηθητικούς αλγόριθμους. Ένας εκτελεστής ρομπότ μπορεί να έχει έναν ενσωματωμένο βοηθητικό αλγόριθμο που μετακινείται σε μια αποθήκη από οπουδήποτε στο πεδίο εργασίας. για τον εκτελεστή της γλώσσας προγραμματισμού BASIC, αυτός είναι, για παράδειγμα, ο ενσωματωμένος αλγόριθμος "SIN".

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

ALG - κίνηση

ΚΙΝΗΣΗ στους ΔΡΟΜΟΥΣ

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

IF συνθήκη IF κατάσταση IF άκρη

TO σειρά 1 TO σειρά TO δεξιά

ELSE series2 ΟΛΑ ΤΑ ΑΛΛΑ προς τα εμπρός

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

AT Condition 1: Series 1

AT Condition 2: Series 2

Κατάσταση AT N: σειρά N

ELSE Σειρά N+1

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

Κατάσταση BYA NC

Σειρά ΠΡΙΝ κατάσταση