You are on page 1of 4

Ε π ε ξ ε ρ γ α σ ί α Μ Ο Ν Ο Δ Ι Α Σ ΤΑΤ Ω Ν π ι ν ά κ ω ν

1. Εισαγωγή στοιχείων
Έστω ότι πρέπει να διαβάσουμε Ν στοιχεία και να τα αποθηκεύσουμε στον πίνακα Π:

Για χ από 1 μέχρι Ν Σαν αποτέλεσμα, ο πίνακας Π θα περιέχει τα Ν στοιχεία


Διάβασε Π[χ] που πληκτρολόγησε ο χρήστης. (μπορεί να πληκτρολόγησε
Τέλος_επανάληψης αριθμούς ή χαρακτήρες)

2. Υπολογισμοί πάνω στον πίνακα (Έστω πίνακας Π [ 1 0 0 ] )

Άθροισμα του πίνακα Μέσος όρος του πίνακα


Αθρ  0 ΜΟ  0
Για i από 1 μέχρι 100 Για i από 1 μέχρι 100
Αθρ  Αθρ + Π[i] ΜΟ  ΜΟ + Π[i]
Τέλος_επανάληψης Τέλος_επανάληψης
ΜΟ  ΜΟ / 100
Ελάχιστος του πίνακα Μέγιστος του πίνακα
min  Π[1] max  Π[1]
Για i από 2 μέχρι 100 Για i από 2 μέχρι 100
Αν Π[i] < min τότε Αν Π[i] > max τότε
min  Π[i] max  Π[i]
Τέλος_αν Τέλος_αν
Τέλος_επανάληψης Τέλος_επανάληψης
Πλήθος στοιχείων που ικανοποιούν μια συνθήκη (π.χ. Έστω ότι αναζητούμε ΠΟΣΑ κελιά
περιέχουν τη λέξη Γιώργος)
π0
Για i από 1 μέχρι 100
Αν Π[i] = «Γιώργος» τότε
ππ+1
Τέλος_αν
Τέλος_επανάληψης

Ε π ε ξ ε ρ γ α σ ί α Δ Ι Σ Δ Ι Α Σ ΤΑΤ Ω Ν π ι ν ά κ ω ν

3. Εισαγωγή στοιχείων σε δισδιάστατο πίνακα ΜxΝ


Έστω ότι ο χρήστης εισάγει τους αριθμούς 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
Α. αν ο χρήστης τα εισάγει ανά γραμμή
Για χ από 1 μέχρι Μ
1 2 3
Για ψ από 1 μέχρι Ν
4 5 6
Διάβασε Π[χ,ψ]
Τέλος_επανάληψης 7 8 9
Τέλος_επανάληψης 10 11 12

Β. αν ο χρήστης τα εισάγει ανά στήλη


Για ψ από 1 μέχρι Ν
Για χ από 1 μέχρι Μ 1 5 9
Διάβασε Π[χ,ψ] 2 6 10
Τέλος_επανάληψης 3 7 11
Τέλος_επανάληψης 4 8 12
4. Υπολογισμοί πάνω σε ολόκληρο τον πίνακα καθώς και σε κάθε γραμμή ή σε
κάθε στήλη (π.χ. στον Π [ 1 0 , 2 0 ] )

Άθροισμα όλου του πίνακα Άθροισμα κάθε γραμμής Άθροισμα κάθε στήλης
Αθρ  0 Για i από 1 μέχρι 10 Για j από 1 μέχρι 20
Για i από 1 μέχρι 10 Αθρ[i]  0 Αθρ[j]  0
Για j από 1 μέχρι 20 Για j από 1 μέχρι 20 Για i από 1 μέχρι 10
Αθρ  Αθρ + Π[i,j] Αθρ[i]  Αθρ[i] + Π[i,j] Αθρ[j]  Αθρ[j] + Π[i,j]
Τέλος_επανάληψης Τέλος_επανάληψης Τέλος_επανάληψης
Τέλος_επανάληψης Τέλος_επανάληψης Τέλος_επανάληψης

