You are on page 1of 5

Βασικές Μεθοδολογίες σε μονοδιάστατους πίνακες

Μεθοδολογία 1η
Καταχώρηση στοιχείων σε πίνακα - "Γέμισμα" του πίνακα

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν   


     ΓΡΑΨΕ ‘ δώσε το ΄, i ,’ ο στοιχείο’      ! Αν θέλουμε να έχει και μήνυμα εξόδου
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ    
ΔΙΑΒΑΣΕ Α[ i ] 
ΜΕΧΡΙΣ_ΟΤΟΥ Α[i] > 0    
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 

ΓΕΜΙΣΜΑ ΠΙΝΑΚΑ ΑΚΟΛΟΥΘΩΝΤΑΣ ΕΝΑ ΜΟΤΙΒΟ

2 4 8 16 32 64 128 256

Α[1]  2
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 8   
    Α[ i ]   Α[i -1] *2   
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 

ΤΙΜΗ  2
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 8   
    Α[ i ]   ΤΙΜΗ
ΤΙΜΗ  ΤΙΜΗ*2   
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 8   


    Α[ i ]   2 ^ i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 

ΓΕΜΙΣΜΑ ΠΙΝΑΚΑ ΜΕ ΣΥΓΚΕΚΡΙΜΕΝΕΣ ΤΙΜΕΣ


ΗΠ[1]  ‘ΕΥΡΩΠΗ’
ΗΠ[2]  ‘ΑΣΙΑ’
ΗΠ[3]  ‘ΑΜΕΡΙΚΗ’

Μεθοδολογία 2η
Εύρεση Αθροίσματος - Μέσου όρου των στοιχείων ενός μονοδιάστατου πίνακα

Σ<-- 0     
Για i από 1 μέχρι Ν      
Σ<-- Σ + Α[ i ]     
Τέλος_επανάληψης
Μ<--Σ/Ν  
 Όπου Ν οι θέσεις του πίνακα και Α ο πίνακας.

Μεθοδολογία 3η
Εύρεση Πλήθους σε μονοδιάστατο πίνακα
Τη συγκεκριμένη μεθοδολογία θα τη δούμε απ'ευθείας με ένα παράδειγμα.

Παράδειγμα 4
Να πραγματοποιηθεί πρόγραμμα το οποίο θα «γεμίζει» ένα πίνακα με  400 ακέραιους αριθμούς και θα
υπολογίζει πόσοι από αυτούς τους αριθμούς είναι πολλαπλάσια του 8.

Λύση

ΠΡΟΓΡΑΜΜΑ ΠΑΡ_4    


ΜΕΤΑΒΛΗΤΕΣ     
ΑΚΕΡΑΙΕΣ: i,Α[400],Π    
ΑΡΧΗ    
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 400     
    ΓΡΑΨΕ ‘δώσε το ΄, i ,’ ο αριθμό’     
    ΔΙΑΒΑΣΕ Α[i]     
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ     
Π<--0     
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 400     
    ΑΝ Α[i] mod 8  = 0 ΤΟΤΕ      
        Π<--Π+1      
    ΤΕΛΟΣ_ΑΝ    
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ    
ΓΡΑΨΕ ‘ το πλήθος των πολ/σίων του 8 είναι:’, Π    
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Μεθοδολογία 4η
Εύρεση Μέγιστου ή Ελάχιστου στοιχείου σε μονοδιάστατο πίνακα
Γενική μορφή:   
Εύρεση Μέγιστου Στοιχείου :
 
! περίπτωση που το max υπάρχει μια φορά max - 1  
Για i από 1 μέχρι Ν     
Max A[1]       Αν Α[i] > max τοτε      
Θmax  1           max  A[ i ] 
Για i από 2 μέχρι Ν          Θmax  i 
    Αν Α[i] > max τοτε           Τέλος_αν   
         max  A[ i ]  Τέλος_επανάληψης 
    Θmax  i  ΓΡΑΨΕ max ,Θmax 
    Τέλος_αν   
Τέλος_επανάληψης 
ΓΡΑΨΕ max ,Θmax 

! περίπτωση που το max υπάρχει πολλές φορές


max A[ 1 ]  
Για i από 2 μέχρι Ν     
    Αν Α[i] > max τοτε      
         max  A[ i ] 
    Τέλος_αν   
Τέλος_επανάληψης 
Για i από 1 μέχρι Ν     
    Αν Α[i ]= max τοτε      
         ΓΡΑΨΕ i 
    Τέλος_αν   
Τέλος_επανάληψης 

------------------------------------------------------------------------   
Εύρεση Ελάχιστου Στοιχείου:

min <-- A[ 1 ]    


