Κάθε χρόνο το ενδιαφέρον για τον προγραμματισμό αυξάνεται. Και αν σε ιδρύματα που ειδικεύονται στη σύνταξη προγραμμάτων βασίζονται σε μια τέτοια γλώσσα προγραμματισμού όπως η C ++, τότε σε σχολεία και τεχνικές σχολές οι μαθητές εξοικειώνονται με το "Pascal". Και ήδη με βάση αυτή τη γλώσσα, αρχίζουν να κατανοούν τον προγραμματισμό μέσω της χρήσης του λογισμικού Delphi. Θα πρέπει να σημειωθεί αμέσως ότι αυτές οι γλώσσες προγραμματισμού παρέχουν έναν τεράστιο χώρο για την εκδήλωση της φαντασίας τους. Και αν με τη βοήθεια της γλώσσας Pascal μπορείτε να εξοικειωθείτε με τις βασικές έννοιες του προγραμματισμού, τότε στους Δελφούς μπορείτε ήδη να γράψετε ένα πλήρες πρόγραμμα. Και μια αρκετά σημαντική θέση στη σύνταξη προγραμμάτων καταλαμβάνει μερικές φορές η επίλυση πινάκων σε "Pascal".
Η παρουσία ενός μεγάλου αριθμού πολύ διαφορετικών μεταβλητών
Υπάρχουν πολλές διαφορετικές μεταβλητές σε μια γλώσσα προγραμματισμού, οι οποίες χαρακτηρίζονται από την παρουσία μιας μόνο τιμής. Μπορούν να αποθηκεύσουν μια μεμονωμένη τιμή που έχει έναν συγκεκριμένο τύπο. Οι μεταβλητές συμβολοσειράς είναι η εξαίρεση. Αυτοί είναιείναι μια συλλογή από εκείνα τα δεδομένα για τα οποία ο τύπος χαρακτήρα είναι χαρακτηριστικός. Αλλά ακόμη και τέτοιες μεταβλητές συνήθως λαμβάνονται υπόψη από τη θέση μιας ξεχωριστής τιμής.
Δεν είναι μυστικό ότι με τη βοήθεια ενός υπολογιστή μπορείτε να μειώσετε σημαντικά τον χρόνο εκτέλεσης ορισμένων εργασιών που σχετίζονται με μεγάλες ποσότητες δεδομένων. Αλλά πώς, όταν χρησιμοποιούνται μόνο εκείνες οι μεταβλητές που έχουν τύπους γνωστούς στους ανθρώπους, είναι δυνατόν να αποθηκεύονται τα αποτελέσματα της εργασίας στη μνήμη και επίσης να γίνεται επεξεργασία αυτών των δεδομένων που περιέχουν μεγάλο αριθμό σειρών; Τέτοιες εργασίες είναι αρκετά συνηθισμένες σε κάθε τομέα δραστηριότητας.
Φυσικά, μπορείτε πάντα να εισάγετε όσες μεταβλητές χρειάζεστε για να πετύχετε τους στόχους σας. Μπορείτε επίσης να ορίσετε κάποιες τιμές για αυτά. Αλλά ο κωδικός του προγράμματος θα αυξηθεί μόνο από αυτό. Είναι δύσκολο να διαβάσετε τον κώδικα που έχει μεγάλο αριθμό γραμμών. Ειδικά όταν είναι απαραίτητο να βρείτε σφάλματα.
Συνεπώς, οι προγραμματιστές σκέφτηκαν αυτήν την ερώτηση. Αυτός είναι ο λόγος για τον οποίο οι γλώσσες που έχουν αναπτυχθεί μέχρι στιγμής έχουν τέτοιες μεταβλητές που καθιστούν δυνατή την αποθήκευση ενός τεράστιου όγκου δεδομένων από μόνες τους. Ο πίνακας στο "Pascal" έχει αλλάξει πολύ στην προσέγγιση του προγραμματισμού. Επομένως, θεωρείται σημαντική μεταβλητή σε μια γλώσσα προγραμματισμού.
Η χρήση πινάκων μπορεί να μειώσει δραστικά το μέγεθος κώδικα
Κάτω από αυτόν τον όρο κρύβεται μια διατεταγμένη ακολουθία δεδομένων, η οποία χαρακτηρίζεται από έναν τύπο. Επιπλέον, όλα αυτά τα δεδομένα έχουν το ίδιο όνομα. Θα πρέπει επίσηςΘα πρέπει να σημειωθεί ότι πολλά αντικείμενα του πραγματικού κόσμου μπορούν να χωρέσουν αυτόν τον ορισμό: λεξικά, κινούμενα σχέδια και πολλά άλλα. Ωστόσο, ο ευκολότερος τρόπος για να παρουσιάσετε έναν πίνακα στο "Pascal" είναι με τη μορφή ενός είδους πίνακα. Κάθε μεμονωμένο κελί περιέχει μία μεταβλητή. Χρησιμοποιώντας συντεταγμένες, μπορείτε να προσδιορίσετε τη θέση της μεταβλητής που θα καταλάβει στον γενικό πίνακα.
Τι σημαίνει ένας μονοδιάστατος πίνακας;
Ο πιο απλός πίνακας είναι αυτός που είναι γραμμικός. Σε αυτόν τον πίνακα, για να προσδιορίσετε τη θέση της παραμέτρου, αρκεί να καθορίσετε μόνο έναν αριθμό. Με βάση αυτούς σχηματίζονται πιο σύνθετοι πίνακες.
Για να περιγράψετε μονοδιάστατους πίνακες στο "Pascal", απλώς εισαγάγετε τον ακόλουθο κωδικό: Πληκτρολογήστε Array of.
Οι αριθμοί είναι εκείνες οι μεταβλητές που μπορούν να έχουν τακτικό τύπο. Όταν προσδιορίζετε ένα εύρος, αξίζει να καταλάβετε ότι ο αρχικός αριθμός δεν μπορεί να είναι μεγαλύτερος από τον τελικό. Ο τύπος που έχουν τα στοιχεία του πίνακα μπορεί να είναι απολύτως οποιοσδήποτε - είτε τυπικός είτε έχει ήδη περιγραφεί. Η επιλογή θα εξαρτηθεί από την ανάγκη επίλυσης ενός συγκεκριμένου προβλήματος.
Πώς περιγράφεται ένας γραμμικός πίνακας;
Είναι δυνατό να περιγραφούν αμέσως μονοδιάστατοι πίνακες στο "Pascal". Αυτό πρέπει να γίνει σε ειδικό τμήμα, το οποίο είναι απαραίτητο για τη συγκεκριμένη διαδικασία. Θα χρειαστεί να εισαγάγετε τον ακόλουθο κωδικό: Var: Array Of.
Για να κατανοήσετε πώς μπορείτε να περιγράψετε έναν πίνακα στο Pascal, θα πρέπει να εισαγάγετε τον ακόλουθο κωδικό:
- Var
- S, VV: Array[5..50] Real;
- K: Πίνακας['C'.. 'R'] Ακέραιου αριθμού;
- Z: Array [-10..10] Of Word;
- E: Array [3..30] Real.
Σε αυτό το παράδειγμα, οι μεταβλητές S, VV και T είναι ένας πίνακας εκείνων των αριθμών που είναι πραγματικοί. Η μεταβλητή K κρύβει τον τύπο χαρακτήρων και αυτά τα στοιχεία. Που είναι ακέραιοι. Ο πίνακας Z αποθηκεύει αριθμούς των οποίων ο τύπος είναι Word.
Μεταξύ όλων των ενεργειών που μπορούν να χρησιμοποιηθούν κατά την εργασία με έναν πίνακα, διακρίνεται η ανάθεση. Ολόκληρος ο πίνακας μπορεί να υποβληθεί σε αυτό. Για παράδειγμα, S:=VV. Ωστόσο, πρέπει να γίνει κατανοητό ότι οι λειτουργίες ανάθεσης μπορούν να υποβληθούν μόνο σε έναν πίνακα στο "Pascal" που έχει έναν συγκεκριμένο τύπο.
Δεν υπάρχουν άλλες λειτουργίες που μπορούν να εκτελεστούν σε ολόκληρο τον πίνακα ταυτόχρονα. Ωστόσο, μπορείτε να εργαστείτε με στοιχεία με τον ίδιο τρόπο όπως και με άλλους πρώτους αριθμούς που έχουν συγκεκριμένο τύπο. Για να αναφερθείτε σε μια μεμονωμένη παράμετρο, πρέπει να καθορίσετε το όνομα του πίνακα. Χρησιμοποιώντας αγκύλες, πρέπει να προσδιορίσετε τον δείκτη που είναι χαρακτηριστικός του επιθυμητού στοιχείου. Για παράδειγμα: K[12].
Βασικές διαφορές μεταξύ πινάκων και άλλων μεταβλητών
Η βασική διαφορά μεταξύ των στοιχείων του πίνακα και των απλών μεταβλητών είναι ότι είναι δυνατό να τοποθετήσετε σε αγκύλες όχι μόνο την τιμή του δείκτη, αλλά και μια τέτοια έκφραση που μπορεί να οδηγήσει στην επιθυμητή τιμή. Ένα παράδειγμα έμμεσης διευθυνσιοδότησης μπορεί να είναι: V[K]. Σε αυτή την περίπτωση, η μεταβλητή K παίρνει μια συγκεκριμένη τιμή. Από αυτόέπεται ότι μπορείτε να χρησιμοποιήσετε έναν βρόχο όταν γεμίζετε, επεξεργάζεστε και εκτυπώνετε έναν πίνακα.
Αυτή η μορφή οργάνωσης μπορεί να προκύψει στην περίπτωση μεταβλητών συμβολοσειρών που είναι αρκετά κοντά στις ιδιότητες τους σε πίνακες τύπου Char. Υπάρχουν όμως και διαφορές. Είναι οι εξής:
- Οι μεταβλητές συμβολοσειράς μπορούν πάντα να εισαχθούν από το πληκτρολόγιο και να εκτυπωθούν στην οθόνη.
- Οι μεταβλητές συμβολοσειράς έχουν περιορισμένο μήκος. Μπορείτε να εισαγάγετε έως 255 χαρακτήρες. Το κρίσιμο μέγεθος του πίνακα είναι 64 kb.
Ποιες μέθοδοι μπορούν να χρησιμοποιηθούν για την εμφάνιση δεδομένων πίνακα στην οθόνη;
Πρέπει να προσέξετε τον τρόπο με τον οποίο εμφανίζονται τα περιεχόμενα του πίνακα. Υπάρχουν πολλά.
- Writeln (A[1], A[2], A[3]). Ένα τέτοιο παράδειγμα, αν και πρωτόγονο, μπορεί να δείξει πώς μπορείτε να έχετε άμεση πρόσβαση σε κάθε μεμονωμένο στοιχείο που είναι εγγενές στον πίνακα. Ωστόσο, ορισμένα από τα πλεονεκτήματα που έχουν οι πίνακες Pascal έναντι των απλών μεταβλητών δεν είναι ορατά εδώ.
-
Program A1;
Var B: Array [1..10] Of Integer;
K: Integer;
Begin
For K:=1 έως 10 Do {Αυτή η εντολή επαναλαμβάνεται με την παράμετρο }
Readln(A[K]); Το {A[I] εισάγεται χρησιμοποιώντας το πληκτρολόγιο }
For K:=10 Downto 1 Do {Ο πίνακας εκτυπώνεται με αντίστροφη σειρά}
Write(A[K], 'VVV') Τέλος.
Ένας παρόμοιος κωδικός του προγράμματος για πίνακες στο "Pascal" δείχνει πώς μπορείτε να εισαγάγετε 10 αριθμούς χρησιμοποιώντας το πληκτρολόγιο, να τους εκτυπώσετε, να αναδιατάξετε τις τιμές με αντίστροφη σειρά. Αν ξαναγραφεί το ίδιο πρόγραμμα απόχρησιμοποιώντας μεγάλο αριθμό μεταβλητών αντί για πίνακα, τότε ο κώδικας θα αυξηθεί σημαντικά. Και αυτό περιπλέκει πολύ τη διαδικασία ανάγνωσης του προγράμματος.
Αύξηση δυνατοτήτων μέσω της χρήσης πινάκων
Είναι επίσης δυνατό να γεμίσετε πίνακες με τιμές που είναι ίσες με το τετράγωνο των δεικτών στοιχείων. Είναι επίσης δυνατό να δημιουργηθεί ένας τέτοιος πίνακας συμβολοσειρών στο "Pascal", που θα επιτρέπει την αυτόματη εισαγωγή όλων των αριθμών. Όπως μπορείτε να δείτε, η χρήση ενός πίνακα ενισχύει σημαντικά τις δυνατότητες της γλώσσας προγραμματισμού Pascal.
Η επεξεργασία γραμμικών πινάκων είναι πολύ συνηθισμένη σε διάφορες εργασίες. Επομένως, δεν υπάρχει τίποτα περίεργο στο γεγονός ότι σπουδάζονται σε ινστιτούτα και σχολεία. Επιπλέον, οι δυνατότητες που έχουν οι πίνακες είναι αρκετά εκτεταμένες.
Τι κρύβεται κάτω από δισδιάστατους πίνακες;
Μπορείτε να φανταστείτε έναν πίνακα που αποτελείται από πολλές σειρές ταυτόχρονα. Κάθε μεμονωμένη σειρά περιέχει πολλά κελιά. Σε μια τέτοια κατάσταση, για να προσδιοριστεί με ακρίβεια η θέση των κελιών, είναι απαραίτητο να σημειωθεί όχι ένας δείκτης, όπως συνέβη με τους γραμμικούς πίνακες, αλλά δύο - αριθμοί που είναι χαρακτηριστικοί μιας γραμμής και μιας στήλης. Οι δισδιάστατοι πίνακες στο "Pascal" χαρακτηρίζονται από παρόμοια αναπαράσταση.
Πώς να περιγράψετε πίνακες αυτού του είδους;
Η δομή δεδομένων που βρίσκεται στη γλώσσα Pascal για την αποθήκευση των τιμών ενός τέτοιου πίνακα είναιτο όνομα ενός δισδιάστατου πίνακα. Η περιγραφή ενός τέτοιου πίνακα είναι δυνατή αμέσως χρησιμοποιώντας δύο μεθόδους.
- Var B: Array[1..15] Of Array [1..30] Of Integer;
- Var B: Πίνακας [1..15, 1..30] Ακέραιου αριθμού.
Σε όλες αυτές τις περιπτώσεις, περιγράφεται ένας δισδιάστατος πίνακας, ο οποίος έχει 15 σειρές και 30 στήλες. Οι περιγραφές που δόθηκαν παραπάνω είναι απολύτως ισοδύναμες. Για να ξεκινήσετε να εργάζεστε με οποιοδήποτε από τα στοιχεία, είναι απαραίτητο να εκχωρήσετε δύο δείκτες. Για παράδειγμα, A[6][5] ή A[6, 5].
Η έξοδος στην οθόνη θα είναι σχεδόν η ίδια όπως στην περίπτωση ενός μονοδιάστατου πίνακα. Χρειάζεται μόνο να καθορίσετε δύο ευρετήρια. Από όλες τις άλλες απόψεις, δεν υπάρχουν διαφορές ως τέτοιες, επομένως δεν χρειάζεται να το συζητάμε για πολύ καιρό.
Πρώτος τρόπος ταξινόμησης
Μερικές φορές καθίσταται απαραίτητο να ταξινομήσετε δεδομένα. Για αυτό, η γλώσσα έχει αντίστοιχες εντολές. Υπάρχουν δύο αλγόριθμοι με τους οποίους μπορεί να ταξινομηθεί ένας πίνακας σε Pascal. Η έννοια της μεθόδου άμεσης επιλογής έγκειται στο γεγονός ότι με την ένθεση του βρόχου, απολύτως κάθε μεταβλητή πίνακα θα συγκριθεί με άλλες τιμές. Με άλλα λόγια, εάν υπάρχει ένας πίνακας 15 αριθμών, τότε ο πρώτος αριθμός 1 θα συγκριθεί με άλλους αριθμούς. Αυτό θα συμβεί μέχρι, για παράδειγμα, να βρεθεί το στοιχείο που είναι μεγαλύτερο από τον πρώτο αριθμό. Στη συνέχεια, η σύγκριση θα γίνει ακριβώς αυτό το σχήμα. Αυτό θα επαναληφθεί μέχρι να βρεθεί το μεγαλύτερο.στοιχείο από όλα τα προτεινόμενα. Αυτή η μέθοδος είναι αρκετά απλή για εκείνους τους προγραμματιστές που μόλις άρχισαν να εργάζονται στη γλώσσα.
Δεύτερη μέθοδος ταξινόμησης πίνακα
Ο δεύτερος τρόπος είναι η φούσκα. Η ουσία αυτής της τεχνικής έγκειται στο γεγονός ότι τα γειτονικά στοιχεία συγκρίνονται σε ζεύγη. Για παράδειγμα, 1 και 2, 2 και 3, 3 και 4, κ.λπ. Σε περίπτωση που η τιμή που βρέθηκε συμμορφώνεται πλήρως με τις συνθήκες ταξινόμησης, θα μετακινηθεί στο τέλος ολόκληρου του πίνακα, δηλαδή θα εμφανιστεί ως «φούσκα». Αυτός ο αλγόριθμος είναι ο πιο δύσκολος να θυμάστε. Ωστόσο, δεν χρειάζεται να το αλέσετε. Το κύριο πράγμα είναι να κατανοήσουμε ολόκληρη τη δομή του κώδικα. Και μόνο σε αυτή την περίπτωση μπορεί κανείς να ισχυριστεί ότι θα πετύχει μεγάλα ύψη στον προγραμματισμό.
Συμπέρασμα
Ελπίζουμε να καταλαβαίνετε τι είναι οι πίνακες και πώς μπορείτε να ταξινομήσετε για να βρείτε μια συγκεκριμένη τιμή ή να επιτύχετε έναν συγκεκριμένο στόχο. Εάν έχετε επιλέξει το "Pascal" για την επίλυση ενός συγκεκριμένου προβλήματος, στο οποίο οι πίνακες καταλαμβάνουν σημαντική θέση, τότε θα πρέπει να προσεγγίσετε διεξοδικά τη μελέτη τους. Αυτό επηρεάζεται από έναν παράγοντα όπως η παρουσία στη γλώσσα ενός αρκετά μεγάλου αριθμού μεταβλητών που χρησιμοποιούνται σε ορισμένες περιπτώσεις για την απλοποίηση ολόκληρου του κώδικα στο σύνολό του. Οι πίνακες θεωρούνται δικαίως οι κύριες ποσότητες, η μελέτη των οποίων πρέπει να πραγματοποιείται χωρίς αποτυχία.