Μέσος όρος όλου του πίνακα Μέσος όρος κάθε γραμμής Μέσος όρος κάθε στήλης
ΜΟ  0 Για i από 1 μέχρι 10 Για j από 1 μέχρι 20
Για i από 1 μέχρι 10 ΜΟ[i]  0 ΜΟ[j]  0
Για j από 1 μέχρι 20 Για j από 1 μέχρι 20 Για i από 1 μέχρι 10
ΜΟ  ΜΟ + Π[i,j] ΜΟ[i]  ΜΟ[i] + Π[i,j] ΜΟ[j]  ΜΟ[j] + Π[i,j]
Τέλος_επανάληψης Τέλος_επανάληψης Τέλος_επανάληψης
Τέλος_επανάληψης ΜΟ[i]  ΜΟ[i] / 20 ΜΟ[j]  ΜΟ[j] / 10
ΜΟ  ΜΟ / 200 Τέλος_επανάληψης Τέλος_επανάληψης

Ελάχιστο ολόκληρου του Ελάχιστο κάθε γραμμής Μέγιστο κάθε στήλης


πίνακα Για i από 1 μέχρι 10 Για j από 1 μέχρι 20
Min  Π[1,1] Min[i]  Π[i,1] max[j]  Π[1,j]
Για i από 1 μέχρι 10 Για j από 1 μέχρι 20 Για i από 1 μέχρι 10
Για j από 1 μέχρι 20 Αν Π[i,j] < min[i] τότε Αν Π[i,j] > max[j] τότε
Αν Π[i,j] < min τότε min[i]  Π[i,j] max[j]  Π[i,j]
min  Π[i,j] τέλος_αν τέλος_αν
τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης
Τέλος_επανάληψης Τέλος_επανάληψης Τέλος_επανάληψης
Τέλος_επανάληψης

Πλήθος στοιχείων Πλήθος στοιχείων σε κάθε Πλήθος στοιχείων σε κάθε


ολόκληρου του πίνακα γραμμή στήλη
πλ  0 Για i από 1 μέχρι 10 Για j από 1 μέχρι 20
Για i από 1 μέχρι 10 πλ[i]  0 πλ[j]  0
Για j από 1 μέχρι 20 Για j από 1 μέχρι 20 Για i από 1 μέχρι 10
Αν Π[i,j] …….. τότε Αν Π[i,j] …….. τότε Αν Π[i,j] …….. τότε
πλ  πλ + 1 πλ[i]  πλ[i] + 1 πλ[j]  πλ[j] + 1
τέλος_αν τέλος_αν τέλος_αν
Τέλος_επανάληψης Τέλος_επανάληψης Τέλος_επανάληψης
Τέλος_επανάληψης Τέλος_επανάληψης Τέλος_επανάληψης
Αν α ζή τ η σ η κα ι τ α ξ ι ν ό μ η σ η μ ο ν ο δ ι ά σ τ α τ ο υ
πίνακα

5. Αναζήτηση πίνακα
Για αναζήτηση σε μη ταξινομημένο πίνακα, χρησιμοποιείστε τη σειριακή/γραμμική αναζήτηση (σελ.
64 του βιβλίου)
Για αναζήτηση σε ταξινομημένο πίνακα (Α[Ν]), χρησιμοποιήστε την δυαδική αναζήτηση που
φαίνεται παρακάτω:
! αύξουσα σειρά
ΒΡΕΘ ← ΨΕΥΔΗΣ
             ΑΡΧ ← 1
             ΤΕΛ ←Ν
             Μ ← (ΑΡΧ+ΤΕΛ) DIV 2
             ΘΕΣΗ ← 0
             ΟΣΟ (ΑΡΧ <= ΤΕΛ) ΚΑΙ (ΒΡΕΘ = ΨΕΥΔΗΣ) ΕΠΑΝΑΛΑΒΕ
                     ΑΝ Α[Μ] = Χ ΤΟΤΕ
                           ΒΡΕΘ ← ΑΛΗΘΗΣ
                           ΘΕΣΗ ← Μ
                     ΑΛΛΙΩΣ_ΑΝ Α[Μ] < Χ ΤΟΤΕ
                           ΑΡΧ ← Μ+1
                     ΑΛΛΙΩΣ  ! A[M] > X
                           ΤΕΛ ← Μ-1
                     ΤΕΛΟΣ_ΑΝ
                     Μ ← (ΑΡΧ+ΤΕΛ) DIV 2
              ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