για i από 2 μέχρι Ν     
    αν Α[ i ] < min τότε      
        min <-- A[ i ]     
    τέλος_αν   
τέλος_επανάληψης
Μεθοδολογία 5η
Σειριακή Αναζήτηση στοιχείου σε μονοδιάστατο πίνακα
Αλγόριθμος Σειριακή_βιβλίου
Διάβασε n, key
    Για i από 1 μέχρι Ν
    Διάβασε Α[i]
Τέλος_επανάληψης
i1
pos  0
DΟΝΕ  ψευδής
Όσο (DΟΝΕ = ψευδής) και (i <= N) επανάλαβε
     Αν Α[i]=key τότε
         DΟΝΕ  αληθής
         pos  i
    Αλλιώς
         i  i + 1
    Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε DΟΝΕ, pos
Τέλος Σειριακή_βιβλίου

Μεθοδολογία 6η
Δυαδική Αναζήτηση
Γενική Μορφή :
Η δυαδική αναζήτηση είναι ένας άλλος τρόπος αναζήτησης ο οποίος είναι πιο αποδοτικός σε σύγκριση με τη
σειριακή αναζήτηση. Αυτό που πρέπει όμως να έχουμε υπ όψιν μας είναι ότι χρησιμοποιείται μόνο σε
ταξινομημένους πίνακες.  
 
Ο αλγόριθμος της δυαδικής αναζήτησης για ένα ταξινομημένο πίνακα όπου αναζητάμε το στοιχείο KEY ,έχει
ως εξής :

ΑΡΧΗ1
ΤΕΛΟΣΝ
DΨΕΥΔΗΣ
ΟΣΟ ΑΡΧΗ<=ΤΕΛΟΣ ΚΑΙ D=ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ
     Μ(ΑΡΧΗ+ΤΕΛΟΣ) DIV 2
     AN Α[M]=KEY TOTE 
         DΑΛΗΘΗΣ
Pos  M
     ΑΛΛΙΩΣ_ΑΝ Α[Μ]<ΚΕΥ ΤΟΤΕ 
         ΑΡΧΗΜ+1
     ΑΛΛΙΩΣ 
         ΤΕΛΟΣΜ-1
    ΤΕΛΟΣ_ΑΝ     
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ D = ΑΛΗΘΗΣ ΤΟΤΕ
    ΓΡΑΨΕ 'ΒΡΕΘΗΚΕ ΤΟ ΣΤΟΙΧΕΙΟ ΣΤΗ ΘΕΣΗ',M
ΑΛΛΙΩΣ
    ΓΡΑΨΕ 'ΔΕΝ ΒΡΕΘΗΚΕ ΤΟ ΣΤΟΙΧΕΙΟ'
ΤΕΛΟΣ_ΑΝ
Μεθοδολογία 7η 
Ταξινόμηση στοιχείων του πίνακα

Α' Τρόπος - Με τη μέθοδο της φυσαλίδας  

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

Γενική Μορφή: 

Για Ι από 2 μέχρι Ν   


      Για J από Ν μέχρι Ι με_βήμα –1   
              Αν Α[J-1] > A[J] τότε     
                      TEMP A[J]     
                      A[J]  A [J-1]     
                      A[J-1]TEMP   
             Τέλος_αν   
      Τέλος_επανάληψης 
Τέλος_επανάληψης

* Όπου Ν = οι θέσεις του πίνακα και Α ο πίνακας.


Θα ακολουθήσει ανάλυση της λειτουργίας της φυσαλίδας
Ασκήσεις στους μονοδιάστατους πίνακες – Α’ Μέρος

1. Να πραγματοποιηθεί πρόγραμμα το οποίο θα καταχωρεί σε ένα πίνακα 200 θέσεων , 200


