Οι πίνακες μιας διάστασης στη ΓΛΩΣΣΑ αποτελούν μια από τις βασικότερες δομές δεδομένων για την αποθήκευση και διαχείριση μιας ακολουθίας ομοειδών δεδομένων. Με τους πίνακες μπορούμε να αποθηκεύουμε πολλά δεδομένα του ίδιου τύπου υπό ένα κοινό όνομα, και να έχουμε πρόσβαση σε κάθε στοιχείο ξεχωριστά.
Στόχος αυτού του μαθήματος είναι να κατανοήσετε:
Ένας πίνακας μιας διάστασης είναι μια δομή δεδομένων που αποθηκεύει μια ακολουθία στοιχείων του ίδιου τύπου. Κάθε στοιχείο του πίνακα έχει μια μοναδική θέση, η οποία προσδιορίζεται από έναν δείκτη.
Οι πίνακες μιας διάστασης χρησιμοποιούνται για:
Παράδειγμα: Ένας πίνακας που αποθηκεύει τις βαθμολογίες 5 μαθητών:
ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: βαθμοί[5]
Στη ΓΛΩΣΣΑ, οι πίνακες δηλώνονται με τον ακόλουθο τρόπο:
ΜΕΤΑΒΛΗΤΕΣ [Τύπος]: [Όνομα Πίνακα]([Μέγεθος])
Όπου:
Παρακάτω παρουσιάζονται κάποια παραδείγματα δήλωσης πινάκων:
ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: βαθμοί[10]
ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: θερμοκρασίες[30]
ΜΕΤΑΒΛΗΤΕΣ ΧΑΡΑΚΤΗΡΕΣ: γράμματα[26]
ΜΕΤΑΒΛΗΤΕΣ ΣΥΜΒΟΛΟΣΕΙΡΕΣ: ονόματα[20]
Σημείωση: Το μέγεθος του πίνακα πρέπει να είναι μια θετική ακέραια σταθερά ή έκφραση που υπολογίζεται κατά τον χρόνο μεταγλώττισης.
Η πρόσβαση σε ένα στοιχείο ενός πίνακα γίνεται χρησιμοποιώντας το όνομα του πίνακα ακολουθούμενο από τον δείκτη του στοιχείου μέσα σε αγκύλες.
Σύνταξη:
[Όνομα Πίνακα]([Δείκτης])
Όπου:
Παρακάτω παρουσιάζονται κάποια παραδείγματα πρόσβασης σε στοιχεία πινάκων:
βαθμοί[1] ← 18
ΓΡΑΨΕ βαθμοί[1]
άθροισμα ← βαθμοί[1] + βαθμοί[2]
Οι δείκτες των πινάκων στη ΓΛΩΣΣΑ ξεκινούν από το 1 και όχι από το 0, όπως σε πολλές άλλες γλώσσες προγραμματισμού.
Παράδειγμα:
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: π[5], i
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
π[i] ← i * 10
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ π[1] ! Εκτυπώνει 10
ΓΡΑΨΕ π[5] ! Εκτυπώνει 50
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Σημείωση: Προσέξτε να μην ξεπεράσετε τα όρια του πίνακα, καθώς αυτό μπορεί να προκαλέσει σφάλματα στο πρόγραμμα.
Με τους πίνακες στη ΓΛΩΣΣΑ μπορείτε να εκτελέσετε διάφορες πράξεις, όπως:
Για να εκτυπώσετε όλα τα στοιχεία ενός πίνακα, μπορείτε να χρησιμοποιήσετε έναν βρόχο ΓΙΑ:
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: π[5], i
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
ΓΡΑΨΕ π[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Μπορείτε να εκτελέσετε αριθμητικές πράξεις με τα στοιχεία ενός πίνακα, όπως άθροισμα, γινόμενο, κ.λπ.
Παράδειγμα Άθροισμα:
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: π[5], i, άθροισμα
ΑΡΧΗ
άθροισμα ← 0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
άθροισμα ← άθροισμα + π[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Το άθροισμα είναι: ', άθροισμα
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Μπορείτε να βρείτε το μέγιστο ή το ελάχιστο στοιχείο ενός πίνακα χρησιμοποιώντας βρόχους και συνθήκες.
Παράδειγμα Μέγιστου:
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: π[5], i, μέγιστος
ΑΡΧΗ
μέγιστος ← π[1]
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 5
ΑΝ π[i] > μέγιστος ΤΟΤΕ
μέγιστος ← π[i]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Ο μέγιστος είναι: ', μέγιστος
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Ένα πρόγραμμα που δηλώνει έναν πίνακα 10 ακέραιων αριθμών, και διαβάζει τις τιμές από τον χρήστη:
ΠΡΟΓΡΑΜΜΑ Βαθμολογίες_Μαθητών
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: βαθμοί[10], i
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
ΓΡΑΨΕ 'Δώσε τον βαθμό του ', i, '-ου μαθητή: '
ΔΙΑΒΑΣΕ βαθμοί[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
ΓΡΑΨΕ 'Ο βαθμός του ', i, '-ου μαθητή είναι: ', βαθμοί[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Ένα πρόγραμμα που υπολογίζει το άθροισμα των στοιχείων ενός πίνακα:
ΠΡΟΓΡΑΜΜΑ Άθροισμα_Πίνακα
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: π[5], i, άθροισμα
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
ΓΡΑΨΕ 'Δώσε το ', i, '-οστό στοιχείο: '
ΔΙΑΒΑΣΕ π[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
άθροισμα ← 0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
άθροισμα ← άθροισμα + π[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Το άθροισμα των στοιχείων είναι: ', άθροισμα
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Ένα πρόγραμμα που βρίσκει το μέγιστο στοιχείο ενός πίνακα:
ΠΡΟΓΡΑΜΜΑ Μέγιστο_Πίνακα
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: π[10], i, μέγιστος
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
ΓΡΑΨΕ 'Δώσε το ', i, '-οστό στοιχείο: '
ΔΙΑΒΑΣΕ π[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
μέγιστος ← π[1]
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 10
ΑΝ π[i] > μέγιστος ΤΟΤΕ
μέγιστος ← π[i]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Το μέγιστο στοιχείο είναι: ', μέγιστος
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Ένα πρόγραμμα που αναζητά ένα στοιχείο σε έναν πίνακα:
ΠΡΟΓΡΑΜΜΑ Αναζήτηση_Πίνακα
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: π[10], i, α, βρέθηκε
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
ΓΡΑΨΕ 'Δώσε το ', i, '-οστό στοιχείο: '
ΔΙΑΒΑΣΕ π[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Δώσε το στοιχείο που ψάχνεις: '
ΔΙΑΒΑΣΕ α
βρέθηκε ← 0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
ΑΝ π[i] = α ΤΟΤΕ
βρέθηκε ← 1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ βρέθηκε = 1 ΤΟΤΕ
ΓΡΑΨΕ 'Το στοιχείο βρέθηκε.'
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'Το στοιχείο δεν βρέθηκε.'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Ένα πρόγραμμα που αντιστρέφει τα στοιχεία ενός πίνακα:
ΠΡΟΓΡΑΜΜΑ Αντιστροφή_Πίνακα
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: π[10], i, temp
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
ΓΡΑΨΕ 'Δώσε το ', i, '-οστό στοιχείο: '
ΔΙΑΒΑΣΕ π[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
temp ← π[i]
π[i] ← π[11 - i]
π[11 - i] ← temp
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Ο πίνακας μετά την αντιστροφή:'
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
ΓΡΑΨΕ π[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να δηλώνει έναν πίνακα 10 ακέραιων αριθμών, να διαβάζει τις τιμές από τον χρήστη και να εκτυπώνει τα στοιχεία του.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει 10 αριθμούς από τον χρήστη, να τους αποθηκεύει σε έναν πίνακα και να υπολογίζει και να εκτυπώνει το άθροισμά τους.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει 15 αριθμούς από τον χρήστη, να τους αποθηκεύει σε έναν πίνακα και να βρίσκει και να εκτυπώνει τον μέγιστο αριθμό.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει 12 αριθμούς από τον χρήστη, να τους αποθηκεύει σε έναν πίνακα και να βρίσκει και να εκτυπώνει τον ελάχιστο αριθμό.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει 8 αριθμούς από τον χρήστη, να τους αποθηκεύει σε έναν πίνακα και να αναζητά αν ένας αριθμός που θα δώσει ο χρήστης υπάρχει στον πίνακα.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει τις βαθμολογίες 10 μαθητών, να τις αποθηκεύει σε έναν πίνακα και να υπολογίζει και να εκτυπώνει τον μέσο όρο.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει 6 αριθμούς από τον χρήστη, να τους αποθηκεύει σε έναν πίνακα και να αντιστρέφει τα στοιχεία του πίνακα.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει 5 αριθμούς από τον χρήστη, να τους αποθηκεύει σε έναν πίνακα και να τους ταξινομεί σε αύξουσα σειρά.