Πίνακες Δύο Διαστάσεων στη ΓΛΩΣΣΑ

Εισαγωγή

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

Στόχος αυτού του μαθήματος είναι να κατανοήσετε:

  • Τι είναι οι πίνακες δύο διαστάσεων.
  • Πώς να δηλώνετε πίνακες δύο διαστάσεων στη ΓΛΩΣΣΑ.
  • Πώς να προσπελάζετε και να τροποποιείτε τα στοιχεία ενός δίτιμου πίνακα.
  • Πώς να εκτελείτε πράξεις με πίνακες δύο διαστάσεων.

Θεωρία των Πινάκων Δύο Διαστάσεων

Ορισμός

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

Χαρακτηριστικά

  • Στατικό Μέγεθος: Το μέγεθος του πίνακα (αριθμός γραμμών και στηλών) καθορίζεται κατά τη δήλωσή του και δεν μπορεί να αλλάξει κατά την εκτέλεση του προγράμματος.
  • Ομοιογενής Τύπος: Όλα τα στοιχεία ενός πίνακα πρέπει να είναι του ίδιου τύπου δεδομένων.
  • Δείκτες: Κάθε στοιχείο προσδιορίζεται από δύο δείκτες: έναν για τη γραμμή και έναν για τη στήλη. Οι δείκτες ξεκινούν από το 1.
  • Πρόσβαση: Η πρόσβαση σε οποιοδήποτε στοιχείο του πίνακα γίνεται σε σταθερό χρόνο, χρησιμοποιώντας τους δύο δείκτες.

Χρήσεις

Οι πίνακες δύο διαστάσεων χρησιμοποιούνται για:

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

Παράδειγμα: Ένας πίνακας που αποθηκεύει τις βαθμολογίες 5 μαθητών σε 3 μαθήματα:

ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: βαθμοί[5, 3]

Δήλωση Πινάκων Δύο Διαστάσεων στη ΓΛΩΣΣΑ

Σύνταξη Δήλωσης

Στη ΓΛΩΣΣΑ, οι πίνακες δύο διαστάσεων δηλώνονται με τον ακόλουθο τρόπο:

ΜΕΤΑΒΛΗΤΕΣ
  [Τύπος]: [Όνομα Πίνακα]([Γραμμές], [Στήλες])

Όπου:

  • [Τύπος]: Ο τύπος δεδομένων των στοιχείων του πίνακα (π.χ. ΑΚΕΡΑΙΟΣ, ΠΡΑΓΜΑΤΙΚΟΣ, ΧΑΡΑΚΤΗΡΑΣ, κ.λπ.).
  • [Όνομα Πίνακα]: Το όνομα του πίνακα.
  • [Γραμμές]: Ο αριθμός των γραμμών του πίνακα.
  • [Στήλες]: Ο αριθμός των στηλών του πίνακα.

Παραδείγματα Δήλωσης

Παρακάτω παρουσιάζονται κάποια παραδείγματα δήλωσης πινάκων δύο διαστάσεων:

  • Πίνακας Βαθμολογιών:
    ΜΕΤΑΒΛΗΤΕΣ
      ΑΚΕΡΑΙΕΣ: βαθμοί[10, 5]
  • Πίνακας Πραγματικών:
    ΜΕΤΑΒΛΗΤΕΣ
      ΠΡΑΓΜΑΤΙΚΕΣ: θερμοκρασίες[7, 24]
  • Πίνακας Χαρακτήρων:
    ΜΕΤΑΒΛΗΤΕΣ
      ΧΑΡΑΚΤΗΡΕΣ: γράμματα[5, 10]

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

Πρόσβαση σε Στοιχεία Πίνακα Δύο Διαστάσεων

Πρόσβαση σε Στοιχεία

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

Σύνταξη:

[Όνομα Πίνακα]([Δείκτης Γραμμής], [Δείκτης Στήλης])

Όπου:

  • [Όνομα Πίνακα]: Το όνομα του πίνακα.
  • [Δείκτης Γραμμής]: Η θέση της γραμμής του στοιχείου (ξεκινά από το 1).
  • [Δείκτης Στήλης]: Η θέση της στήλης του στοιχείου (ξεκινά από το 1).

