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