📌 9.1 Τι είναι πίνακας (Ορισμός)

Οι πίνακες είναι ένα σύνολο αντικειμένων ίδιου τύπου τα οποία αναφέρονται με ένα κοινό όνομα. Κάθε ένα από τα αντικείμενα που απαρτίζουν τον πίνακα λέγεται στοιχείο του πίνακα.

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

Παράδειγμα: Θερμοκρασία[1], Θερμοκρασία[2], ..., Θερμοκρασία[30]

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

🔹 Μονοδιάστατοι Πίνακες

Οι πίνακες που χρησιμοποιούν ένα μόνο δείκτη για την αναφορά στοιχείων ονομάζονται μονοδιάστατοι.

🔹 Δισδιάστατοι & Πολυδιάστατοι Πίνακες

Ένας πίνακας με 2 δείκτες είναι ένας δισδιάστατος πίνακας. Εκτός από μονοδιάστατους και δισδιάστατους πίνακες υπάρχουν πίνακες με περισσότερες διαστάσεις (τρισδιάστατοι, τετραδιάστατοι και γενικά πολυδιάστατοι), ανάλογα με τον αριθμό των δεικτών.

Σημείωση: Τα περισσότερα προβλήματα αντιμετωπίζονται με τη χρήση πινάκων μονοδιάστατων ή δισδιάστατων.

🔹 Δήλωση Πίνακα στη ΓΛΩΣΣΑ

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

ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Α[100]
  ΠΡΑΓΜΑΤΙΚΕΣ: Β[50]
  ΛΟΓΙΚΕΣ: C[20]
  ΧΑΡΑΚΤΗΡΕΣ: ΟΝΟΜΑ[30]

