Επιλογή Σελίδας

Παράδειγμα 1, Κεφάλαιο 9, Τετράδιο Εργασιών, 50 αεροπορικές εταιρίες, Παράλληλοι πίνακες

Να γραφεί πρόγραμμα το οποίο διαβάζει τα ονόματα 50 αεροπορικών εταιρειών και τις αντίστοιχες εισπράξεις τους. Να τυπώνει τα ονόματα των εταιρειών που έχουν εισπράξεις περισσότερες από το μέσο όρο.

ΠΡΟΓΡΑΜΜΑ Αεροπορικές_εταιρείες 
ΜΕΤΑΒΛΗΤΕΣ 
ΑΚΕΡΑΙΕΣ: Ν,Ι, Εισπράξεις[50], Σύνολο 
ΠΡΑΓΜΑΤΙΚΕΣ:ΜΟ 
ΧΑΡΑΚΤΗΡΕΣ: Εταιρεία[50] 
ΑΡΧΗ 
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ 'Αριθμός εταιρειών.. (μικρότερο από 50)'
    ΔΙΑΒΑΣΕ Ν
ΜΕΧΡΙΣ_ΟΤΟΥ Ν<=50
Σύνολο <-- 0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν
    ΓΡΑΨΕ 'Δώσε αεροπορική εταιρεία …'
    ΔΙΑΒΑΣΕ Εταιρεία[Ι]
    ΓΡΑΨΕ 'Δώσε εισπράξεις …'
    ΔΙΑΒΑΣΕ Εισπράξεις[Ι]
    Σύνολο <-- Σύνολο+Εισπράξεις[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΜΟ <-- Σύνολο/Ν
ΓΡΑΨΕ 'Μεγαλύτερες από το μέσο όρο'
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν
    ΑΝ Εισπράξεις[Ι]> ΜΟ ΤΟΤΕ
       ΓΡΑΨΕ Εταιρεία[Ι]
    ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

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

Παράδειγμα 2, Κεφάλαιο 9, Μέσο επίπεδο θορύβου μοντέλων ανά ταχύτητα

Μία εταιρεία κατασκευής αυτοκινήτων έχει μετρήσεις από το επίπεδο θορύβου όλων των μοντέλων της (σε decibel -dB). Οι μετρήσεις γίνονται για διαφορετικές ταχύτητες και δίνονται από τον παρακάτω πίνακα:
Μοντέλο

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

ΠΡΟΓΡΑΜΜΑ Αυτοκίνητα 
ΜΕΤΑΒΛΗΤΕΣ 
ΑΚΕΡΑΙΕΣ:Θόρυβος[4,5],I,J,Ταχύτητα[5],Άθροισμα, Συν_Άθροισμα 
ΧΑΡΑΚΤΗΡΕΣ:Μοντέλο[4] 
ΠΡΑΓΜΑΤΙΚΕΣ:ΜΟ,Συν_ΜΟ 

!Εισαγωγή δεδομένων 
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙΓΡΑΨΕ 'Δώσε ταχύτητα.. '
    ΔΙΑΒΑΣΕ Ταχύτητα[Ι] 
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ    ΓΡΑΨΕ 'Δώσε μοντέλο.. '  
    ΔΙΑΒΑΣΕ Μοντέλο[Ι]  
    ΓΡΑΨΕ 'Δώσε επίπεδα θορύβου.. '
    ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙΔΙΑΒΑΣΕ Θόρυβος[I,J]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 

! Υπολογισμοί μέσων τιμών 
Συν_Άθροισμα <-- 0 
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 4   
    Άθροισμα <-- 0  
    ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 5    
        Άθροισμα <-- Άθροισμα+Θόρυβος[I,J]  
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    Συν_Άθροισμα <-- Συν_Άθροισμα+Άθροισμα   
    ΜΟ <-- Άθροισμα/5    
    ΓΡΑΨΕ Μοντέλο[I], ' :', ΜΟ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 5   
    Άθροισμα <-- 0  
    ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 4   
        Άθροισμα <-- Άθροισμα+Θόρυβος[I,J]  
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
    ΜΟ <-- Άθροισμα/4  
    ΓΡΑΨΕ Ταχύτητα[J] ' :', ΜΟ 
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ  
Συν_ΜΟ <-- Συν_Άθροισμα/20 
ΓΡΑΨΕ 'Συνολικό μέσο επίπεδο θορύβου :', Συν_ΜΟ 
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Παράδειγμα 3 Κεφάλαιο 9, Συγχώνευση Πινάκων

Δίνονται δύο ταξινομημένοι κατά αύξουσα σειρά μονοδιάστατοι πίνακες, ακεραίων αριθμών. Να γραφεί πρόγραμμα το οποίο να συγχωνεύει τους δύο πίνακες σε έναν τρίτο ο οποίος να είναι επίσης ταξινομημένος κατά αύξουσα σειρά. Οι δύο αρχικοί πίνακες δεν μπορούν να περιέχουν περισσότερα από 100 στοιχεία ο καθένας.

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

Θεωρείται ότι στην είσοδο του αλγορίθμου συγχώνευσης δίνονται δύο ταξινομημένοι, κατά αύξουσα σειρά, πίνακες Α και Β, μεγέθους Ν και Μ στοιχείων αντίστοιχα, ενώ στην έξοδο προκύπτει ένας τρίτος πίνακας Γ με Ν+Μ ταξινομημένα στοιχεία επίσης κατά αύξουσα σειρά.

Στο πρόγραμμα Συγχώνευση που ακολουθεί οι μεταβλητές i, j και k είναι δείκτες για την κίνηση μέσα στους πίνακες Α, Β και Γ. Η μέθοδος προχωρεί ως εξής: Το μικρότερο στοιχείο από τους πίνακες Α και Β τοποθετείται στον πίνακα Γ με ταυτόχρονη αύξηση του αντίστοιχου δείκτη. Η διαδικασία αυτή επαναλαμβάνεται μέχρις ότου τελειώσουν τα στοιχεία του ενός πίνακα.

Στη συνέχεια τα υπόλοιπα στοιχεία του άλλου πίνακα μεταφέρονται στον πίνακα Γ.

ΠΡΟΓΡΑΜΜΑ Συγχώνευση 
ΜΕΤΑΒΛΗΤΕΣ 
ΑΚΕΡΑΙΕΣ: Α[100], B[100], Γ[200], I, J, Κ, Ν, Μ, Λ 
! Α και Β αρχικοί πίνακες 
! Γ τελικός πίνακας 
ΑΡΧΗ 

! Διάβασε τα δεδομένα 
ΓΡΑΨΕ 'Δώσε το πλήθος των στοιχείων του πίνακα Α (<100)' 
ΔΙΑΒΑΣΕ Ν 
ΓΙΑ I ΑΠΟ 1 ΜΕΧΡΙ Ν 
    ΔΙΑΒΑΣΕ Α[I] 
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Δώσε το πλήθος των στοιχείων του πίνακα Β(<100)'
ΔΙΑΒΑΣΕ Μ 
ΓΙΑ I ΑΠΟ 1 ΜΕΧΡΙ Μ 
    ΔΙΑΒΑΣΕ B[I] 
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 

! Συγχώνευση πινάκων
! I είναι ο δείκτης για τον πίνακα Α 
! J είναι ο δείκτης για τον πίνακα Β 
! Κ είναι ο δείκτης για τον πίνακα Γ 
I <-- 1 
J <-- 1 
Κ <-- 1 
ΟΣΟ I <= Ν ΚΑΙ J <= Μ ΕΠΑΝΑΛΑΒΕ 
! Όσο και τα δύο έχουν στοιχεία 
    ΑΝ Α[I] < B[J] ΤΟΤΕ 
       Γ[Κ] <-- Α[I] 
       Κ <-- Κ+1 
       I <-- I+1 
    ΑΛΛΙΩΣ 
       Γ[Κ] <-- B[J] 
       Κ <-- Κ+1 
       J <-- J +1 
    ΤΕΛΟΣ_ΑΝ 
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 

! Μεταφορά των υπολοίπων στοιχείων του Α ή του Β 
ΑΝ I > Ν ΤΟΤΕ 
   ΓΙΑ Λ ΑΠΟ Κ ΜΕΧΡΙ Ν+Μ 
       Γ[Λ] <-- B[J] 
       J <-- J +1 
   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
ΑΛΛΙΩΣ 
   ΓΙΑ Λ ΑΠΟ Κ ΜΕΧΡΙ Ν+Μ 
       Γ[Λ] <-- Α[I] 
       I <-- I+1 
   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
ΤΕΛΟΣ_ΑΝ

! Εκτύπωση τελικού πίνακα 
ΓΙΑ Λ ΑΠΟ 1 ΜΕΧΡΙ Ν+Μ 
    ΓΡΑΨΕ Γ[Λ] 
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