Return to ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ II

Α. ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ IΙ -Αναζήτηση

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ – ΑΕΠΠ

ΚΕΦΑΛΑΙΟ ΔΙΣΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

ΕΝΟΤΗΤΑ Α ΑΝΑΖΗΤΗΣΗ

ΔΙΔΑΚΤΙΚΟΙ ΣΤΟΧΟΙ

Μετά το τέλος της ενότητας ο μαθητής θα πρέπει να είναι σε θέση:

Πωλήσεις ΟθονώνΒίντεο ΚλαμπCinemaΒιβλία για όλους

  • Μια εταιρεία εμπορίας υπολογιστών χρησιμοποιεί ένα μονοδιάστατο πίνακα 7 θέσεων του οποίου τα στοιχεία είναι 7 μοντέλα οθονών που η εταιρεία εμπορεύεται (Panasonic, Philips, Sony, Hitachi, LG, Samsung, HP). Η εταιρεία διαθέτει οθόνες των προηγούμενων μοντέλων διαστάσεων 17″, 19″, 21″ και 24″.

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

    1 2 3 4 5 6 7
    Hitachi HP LG Panasonic Philips Samsung Sony

    Πίνακας μοντέλων

    Στη συνέχεια, θα εμφανίζονται -κατά την εκτέλεση του αλγορίθμου- με τη σειρά τα ονόματα των μοντέλων, και, για το καθ’ ένα από αυτά θα διαβάζεται η τιμή μιας μεταβλητής που θα είναι ΝΑΙ ή ΟΧΙ -απαιτείται έλεγχος εγκυρότητας- ανάλογα με το αν υπάρχει το συγκεκριμμένο μοντέλο σε διαστάσεις 17″, 19″, 21″, 24″. Αμέσως μετά η τιμή  της μεταβλητής θα “εκχωρείται” στην κατάλληλη θέση δισδιάστατου πίνακα 7 γραμμών και 4 στηλών.

    Ο αλγόριθμος θα ελέγχει και θα πληροφορεί με κατάλληλο μήνυμα:
    α) αν υπάρχουν οθόνες Panasonic 21″, β) σε ποια μεγέθη υπάρχουν οθόνες Philips γ) ποια μοντέλα οθονών δεν υπάρχουν σε μέγεθος 24″.

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

    Μεγέθη οθονών

    17″

    19″

    21″

    24″

    1

    2

    3

    4

    1

    Hitachi Μ 
    Ο 
    Ν 
    Τ 
    Ε 
    Λ 
    Α 

    1

    ΟΧΙ ΝΑΙ NAI ΟΧΙ
    2 HP 2 ΝΑΙ ΟΧΙ ΝΑΙ ΟΧΙ

    3

    LG

    3

    ΝΑΙ ΟΧΙ ΟΧΙ ΝΑΙ

    4

    Panasonic

    4

    ΟΧΙ ΝΑΙ ΟΧΙ ΟΧΙ

    5

    Philips

    5

    ΝΑΙ ΟΧΙ ΟΧΙ ΝΑΙ

    6

    Samsung 

    6

    ΟΧΙ ΟΧΙ ΝΑΙ ΝΑΙ

    7

    Sony

    7

    ΟΧΙ ΝΑΙ ΟΧΙ ΟΧΙ

    Μοντέλα                                                                                              Οθόνες

    Ο πίνακας Οθόνες που δίνεται παραπάνω αποτελείται από 7 γραμμές και 4 στήλες. Κάθε γραμμή του αντιστοιχεί σε ένα στοιχείο του πίνακα Μοντέλα -αυτό που βρίσκεται στην ίδια θέση. Κάθε στήλη του αντιστοιχεί και σε μια διάσταση οθόνης.

    Αναφορά σε στοιχείο πίνακα

    Η αναφορά σε κάποιο στοιχείο του πίνακα Οθόνες γίνεται αν μετά το όνομα του πίνακα  γράψουμε μέσα σε αγκύλες τον αριθμό της γραμμής και της στήλης (χωρισμένα με , “κόμμα”), ήτοι

    όνομα πίνακα[γραμμήστήλη]

    Λόγω του ότι για τους πίνακες αυτούς (που αποτελούνται από πολλές γραμμές και στήλες) απαιτούν για τον προσδιορισμό ενός στοιχείου τους 

    Παράδειγμα

    Για τον (ενδεικτικό) πίνακα Οθόνες του παράδειγματός μας είναι:

    Στοιχείο πίνακα Γραμμή Στήλη Τιμή
    Οθόνες[3, 2] 3 2 ΟΧΙ
    Οθόνες[1, 1] 1 1 ΟΧΙ
    Οθόνες[5, 4] 5 4 ΝΑΙ
    Οθόνες[4, 5] 4 Δεν υπάρχει

  • Σ’ ένα βίντεο κλαμπ η ομαδοποίηση των ταινιών γίνεται σε 15 κατηγορίες. Στην κάθε κατηγορία υπάρχουν 50 ταινίες των οποίων οι θέσεις είναι αριθμημένες από 1 έως 50.
    Να δημιουργηθεί αλγόριθμος που θα διαβάζει τις κατηγορίες σε μονοδιάστατο πίνακα με τρόπο ώστε αυτός κάθε στιγμή να είναι ταξινομημένος αλφαβητικά. Η εισαγωγή  των δεδομένων συνεχίζεται διαβάζοντας τους τίτλους των ταινιών κάθε κατηγορίας σε δισδιάσταστο πίνακα 15×50 -σε περίπτωση που κάποια ταινία έχει ενοικιαστεί το αντίστοιχο στοιχείο του πίνακα έχει τιμή ” “(κενό).

    Α) Η επεξεργασία των δεδομένων του αλγορίθμου θα απαντά στα εξής ερωτήματα:
    1) Ποια είναι η τελευταία κατηγορία ταινιών και πως τιτλοφορούνται οι ταινίες αυτής της κατηγορίας;
    2) Στην πρώτη θέση υπάρχουν ταινίες που έχουν ενοικιαστεί; Αν ναι σε ποιες κατηγορίες ανήκουν;

    Β) Επιπλέον των παραπάνω ο αλγόριθμος θα δίνει ως έξοδο:
    1) τους τίτλους των ταινιών που ανήκουν στην κατηγορία “Κωμωδία”,
    2) τις κατηγορίες στις οποίες συναντάται η ταινία “Η επόμενη μέρα” καθώς και την θέση της σε κάθε κατηγορία.

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

     

    Θ Ε Σ Ε Ι Σ

    1

    2

    3

    50

    1

    Αστυνομικά

    Κ
    Α
    Τ
    Η
    Γ
    Ο
    Ρ
    Ι
    Ε
    Σ

    1

    The Raid Αστυνόμος Μπέκας

    2

    Βιογραφίες

    2

    Ένας υπέροχος άνθρωπος Ο άνθρωπος που γνώριζε το άπειρο Όλιβερ Τουίστ Γκάντι

    3

    Θρίλερ

    3

    4

    4

    Η επόμενη μέρα
    Η επόμενη μέρα

    12

    Κοινωνικά 12 Η επόμενη μέρα Όλιβερ Τουίστ Οι άθλιοι

    13

    Κωμωδία 13 Φόρεστ Γκαμπ Γέλια Τρελαντώνης

    14

    Παιδικά

    14

    Superman

    Nemo

    Η μάχη των πλανητών

    15

    Περιπέτεια

    15

    Οι άθλιοι

    Όλιβερ Τουίστ

    Η επόμενη μέρα

    Οι 3 Σωματοφύλακες

       

    κατηγορίες                                                                                                                                           

    ταινίες

  • Σε μονοδιάστατο πίνακα καταχωρούνται τα ονόματα των 10 κινηματογράφων μιας πόλης. Σε δισδιάστατο πίνακα καταχωρούνται οι ταινίες που παίχτηκαν σε κάθε κινηματογράφο για το προηγούμενο έτος. Ο αριθμός των ταινιών που κάθε κινηματογράφοs προέβαλε είναι άγνωστος και πιθανόν διαφορετικός σε κάθε κινηματογράφο. Ο αλγόριθμος σταματά να διαβάζει τίτλους ταινιών για κάποιο κινηματογράφο όταν δοθεί ως τίτλος ταινίας η λέξη “Τ_e!λοs?” ή όταν ο αριθμός των ταινιών ξεπεράσει τις 100.

    Η έξοδος του αλγορίθμου συνοψίζεται στην απάντηση των ερωτημάτων που ακολουθούν:
    Πόσες ταινίες παίχτηκαν σε κάθε κινηματογράφο;
    Ποιες ταινίες παίχτηκαν στον κινηματογράφο “Οινιάδες”;
    Ποιοι κινηματογράφοι έπαιξαν μια συγκεκριμμένη ταινία της οποίας ο τίτλος δίνεται ως είσοδος στον αλγόριθμο;

  • Τ  Α  Ι  Ν  Ι  Ε  Σ

    1

    2

    3

    …..

    39

    101

    1

    Ολύμπιον 

    Κ
    Ι
    Ν
    Η
    Μ
    Α
    Τ
    Ο
    Γ
    Ρ
    Α
    Φ
    Ο
    Ι

    1

    Ένας υπέροχος άνθρωπος …… ….. ….. Τ_e!λοs?

    2

    Άνεσις

    2

    …. Genius …. …. …. Τ_e!λοs?

    3

    3

    El Greco …. ….. …. …. …. …..

    4

    Πανόραμα

    4

    Τιτανικός

    Τ_e!λοs?
    Τ_e!λοs?ς

    Τ_e!λοs?

    9

    Οινιάδες

    9

    …….

    1922

    10

    Οντεόν

    10

    ……

    …..

    …. …. …. ….

               Κινηματογράφος                                                                                                                                                                                       Ταινίες

  • Ένα βιβλιοπωλείο ξεχώρισε τα τρία καλύτερα βιβλία λογοτεχνίας από οκτώ διαφορετικούς εκδοτικούς οίκους.
    Να αναπτυχθεί αλγόριθμος που θα διαβάζει τους τίτλους των βιβλίων σε δισδιάστατο πίνακα 3 x 8. Αφού ολοκληρωθεί η προηγούμενη διαδικασία ο αλγόριθμος θα εμφανίζει τον τίτλο κάθε βιβλίου και θα ζητά τον αντίστοιχο εκδοτικό οίκο τον οποίο και θα καταχωρεί σε επίσης δισδιάστατο πίνακα 3×8.

    Για την συνέχεια στον αλγόριθμο θα υλοποιείται αναζήτηση ενός οποιουδήποτε βιβλίου. Εφ’ όσον η αναζήτηση είναι επιτυχής θα δίνεται ως αποτέλεσμα ο οίκος που έχει εκδώσει το συγκεκριμμένο βιβλίο.
    Ακόμη ο αλγόριθμος θα εμφανίζει όλα τα βιβλία που έχουν εκδοθεί από εκδοτικό οίκο που θα επιλέγει ο χρήστης.

  • Ε Κ Δ Ο Τ Ι Κ Ο Ι   Ο Ι Κ Ο Ι 

    1

    2

    3

    4

    5

    6

    7

    8

    1

    2

    3

    βιβλία

    Ε Κ Δ Ο Τ Ι Κ Ο Ι   Ο Ι Κ Ο Ι 

    1

    2

    3

    4

    5

    6

    7

    8

    1

    2

    3

    οίκος

Πρόβλημα 1

  • Η διαδικτυακή εταιρεία παιχνιδιών EASPORT διαθέτει στους χρήστες της (μέσω διαδικτύου) 5 διαφορετικά παιχνίδια. Κάθε χρήστης εγγράφεται προκειμένου να αποκτήσει πρόσβαση (να “παίξει”) σε κάποιο παιχνίδι επιλέγοντας ένα και μοναδικό όνομα χρήστη (user name). Υλοποιήστε αλγόριθμο που θα διαβάζει σε μονοδιάστατο πίνακα Ν θέσεων (όπου Ν <= 10^10) τα user names των εγγεγραμμένων χρηστών. Σε δισδιάστατο πίνακα Ν x 5 για κάθε χρήστη τον χρόνο (σε ώρες) που αφιέρωσε “παίζοντας” κάποιο από τα παιχνίδια της εταιρείας.

    Ο αλγόριθμος θα δίνει ως έξοδο τον χρόνο που ο χρήστης “Alexiou_Dimis” αφιέρωσε σε κάθε παιχνίδι. 

  • ..