🔹 Επεξεργασία Πίνακα

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

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100
  ΔΙΑΒΑΣΕ Α[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

📌 9.2 Πλεονεκτήματα και Μειονεκτήματα

✅ Πλεονεκτήματα

  • Δυνατότητα αποθήκευσης δεδομένων στη μνήμη.
  • Βολικός τρόπος για τη διαχείριση δεδομένων ίδιου τύπου.
  • Απαραίτητοι όταν τα δεδομένα πρέπει να διατηρούνται στη μνήμη μέχρι το τέλος της εκτέλεσης.

❌ Μειονεκτήματα

  • Κατανάλωση μνήμης: Κάθε πίνακας δεσμεύει από την αρχή του προγράμματος πολλές θέσεις μνήμης. Σε ένα μεγάλο και σύνθετο πρόγραμμα η άσκοπη χρήση πινάκων μπορεί να οδηγήσει ακόμα και σε αδυναμία εκτέλεσης του προγράμματος.
  • Στατική δομή: Οι πίνακες είναι στατικές δομές και το μέγεθός τους πρέπει να δηλώνεται στην αρχή του προγράμματος, ενώ παραμένει υποχρεωτικά σταθερό κατά την εκτέλεση.
  • Περιορισμός δυνατοτήτων: Το σταθερό μέγεθος περιορίζει τις δυνατότητες του προγράμματος.
Συμπέρασμα: Αν τα δεδομένα που εισάγονται σε ένα πρόγραμμα πρέπει να διατηρούνται στη μνήμη μέχρι το τέλος της εκτέλεσης, τότε η χρήση πινάκων βοηθάει ή συχνά είναι απαραίτητη. Σε άλλη περίπτωση μπορεί να αποφεύγεται η χρήση τους.

📌 9.3 Τυπικές Επεξεργασίες Πινάκων

  1. Υπολογισμός αθροίσματος στοιχείων του πίνακα με κοινά χαρακτηριστικά (π.χ. ίδια γραμμή ή ίδια στήλη σε δισδιάστατους).
  2. Εύρεση μέγιστου/ελάχιστου: Σε μη ταξινομημένους πίνακες τα στοιχεία πρέπει να συγκριθούν ένα προς ένα. Αν ο πίνακας είναι ταξινομημένος, το μέγιστο και το ελάχιστο βρίσκονται στα δύο ακραία στοιχεία.
  3. Ταξινόμηση: Κατά αύξουσα ή φθίνουσα σειρά με τη μέθοδο της ευθείας ανταλλαγής (Bubble Sort). Η μέθοδος αυτή δεν είναι η πιο αποδοτική. Η επιλογή του καλύτερου αλγορίθμου εξαρτάται από το πλήθος των στοιχείων και την αρχική διάταξη.
  4. Αναζήτηση:
    • Σειριακή αναζήτηση: Για μη ταξινομημένους πίνακες. Είναι η πιο απλή αλλά και η λιγότερο αποτελεσματική μέθοδος.
    • Δυαδική αναζήτηση: Για ταξινομημένους πίνακες. Είναι σαφώς αποδοτικότερη από τη σειριακή.
  5. Συγχώνευση: Δημιουργία ενός νέου ταξινομημένου πίνακα από δύο ή περισσότερους ταξινομημένους πίνακες.

📌 Παρατηρήσεις & Κανόνες Χρήσης

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

⚠️ Κανόνες Χρήσης Πινάκων

  • Να δίνουμε αρχικές τιμές σε όλους τους πίνακες.
  • Να μην ξεπερνάμε τα όρια του πίνακα, όπως έχουν οριστεί στη δήλωση μεταβλητών.
  • Η επεξεργασία γίνεται στα στοιχεία του πίνακα, άρα αναφερόμαστε πάντα στο όνομα του πίνακα το οποίο συνοδεύεται από έναν δείκτη (ακέραια ποσότητα, σταθερή ή μεταβλητή σε [ ]).
  • Όλα τα στοιχεία του πίνακα πρέπει να έχουν τον ίδιο τύπο, όπως ορίστηκε στο τμήμα δηλώσεων.
  • Να εξετάζουμε αν η χρήση πίνακα είναι απαραίτητη. Αν δεν είναι απαραίτητος για την επίλυση του προβλήματος, ΜΗΝ τον χρησιμοποιούμε.
💡 Συμβουλή: Κάνε κλικ σε κάθε ερώτηση για να δεις την αναλυτική απάντηση.

1. Τι είναι πίνακας; Πώς αναφερόμαστε σε κάθε στοιχείο του;

▼

Οι πίνακες είναι ένα σύνολο αντικειμένων ίδιου τύπου τα οποία αναφέρονται με ένα κοινό όνομα. Κάθε ένα από τα αντικείμενα που απαρτίζουν τον πίνακα λέγεται στοιχείο του πίνακα.

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

Το όνομα του πίνακα καθορίζει μια ομάδα διαδοχικών θέσεων στη μνήμη του υπολογιστή.

2. Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα από τη χρήση πινάκων;

▼

Πλεονεκτήματα:

  • Δίνουν τη δυνατότητα αποθήκευσης των δεδομένων στη μνήμη.
  • Είναι ένας βολικός τρόπος για τη διαχείριση δεδομένων ίδιου τύπου.
  • Είναι απαραίτητοι όταν τα δεδομένα πρέπει να διατηρούνται στη μνήμη μέχρι το τέλος της εκτέλεσης.

Μειονεκτήματα:

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

3. Ποιες τυπικές επεξεργασίες πινάκων γνωρίζετε;

▼
  1. Υπολογισμός αθροίσματος στοιχείων με κοινά χαρακτηριστικά (π.χ. ίδια γραμμή/στήλη).
  2. Εύρεση μέγιστου/ελάχιστου: Σε μη ταξινομημένους πίνακες σύγκριση ένα προς ένα. Σε ταξινομημένους, βρίσκονται στα ακραία στοιχεία.
  3. Ταξινόμηση: Κατά αύξουσα/φθίνουσα με τη μέθοδο της ευθείας ανταλλαγής (Bubble Sort). Δεν είναι η πιο αποδοτική.
  4. Αναζήτηση:
    • Σειριακή: Για μη ταξινομημένους (απλή, λιγότερο αποτελεσματική).
    • Δυαδική: Για ταξινομημένους (αποδοτικότερη).
  5. Συγχώνευση: Δημιουργία νέου ταξινομημένου πίνακα από δύο ή περισσότερους ταξινομημένους.

4. Τι είναι οι παράλληλοι πίνακες;

▼

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

Για παράδειγμα, αν έχουμε πίνακες ΟΝΟΜΑ[50] και ΒΑΘΜΟΣ[50], ο μαθητής με όνομα στη θέση 1 έχει το βαθμό του στη θέση 1 του άλλου πίνακα.

5. Ποιοι κανόνες πρέπει να τηρούνται στη χρήση πινάκων;

▼
  • Να δίνουμε αρχικές τιμές σε όλους τους πίνακες.
  • Να μην ξεπερνάμε τα όρια του πίνακα όπως ορίστηκαν στη δήλωση.
  • Η επεξεργασία γίνεται στα στοιχεία (όνομα + δείκτης σε [ ]).
  • Όλα τα στοιχεία πρέπει να είναι του ίδιου τύπου.
  • Να εξετάζουμε αν η χρήση είναι απαραίτητη — αν όχι, να μην τον χρησιμοποιούμε.

6. Τι διαφορά έχουν οι μονοδιάστατοι από τους δισδιάστατους πίνακες;

▼

Οι μονοδιάστατοι πίνακες χρησιμοποιούν έναν δείκτη για την αναφορά στα στοιχεία τους (π.χ. Α[i]).

Οι δισδιάστατοι πίνακες χρησιμοποιούν δύο δείκτες (π.χ. Β[i, j] ή Β[i][j] ανάλογα με τη σύνταξη).

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

7. Πώς δηλώνεται ένας πίνακας στη ΓΛΩΣΣΑ και γιατί πρέπει να δηλώνεται το μέγεθός του;

▼

Ο πίνακας δηλώνεται στο τμήμα ΜΕΤΑΒΛΗΤΕΣ μαζί με τις υπόλοιπες μεταβλητές, αναφέροντας τον τύπο και το μέγεθος σε αγκύλες:

ΑΚΕΡΑΙΕΣ: Α[100]
ΠΡΑΓΜΑΤΙΚΕΣ: Β[50]

Το μέγεθος πρέπει να δηλώνεται για να δεσμευτούν οι αντίστοιχες συνεχόμενες θέσεις μνήμης από την αρχή του προγράμματος. Οι πίνακες είναι στατικές δομές — το μέγεθος παραμένει σταθερό κατά την εκτέλεση.

🎯 Οδηγίες: Επίλεξε μία απάντηση σε κάθε ερώτηση. Θα δεις άμεση ανατροφοδότηση.

1. Τι τύπου δεδομένα μπορεί να περιέχει ένας πίνακας;

Δεδομένα οποιουδήποτε τύπου μαζί
Δεδομένα μόνο ίδιου τύπου
Μόνο ακέραιους αριθμούς
Μόνο πραγματικούς αριθμούς

2. Ο δείκτης ενός πίνακα πρέπει να είναι:

Πραγματικός αριθμός
Αλφαριθμητικό
Ακέραια έκφραση (σταθερά ή μεταβλητή)
Λογική μεταβλητή

3. Πόσες θέσεις μνήμης δεσμεύει ένας πίνακας από την αρχή του προγράμματος;

Όσες έχουν δηλωθεί στη δήλωση μεταβλητών
Μόνο όσες χρησιμοποιούνται στην εκτέλεση
Όσες χρειάζονται δυναμικά
Μία για κάθε διαφορετικό στοιχείο

4. Η μέθοδος ταξινόμησης ευθείας ανταλλαγής (Bubble Sort) είναι:

Η πιο αποδοτική μέθοδος ταξινόμησης
Μία απλή μέθοδος αλλά όχι η πιο αποδοτική
Μόνο για ταξινομημένους πίνακες
Μέθοδος αναζήτησης

5. Η σειριακή αναζήτηση χρησιμοποιείται για:

Μη ταξινομημένους πίνακες
Ταξινομημένους πίνακες μόνο
Μόνο δισδιάσστους πίνακες
Μόνο πίνακες με αριθμητικά δεδομένα

6. Η δυαδική αναζήτηση είναι αποδοτικότερη από τη σειριακή, αλλά:

Λειτουργεί σε όλους τους πίνακες
Χρησιμοποιεί περισσότερη μνήμη
Λειτουργεί μόνο σε ταξινομημένους πίνακες
Είναι πιο αργή

7. Σε έναν ταξινομημένο κατά αύξουσα σειρά πίνακα, πού βρίσκεται το ελάχιστο στοιχείο;

Στην τελευταία θέση
Στην πρώτη θέση
Στη μέση του πίνακα
Σε τυχαία θέση

8. Τι είναι οι παράλληλοι πίνακες;

Πίνακες που αποθηκεύουν χαρακτηριστικά οντοτήτων σε ίδιες θέσεις δείκτη
Δύο πίνακες με ίδιο μέγεθος
Πίνακες με ίδιο όνομα
Πίνακες που ταξινομούνται παράλληλα

9. Ποιο από τα παρακάτω ΔΕΝ είναι μειονέκτημα των πινάκων;

Κατανάλωση μνήμης
Στατικό μέγεθος
Δυνατότητα αποθήκευσης δεδομένων
Περιορισμός δυνατοτήτων λόγω σταθερού μεγέθους

10. Η επεξεργασία των στοιχείων ενός πίνακα γίνεται καλύτερα με:

Την εντολή ΑΝ
Την εντολή επανάληψης ΓΙΑ
Την εντολή ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΜΕΧΡΙΣ_ΟΤΟΥ μόνο
Χωρίς βρόχο, ένα ένα τα στοιχεία
💪 Προκλήσεις: Προσπάθησε να τις λύσεις μόνος σου πριν δεις την απάντηση!

Άσκηση 1: Άθροισμα στοιχείων μονοδιάστατου πίνακα

⭐

Να γραφεί αλγόριθμος που διαβάζει 50 ακέραιους αριθμούς σε έναν πίνακα Α[50] και υπολογίζει και εμφανίζει το άθροισμά τους.

ΑΛΓΟΡΙΘΜΟΣ Αθροισμα_Πινακα
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Α[50], i, sum
ΑΡΧΗ
  sum ← 0
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 50
    ΔΙΑΒΑΣΕ Α[i]
    sum ← sum + Α[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ "Το άθροισμα είναι:", sum
ΤΕΛΟΣ ΑΛΓΟΡΙΘΜΟΣ Αθροισμα_Πινακα

Άσκηση 2: Εύρεση μέγιστου και ελάχιστου

⭐⭐

Να γραφεί αλγόριθμος που διαβάζει 100 αριθμούς σε πίνακα Β[100] και βρίσκει το μέγιστο και το ελάχιστο στοιχείο.

ΑΛΓΟΡΙΘΜΟΣ Max_Min
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Β[100], i, max, min
ΑΡΧΗ
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100
    ΔΙΑΒΑΣΕ Β[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  max ← Β[1]
  min ← Β[1]

  ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 100
    ΑΝ Β[i] > max ΤΟΤΕ
      max ← Β[i]
    ΤΕΛΟΣ_ΑΝ
    ΑΝ Β[i] < min ΤΟΤΕ
      min ← Β[i]
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ "Μέγιστο:", max
  ΓΡΑΨΕ "Ελάχιστο:", min
ΤΕΛΟΣ ΑΛΓΟΡΙΘΜΟΣ Max_Min

Άσκηση 3: Ταξινόμηση ευθείας ανταλλαγής (Bubble Sort)

⭐⭐⭐

Να γραφεί αλγόριθμος που ταξινομεί έναν πίνακα 20 ακεραίων κατά αύξουσα σειρά με τη μέθοδο της ευθείας ανταλλαγής.

ΑΛΓΟΡΙΘΜΟΣ Bubble_Sort
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Α[20], i, j, temp
ΑΡΧΗ
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 20
    ΔΙΑΒΑΣΕ Α[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 20
    ΓΙΑ j ΑΠΟ 20 ΜΕΧΡΙ i ΜΕ ΒΗΜΑ -1
      ΑΝ Α[j-1] > Α[j] ΤΟΤΕ
        temp ← Α[j-1]
        Α[j-1] ← Α[j]
        Α[j] ← temp
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 20
    ΓΡΑΨΕ Α[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ ΑΛΓΟΡΙΘΜΟΣ Bubble_Sort

Άσκηση 4: Σειριακή αναζήτηση

⭐⭐

Να γραφεί αλγόριθμος που αναζητά έναν αριθμό key σε έναν μη ταξινομημένο πίνακα 30 ακεραίων. Να εμφανίζει τη θέση του ή μήνυμα ότι δεν βρέθηκε.

ΑΛΓΟΡΙΘΜΟΣ Σειριακη_Αναζητηση
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Α[30], i, key, θεση
  ΛΟΓΙΚΕΣ: found
ΑΡΧΗ
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 30
    ΔΙΑΒΑΣΕ Α[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΔΙΑΒΑΣΕ key
  found ← ΨΕΥΔΗΣ
  θεση ← 0
  i ← 1

  ΟΣΟ i <= 30 ΚΑΙ found = ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ
    ΑΝ Α[i] = key ΤΟΤΕ
      found ← ΑΛΗΘΗΣ
      θεση ← i
    ΤΕΛΟΣ_ΑΝ
    i ← i + 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΑΝ found = ΑΛΗΘΗΣ ΤΟΤΕ
    ΓΡΑΨΕ "Βρέθηκε στη θέση:", θεση
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ "Δεν βρέθηκε"
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ ΑΛΓΟΡΙΘΜΟΣ Σειριακη_Αναζητηση

Άσκηση 5: Δυαδική αναζήτηση

⭐⭐⭐

Να γραφεί αλγόριθμος δυαδικής αναζήτησης ενός αριθμού key σε έναν ταξινομημένο κατά αύξουσα σειρά πίνακα 50 ακεραίων.

ΑΛΓΟΡΙΘΜΟΣ Δυαδικη_Αναζητηση
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Α[50], key, left, right, mid, θεση
  ΛΟΓΙΚΕΣ: found
ΑΡΧΗ
  *(Ο πίνακας Α είναι ήδη ταξινομημένος)*

  ΔΙΑΒΑΣΕ key
  left ← 1
  right ← 50
  found ← ΨΕΥΔΗΣ
  θεση ← 0

  ΟΣΟ left <= right ΚΑΙ found = ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ
    mid ← (left + right) DIV 2
    ΑΝ Α[mid] = key ΤΟΤΕ
      found ← ΑΛΗΘΗΣ
      θεση ← mid
    ΑΛΛΙΩΣ_ΑΝ Α[mid] < key ΤΟΤΕ
      left ← mid + 1
    ΑΛΛΙΩΣ
      right ← mid - 1
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΑΝ found = ΑΛΗΘΗΣ ΤΟΤΕ
    ΓΡΑΨΕ "Βρέθηκε στη θέση:", θεση
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ "Δεν βρέθηκε"
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ ΑΛΓΟΡΙΘΜΟΣ Δυαδικη_Αναζητηση

Άσκηση 6: Συγχώνευση δύο ταξινομημένων πινάκων

⭐⭐⭐

Να γραφεί αλγόριθμος που δημιουργεί έναν τρίτο ταξινομημένο πίνακα Γ[60] από δύο ταξινομημένους πίνακες Α[30] και Β[30].

ΑΛΓΟΡΙΘΜΟΣ Συγχωνευση
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Α[30], Β[30], Γ[60]
  ΑΚΕΡΑΙΕΣ: i, j, k
ΑΡΧΗ
  *(Οι Α και Β είναι ήδη ταξινομημένοι κατά αύξουσα)*

  i ← 1
  j ← 1
  k ← 1

  ΟΣΟ i <= 30 ΚΑΙ j <= 30 ΕΠΑΝΑΛΑΒΕ
    ΑΝ Α[i] <= Β[j] ΤΟΤΕ
      Γ[k] ← Α[i]
      i ← i + 1
    ΑΛΛΙΩΣ
      Γ[k] ← Β[j]
      j ← j + 1
    ΤΕΛΟΣ_ΑΝ
    k ← k + 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΟΣΟ i <= 30 ΕΠΑΝΑΛΑΒΕ
    Γ[k] ← Α[i]
    i ← i + 1
    k ← k + 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΟΣΟ j <= 30 ΕΠΑΝΑΛΑΒΕ
    Γ[k] ← Β[j]
    j ← j + 1
    k ← k + 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΙΑ k ΑΠΟ 1 ΜΕΧΡΙ 60
    ΓΡΑΨΕ Γ[k]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ ΑΛΓΟΡΙΘΜΟΣ Συγχωνευση

Άσκηση 7: Δισδιάστατος πίνακας - Άθροισμα γραμμών

⭐⭐⭐

Να γραφεί αλγόριθμος που διαβάζει έναν πίνακα 5×4 ακεραίων και υπολογίζει το άθροισμα κάθε γραμμής.

ΑΛΓΟΡΙΘΜΟΣ Αθροισμα_Γραμμων
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Α[5, 4], i, j, sum
ΑΡΧΗ
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 4
      ΔΙΑΒΑΣΕ Α[i, j]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
    sum ← 0
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 4
      sum ← sum + Α[i, j]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ "Άθροισμα γραμμής", i, ":", sum
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ ΑΛΓΟΡΙΘΜΟΣ Αθροισμα_Γραμμων

Άσκηση 8: Παράλληλοι πίνακες - Μαθητές και βαθμοί

⭐⭐⭐

Να γραφεί αλγόριθμος που διαβάζει τα ονόματα 20 μαθητών σε πίνακα ΟΝΟΜΑ[20] και τους βαθμούς τους σε πίνακα ΒΑΘΜΟΣ[20]. Να βρίσκει και να εμφανίζει το όνομα του μαθητή με τον υψηλότερο βαθμό.

ΑΛΓΟΡΙΘΜΟΣ Καλυτερος_Μαθητης
ΜΕΤΑΒΛΗΤΕΣ
  ΧΑΡΑΚΤΗΡΕΣ: ΟΝΟΜΑ[20]
  ΑΚΕΡΑΙΕΣ: ΒΑΘΜΟΣ[20], i, max_θεση
ΑΡΧΗ
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 20
    ΔΙΑΒΑΣΕ ΟΝΟΜΑ[i]
    ΔΙΑΒΑΣΕ ΒΑΘΜΟΣ[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  max_θεση ← 1
  ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 20
    ΑΝ ΒΑΘΜΟΣ[i] > ΒΑΘΜΟΣ[max_θεση] ΤΟΤΕ
      max_θεση ← i
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ "Ο μαθητής με τον υψηλότερο βαθμό είναι:"
  ΓΡΑΨΕ ΟΝΟΜΑ[max_θεση], "με βαθμό", ΒΑΘΜΟΣ[max_θεση]
ΤΕΛΟΣ ΑΛΓΟΡΙΘΜΟΣ Καλυτερος_Μαθητης