Οι πίνακες δύο διαστάσεων στη ΓΛΩΣΣΑ αποτελούν μια επέκταση των πινάκων μιας διάστασης και χρησιμοποιούνται για την αποθήκευση και διαχείριση δεδομένων σε μορφή πινάκων (γραμμές και στήλες). Με τους δίτιμους πίνακες μπορούμε να αναπαραστήσουμε δομές δεδομένων όπως πίνακες αριθμών, μητρώα, και άλλα.
Στόχος αυτού του μαθήματος είναι να κατανοήσετε:
Ένας πίνακας δύο διαστάσεων είναι μια δομή δεδομένων που αποθηκεύει μια συλλογή στοιχείων του ίδιου τύπου σε μορφή πινάκων, όπου κάθε στοιχείο προσδιορίζεται από δύο δείκτες: έναν για τη γραμμή και έναν για τη στήλη.
Οι πίνακες δύο διαστάσεων χρησιμοποιούνται για:
Παράδειγμα: Ένας πίνακας που αποθηκεύει τις βαθμολογίες 5 μαθητών σε 3 μαθήματα:
ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: βαθμοί[5, 3]
Στη ΓΛΩΣΣΑ, οι πίνακες δύο διαστάσεων δηλώνονται με τον ακόλουθο τρόπο:
ΜΕΤΑΒΛΗΤΕΣ [Τύπος]: [Όνομα Πίνακα]([Γραμμές], [Στήλες])
Όπου:
Παρακάτω παρουσιάζονται κάποια παραδείγματα δήλωσης πινάκων δύο διαστάσεων:
ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: βαθμοί[10, 5]
ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: θερμοκρασίες[7, 24]
ΜΕΤΑΒΛΗΤΕΣ ΧΑΡΑΚΤΗΡΕΣ: γράμματα[5, 10]
Σημείωση: Το μέγεθος του πίνακα (αριθμός γραμμών και στηλών) πρέπει να είναι θετικές ακέραιες σταθερές ή εκφράσεις που υπολογίζονται κατά τον χρόνο μεταγλώττισης.
Η πρόσβαση σε ένα στοιχείο ενός πίνακα δύο διαστάσεων γίνεται χρησιμοποιώντας το όνομα του πίνακα ακολουθούμενο από τους δύο δείκτες (γραμμή, στήλη) μέσα σε αγκύλες.
Σύνταξη:
[Όνομα Πίνακα]([Δείκτης Γραμμής], [Δείκτης Στήλης])
Όπου:
Παρακάτω παρουσιάζονται κάποια παραδείγματα πρόσβασης σε στοιχεία πινάκων δύο διαστάσεων:
βαθμοί[2, 3] ← 18
ΓΡΑΨΕ βαθμοί[2, 3]
άθροισμα ← βαθμοί[1, 1] + βαθμοί[2, 2]
Οι δείκτες των πινάκων δύο διαστάσεων στη ΓΛΩΣΣΑ ξεκινούν από το 1 και για τις γραμμές και τις στήλες.
Παράδειγμα:
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: π[3, 4], i, j
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 3
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 4
π[i, j] ← i * j
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ π[1, 1] ! Εκτυπώνει 1
ΓΡΑΨΕ π[3, 4] ! Εκτυπώνει 12
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Σημείωση: Προσέξτε να μην ξεπεράσετε τα όρια του πίνακα (αριθμό γραμμών και στηλών), καθώς αυτό μπορεί να προκαλέσει σφάλματα στο πρόγραμμα.
Με τους πίνακες δύο διαστάσεων στη ΓΛΩΣΣΑ μπορείτε να εκτελέσετε διάφορες πράξεις, όπως:
Για να εκτυπώσετε όλα τα στοιχεία ενός πίνακα δύο διαστάσεων, μπορείτε να χρησιμοποιήσετε δύο εσωτερικούς βρόχους ΓΙΑ:
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: π[3, 4], i, j
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 3
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 4
ΓΡΑΨΕ π[i, j]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Μπορείτε να εκτελέσετε αριθμητικές πράξεις με τα στοιχεία ενός πίνακα δύο διαστάσεων, όπως άθροισμα όλων των στοιχείων, άθροισμα μιας γραμμής ή στήλης, κ.λπ.
Παράδειγμα Άθροισμα Όλων των Στοιχείων:
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: π[3, 4], i, j, άθροισμα
ΑΡΧΗ
άθροισμα ← 0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 3
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 4
άθροισμα ← άθροισμα + π[i, j]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Το άθροισμα όλων των στοιχείων είναι: ', άθροισμα
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Μπορείτε να βρείτε το μέγιστο ή το ελάχιστο στοιχείο ενός πίνακα δύο διαστάσεων χρησιμοποιώντας εσωτερικούς βρόχους και συνθήκες.
Παράδειγμα Μέγιστου:
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: π[3, 4], i, j, μέγιστος
ΑΡΧΗ
μέγιστος ← π[1, 1]
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 3
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 4
ΑΝ π[i, j] > μέγιστος ΤΟΤΕ
μέγιστος ← π[i, j]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Ο μέγιστος είναι: ', μέγιστος
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Ένα πρόγραμμα που δηλώνει έναν πίνακα 3x4 και διαβάζει τις τιμές από τον χρήστη:
ΠΡΟΓΡΑΜΜΑ Εισαγωγή_Πίνακα
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: π[3, 4], i, j
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 3
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 4
ΓΡΑΨΕ 'Δώσε το στοιχείο στη γραμμή ', i, ' και στήλη ', j, ': '
ΔΙΑΒΑΣΕ π[i, j]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 3
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 4
ΓΡΑΨΕ 'π[', i, ',', j, '] = ', π[i, j]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Ένα πρόγραμμα που υπολογίζει το άθροισμα όλων των στοιχείων ενός πίνακα 2x3:
ΠΡΟΓΡΑΜΜΑ Άθροισμα_Πίνακα
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: π[2, 3], i, j, άθροισμα
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 2
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 3
ΓΡΑΨΕ 'Δώσε το στοιχείο στη γραμμή ', i, ' και στήλη ', j, ': '
ΔΙΑΒΑΣΕ π[i, j]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
άθροισμα ← 0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 2
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 3
άθροισμα ← άθροισμα + π[i, j]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Το άθροισμα όλων των στοιχείων είναι: ', άθροισμα
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Ένα πρόγραμμα που βρίσκει το μέγιστο στοιχείο ενός πίνακα 4x4:
ΠΡΟΓΡΑΜΜΑ Μέγιστο_Πίνακα
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: π[4, 4], i, j, μέγιστος
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 4
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 4
ΓΡΑΨΕ 'Δώσε το στοιχείο στη γραμμή ', i, ' και στήλη ', j, ': '
ΔΙΑΒΑΣΕ π[i, j]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
μέγιστος ← π[1, 1]
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 4
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 4
ΑΝ π[i, j] > μέγιστος ΤΟΤΕ
μέγιστος ← π[i, j]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Το μέγιστο στοιχείο είναι: ', μέγιστος
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Ένα πρόγραμμα που υπολογίζει το άθροισμα κάθε γραμμής ενός πίνακα 3x3:
ΠΡΟΓΡΑΜΜΑ Άθροισμα_Γραμμής
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: π[3, 3], i, j, άθροισμα_γραμμής
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 3
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 3
ΓΡΑΨΕ 'Δώσε το στοιχείο στη γραμμή ', i, ' και στήλη ', j, ': '
ΔΙΑΒΑΣΕ π[i, j]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 3
άθροισμα_γραμμής ← 0
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 3
άθροισμα_γραμμής ← άθροισμα_γραμμής + π[i, j]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Το άθροισμα της γραμμής ', i, ' είναι: ', άθροισμα_γραμμής
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Ένα πρόγραμμα που αναζητά ένα στοιχείο σε έναν πίνακα 2x2:
ΠΡΟΓΡΑΜΜΑ Αναζήτηση_Πίνακα
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: π[2, 2], i, j, α, βρέθηκε
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 2
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 2
ΓΡΑΨΕ 'Δώσε το στοιχείο στη γραμμή ', i, ' και στήλη ', j, ': '
ΔΙΑΒΑΣΕ π[i, j]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Δώσε το στοιχείο που ψάχνεις: '
ΔΙΑΒΑΣΕ α
βρέθηκε ← 0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 2
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 2
ΑΝ π[i, j] = α ΤΟΤΕ
βρέθηκε ← 1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ βρέθηκε = 1 ΤΟΤΕ
ΓΡΑΨΕ 'Το στοιχείο βρέθηκε.'
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'Το στοιχείο δεν βρέθηκε.'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να δηλώνει έναν πίνακα 4x5 και να διαβάζει τις τιμές από τον χρήστη. Στη συνέχεια, να εκτυπώνει όλα τα στοιχεία του πίνακα.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει τις τιμές ενός πίνακα 3x3 από τον χρήστη και να υπολογίζει και να εκτυπώνει το άθροισμα όλων των στοιχείων.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει τις τιμές ενός πίνακα 4x4 από τον χρήστη και να βρίσκει και να εκτυπώνει το μέγιστο στοιχείο.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει τις τιμές ενός πίνακα 2x5 από τον χρήστη και να βρίσκει και να εκτυπώνει το ελάχιστο στοιχείο.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει τις τιμές ενός πίνακα 3x4 από τον χρήστη και να υπολογίζει και να εκτυπώνει το άθροισμα κάθε γραμμής.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει τις τιμές ενός πίνακα 3x4 από τον χρήστη και να υπολογίζει και να εκτυπώνει το άθροισμα κάθε στήλης.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει τις τιμές ενός πίνακα 2x3 από τον χρήστη και να αναζητά αν ένας αριθμός που θα δώσει ο χρήστης υπάρχει στον πίνακα.
Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει τις βαθμολογίες 5 μαθητών σε 3 μαθήματα, να τις αποθηκεύει σε έναν πίνακα και να υπολογίζει και να εκτυπώνει τον μέσο όρο κάθε μαθητή.