6. Ταξινόμηση πίνακα
Αν για οποιοδήποτε λόγο χρειαστεί να κάνετε ταξινόμηση σε μονοδιάστατο πίνακα (είτε αυτός
περιέχει αριθμούς είτε χαρακτήρες), θα πρέπει να χρησιμοποιήσετε τη μέθοδο της φυσαλίδας/ευθείας
ανταλλαγής. (σελ. 68 του βιβλίου)
Επίσης, μπορείτε να χρησιμοποιήσετε την ταξινόμηση με επιλογή που παρουσιάζεται παρακάτω
(Α[Ν]):
Για i από 1 μέχρι N-1
θmin ← i
Για j από i+1 μέχρι N
Αν Α[j] < Α[θmin] τότε ! αύξουσα
θmin ← j
Τέλος_αν
Τέλος_επανάληψης
temp ← Α[i]
Α[i] ← Α[θmin]
Α[θmin] ← temp
Τέλος_επανάληψης
Απαραίτητη γνώση για την επίλυση ασκήσεων
με πίνακες
1. Για κάθε ένα από τα παρακάτω, δώστε το απόσπασμα προγράμματος που το υλοποιεί:
a. υπολογισμός του αθροίσματος των στοιχείων του πίνακα πραγματικών Α[100]
b. υπολογισμός του γινομένου των στοιχείων του πίνακα πραγματικών Α[100]
c. εύρεση του μικρότερου και του μεγαλύτερου αριθμού στον πίνακα ακεραίων Α[210],
καθώς και των θέσεων στις οποίες βρίσκονται αυτοί
d. αν στο προηγούμενο ερώτημα ο πίνακας Α περιείχε χαρακτήρες (π.χ. ονόματα
παικτών), το απόσπασμα που γράψατε, θα «δούλευε» για την εύρεση του πρώτου και
του τελευταίου αλφαβητικά ονόματος;
e. υπολογισμός του πλήθους των στοιχείων που περιέχουν το όνομα «Ηράκλειο» μέσα
στον πίνακα Α[30], ο οποίος περιλαμβάνει ονόματα πόλεων
2. Υλοποιήστε όλα τα παραπάνω ερωτήματα για πίνακες δισδιάστατους 14x30
3. Για κάθε ένα από τα παρακάτω, δώστε το απόσπασμα προγράμματος που το υλοποιεί:
a. υπολογισμός των αθροισμάτων κάθε γραμμής για τον πίνακα πραγματικών Α[34, 21]
b. υπολογισμός των αθροισμάτων κάθε στήλης για τον πίνακα πραγματικών Α[34, 21]
c. υπολογισμός των μέσων όρων κάθε γραμμής για τον πίνακα πραγματικών Α[34, 21]
d. υπολογισμός των μέσων όρων κάθε στήλης για τον πίνακα πραγματικών Α[34, 21]
e. εύρεση του ελάχιστου και του μέγιστου αριθμού κάθε γραμμής για τον πίνακα
πραγματικών Α[34, 21]
f. εύρεση του ελάχιστου και του μέγιστου αριθμού κάθε στήλης για τον πίνακα
πραγματικών Α[34, 21]
4 . Ταξινομήστε με τη μέθοδο της Ευθείας Ανταλλαγής τον πίνακα χαρακτήρων Παίκτες[10] κατά
αύξουσα αλφαβητική σειρά.
5 . Ταξινομήστε με τη μέθοδο της Επιλογής τον πίνακα χαρακτήρων Παίκτες[100] κατά φθίνουσα
αλφαβητική σειρά.
6 . Αναζητήστε με τη Σειριακή μέθοδο τον αριθμό 12 μέσα στον πίνακα Πόντοι[10]. Θα πρέπει να
απαντώνται τα ερωτήματα:
α) υπάρχει ή όχι ο αριθμός 12 μέσα στον πίνακα
β) σε ποια θέση του πίνακα τον συναντάμε πρώτη φορά
Ο αλγόριθμος θα πρέπει να τερματίζει μόλις συναντήσουμε τον 12 μέσα στον πίνακα.
7 . Αναζητήστε το κλειδί ‘ΑΘΗΝΑ’ μέσα στον ταξινομημένο κατά φθίνουσα σειρά πίνακα
χαρακτήρων ΠΟΛΕΙΣ[30], χρησιμοποιώντας τη δυαδική αναζήτηση.

You might also like