τυχαίους ακέραιους  αριθμούς και στη συνέχεια θα υπολογίζει το πλήθος των αρτίων.
( Θεωρήστε ότι οι αριθμοί που θα εισάγει ο χρήστης θα είναι ακέραιοι).
2. Να δημιουργηθεί πρόγραμμα το οποίο θα δέχεται τα ονόματα 50 ατόμων και τα βάρη τους
τα οποία θα τα καταχωρεί σε κατάλληλους πίνακες. Στη συνέχεια θα υπολογίζει το μέσο όρο
του βάρος των ατόμων και θα εμφανίζει τα ονόματα εκείνων που έχουν βάρος πάνω από το
μέσο όρο.
3. Δίνονται τα ονόματα 300 ατόμων τα οποία αποθηκεύονται σε κατάλληλο μονοδιάστατο
πίνακα. Να δημιουργήσετε πρόγραμμα το οποίο θα εμφανίζει πόσες φορές υπάρχει το
όνομα ‘Μαρία’ μέσα σε αυτόν τον πίνακα.
4. Δίνονται τα ονόματα 300 ατόμων τα οποία αποθηκεύονται σε κατάλληλο μονοδιάστατο
πίνακα. Να δημιουργήσετε πρόγραμμα το οποίο θα ζητά από τον χρήστη να πληκτρολογήσει
ένα όνομα και στη συνέχεια θα υπολογίζει και θα εμφανίζει πόσες φορές υπάρχει το όνομα
αυτό  μέσα σε αυτόν τον πίνακα.
5. Να πραγματοποιηθεί πρόγραμμα το οποίο θα δέχεται τους βαθμούς και τα ονόματα 30
μαθητών και θα καταχωρεί σε κατάλληλους μονοδιάστατούς πίνακες. Στη συνέχεια θα
υπολογίζει και θα εμφανίζει το όνομα και το βαθμό του καλύτερου μαθητή. (Θεωρήστε ότι
δεν θα υπάρχει ισοβαθμία )
6. Να πραγματοποιηθεί πρόγραμμα το οποίο θα δέχεται τους βαθμούς και τα ονόματα 30
μαθητών και θα καταχωρεί σε κατάλληλους μονοδιάστατούς πίνακες. Στη συνέχεια θα
υπολογίζει και θα εμφανίζει το όνομα και το βαθμό του καλύτερου μαθητή. Στην περίπτωση
ισοβαθμίας μαθητών στην πρώτη θέση, θα πρέπει να εμφανίζει όλα τα ονόματα των
μαθητών με την καλύτερη βαθμολογία.
7. Μία εταιρία καταγράφει τα ετήσια έσοδά της σε ένα μονοδιάστατο πίνακα με την ονομασία
«ΕΣΟΔΑ» και τα έξοδά της σε έναν αντίστοιχο με την ονομασία «ΕΞΟΔΑ». Να γραφεί
πρόγραμμα το οποίο θα καταχωρεί τα στοιχεία εσόδων – εξόδων για την τελευταία δεκαετία
και θα υπολογίζει πόσες φορές η εταιρία παρουσίασε έλλειμμα, είχε δηλαδή έξοδα
περισσότερα από τα έσοδα. Στη συνέχεια θα δημιουργεί ένα νέο πίνακα με την ονομασία
«ΚΕΡΔΟΣ», όπου θα υπολογίζει και θα καταχωρεί τα κέρδη για κάθε χρονιά και θα
υπολογίζει τον μέσο όρο των κερδών της εταιρίας για την τελευταία δεκαετία. Τέλος θα
εμφανίζει πόσες χρονιές τα κέρδη ήταν πάνω από τον μέσο όρο.
8. Δίνονται τα ονόματα και τα τηλέφωνα 1000 ατόμων. Να δημιουργηθεί πρόγραμμα το οποίο
θα καταχωρεί τα παραπάνω στοιχεία σε δυο μονοδιάστατους πίνακες και στη συνέχεια θα
τα  ταξινομεί κατά αλφαβητική σειρά. Τέλος να εμφανίζει τα ονόματα και τα τηλέφωνα μετά
την ταξινόμηση.
9. Δίνονται τα ονόματα και τα τηλέφωνα 1000 ατόμων. Να δημιουργηθεί πρόγραμμα το οποίο
θα καταχωρεί τα παραπάνω στοιχεία σε δυο μονοδιάστατους πίνακες. Στη συνέχεια θα ζητά
από το χρήστη το όνομα ενός ατόμου και θα εμφανίζει το τηλέφωνό του, στην περίπτωση
που δεν υπάρχει στον πίνακα θα εμφανίζει κατάλληλο μήνυμα. (Θεωρήστε ότι οι
καταχωρήσεις είναι μοναδικές).
10. Μία σχολική μονάδα με 130 μαθητές επιθυμεί να δημιουργήσει δυο ομάδες μπάσκετ , μια
αποτελούμενη από 10 αγόρια και μια από 10 κορίτσια για την εκπροσώπησή της στους
σχολικούς αγώνες. Μοναδικό κριτήριο επιλογής είναι το ύψος των μαθητών. Να
δημιουργήσετε πρόγραμμα το οποίο θα καταχωρεί σε κατάλληλους πίνακες: Το όνομα , το
ύψος και το φύλλο για κάθε παιδί , ελέγχοντας τη σωστή καταχώρηση του φύλλου η οποία
πρέπει να είναι «Α» για αγόρι και «Κ» για κορίτσι. Στη συνέχεια θα υπολογίζει και θα
εμφανίζει τα ονόματα των δέκα αγοριών και των δέκα κοριτσιών που θα επιλεγούν για τις
ομάδες του σχολείου.  

You might also like