Παραδείγματα Πρόσβασης

Παρακάτω παρουσιάζονται κάποια παραδείγματα πρόσβασης σε στοιχεία πινάκων δύο διαστάσεων:

  • Ανάθεση Τιμής:
    βαθμοί[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]
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ 'Ο μέγιστος είναι: ', μέγιστος
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Παραδείγματα Πινάκων Δύο Διαστάσεων

Παράδειγμα 1: Δήλωση και Εισαγωγή Δεδομένων

Ένα πρόγραμμα που δηλώνει έναν πίνακα 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]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Παράδειγμα 2: Άθροισμα Στοιχείων

Ένα πρόγραμμα που υπολογίζει το άθροισμα όλων των στοιχείων ενός πίνακα 2x3:

ΠΡΟΓΡΑΜΜΑ Άθροισμα_Πίνακα
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: π[2, 3], i, j, άθροισμα
ΑΡΧΗ
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 2
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 3
      ΓΡΑΨΕ 'Δώσε το στοιχείο στη γραμμή ', i, ' και στήλη ', j, ': '
      ΔΙΑΒΑΣΕ π[i, j]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  άθροισμα ← 0
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 2
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 3
      άθροισμα ← άθροισμα + π[i, j]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ 'Το άθροισμα όλων των στοιχείων είναι: ', άθροισμα
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Παράδειγμα 3: Εύρεση Μέγιστου

Ένα πρόγραμμα που βρίσκει το μέγιστο στοιχείο ενός πίνακα 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]
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ 'Το μέγιστο στοιχείο είναι: ', μέγιστος
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Παράδειγμα 4: Άθροισμα Γραμμής

Ένα πρόγραμμα που υπολογίζει το άθροισμα κάθε γραμμής ενός πίνακα 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, ' είναι: ', άθροισμα_γραμμής
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Παράδειγμα 5: Αναζήτηση Στοιχείου

Ένα πρόγραμμα που αναζητά ένα στοιχείο σε έναν πίνακα 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 ΤΟΤΕ
    ΓΡΑΨΕ 'Το στοιχείο βρέθηκε.'
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ 'Το στοιχείο δεν βρέθηκε.'
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Ασκήσεις

Άσκηση 1: Δήλωση και Εισαγωγή Δεδομένων

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να δηλώνει έναν πίνακα 4x5 και να διαβάζει τις τιμές από τον χρήστη. Στη συνέχεια, να εκτυπώνει όλα τα στοιχεία του πίνακα.

Άσκηση 2: Άθροισμα Στοιχείων

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει τις τιμές ενός πίνακα 3x3 από τον χρήστη και να υπολογίζει και να εκτυπώνει το άθροισμα όλων των στοιχείων.

Άσκηση 3: Εύρεση Μέγιστου

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει τις τιμές ενός πίνακα 4x4 από τον χρήστη και να βρίσκει και να εκτυπώνει το μέγιστο στοιχείο.

Άσκηση 4: Εύρεση Ελαχίστου

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει τις τιμές ενός πίνακα 2x5 από τον χρήστη και να βρίσκει και να εκτυπώνει το ελάχιστο στοιχείο.

Άσκηση 5: Άθροισμα Γραμμής

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει τις τιμές ενός πίνακα 3x4 από τον χρήστη και να υπολογίζει και να εκτυπώνει το άθροισμα κάθε γραμμής.

Άσκηση 6: Άθροισμα Στήλης

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει τις τιμές ενός πίνακα 3x4 από τον χρήστη και να υπολογίζει και να εκτυπώνει το άθροισμα κάθε στήλης.

Άσκηση 7: Αναζήτηση Στοιχείου

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει τις τιμές ενός πίνακα 2x3 από τον χρήστη και να αναζητά αν ένας αριθμός που θα δώσει ο χρήστης υπάρχει στον πίνακα.

Άσκηση 8: Μέσος Όρος Πίνακα

Να γράψετε ένα πρόγραμμα στη ΓΛΩΣΣΑ που να διαβάζει τις βαθμολογίες 5 μαθητών σε 3 μαθήματα, να τις αποθηκεύει σε έναν πίνακα και να υπολογίζει και να εκτυπώνει τον μέσο όρο κάθε μαθητή.