ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ – ΑΕΠΠ
ΚΕΦΑΛΑΙΟ ΔΙΣΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ
ΕΝΟΤΗΤΑ Α – ΑΝΑΖΗΤΗΣΗ
ΔΙΔΑΚΤΙΚΟΙ ΣΤΟΧΟΙ
Μετά το τέλος της ενότητας ο μαθητής θα πρέπει να είναι σε θέση:
Μια εταιρεία εμπορίας υπολογιστών χρησιμοποιεί ένα μονοδιάστατο πίνακα 7 θέσεων του οποίου τα στοιχεία είναι 7 μοντέλα οθονών που η εταιρεία εμπορεύεται (Panasonic, Philips, Sony, Hitachi, LG, Samsung, HP). Η εταιρεία διαθέτει οθόνες των προηγούμενων μοντέλων διαστάσεων 17″, 19″, 21″ και 24″. Να γραφεί αλγόριθμος που θα διαβάζει αρχικά τα στοιχεία του μονοδιάστατου πίνακα -δεν απαιτείται έλεγχος εγκυρότητας. Αμέσως μετά στον αλγόριθμο θα αναδιατάσσονται τα στοιχεία του πίνακα ώστε να εμφανίζονται όπως παρακάτω -αλφαβητική ταξινόμηση. Πίνακας μοντέλων Στη συνέχεια, θα εμφανίζονται -κατά την εκτέλεση του αλγορίθμου- με τη σειρά τα ονόματα των μοντέλων, και, για το καθ’ ένα από αυτά θα διαβάζεται η τιμή μιας μεταβλητής που θα είναι ΝΑΙ ή ΟΧΙ -απαιτείται έλεγχος εγκυρότητας- ανάλογα με το αν υπάρχει το συγκεκριμμένο μοντέλο σε διαστάσεις 17″, 19″, 21″, 24″. Αμέσως μετά η τιμή της μεταβλητής θα “εκχωρείται” στην κατάλληλη θέση δισδιάστατου πίνακα 7 γραμμών και 4 στηλών. Ο αλγόριθμος θα ελέγχει και θα πληροφορεί με κατάλληλο μήνυμα: Οι πίνακες που περιγράφονται στην άσκηση δίνονται παρακάτω -οι τιμές των στοιχείων του δισδιάστατου πίνακα είναι ενδεικτικές. Μεγέθη οθονών 17″ 19″ 21″ 24″ 1 2 3 4 1 1 3 3 4 4 5 5 6 6 7 7 Μοντέλα Οθόνες Ο πίνακας Οθόνες που δίνεται παραπάνω αποτελείται από 7 γραμμές και 4 στήλες. Κάθε γραμμή του αντιστοιχεί σε ένα στοιχείο του πίνακα Μοντέλα -αυτό που βρίσκεται στην ίδια θέση. Κάθε στήλη του αντιστοιχεί και σε μια διάσταση οθόνης. Αναφορά σε στοιχείο πίνακα Η αναφορά σε κάποιο στοιχείο του πίνακα Οθόνες γίνεται αν μετά το όνομα του πίνακα γράψουμε μέσα σε αγκύλες τον αριθμό της γραμμής και της στήλης (χωρισμένα με , “κόμμα”), ήτοι όνομα πίνακα[γραμμή, στήλη] Λόγω του ότι για τους πίνακες αυτούς (που αποτελούνται από πολλές γραμμές και στήλες) απαιτούν για τον προσδιορισμό ενός στοιχείου τους Παράδειγμα Για τον (ενδεικτικό) πίνακα Οθόνες του παράδειγματός μας είναι: Σ’ ένα βίντεο κλαμπ η ομαδοποίηση των ταινιών γίνεται σε 15 κατηγορίες. Στην κάθε κατηγορία υπάρχουν 50 ταινίες των οποίων οι θέσεις είναι αριθμημένες από 1 έως 50. Α) Η επεξεργασία των δεδομένων του αλγορίθμου θα απαντά στα εξής ερωτήματα: Β) Επιπλέον των παραπάνω ο αλγόριθμος θα δίνει ως έξοδο: Οι πίνακες που περιγράφονται στην άσκηση δίνονται παρακάτω -οι τιμές των στοιχείων είναι ενδεικτικές. Θ Ε Σ Ε Ι Σ 1 2 3 … 50 1 Κ 1 2 2 3 3 4 4 12 13 14 14
Η μάχη των πλανητών 15 15 Οι άθλιοι Όλιβερ Τουίστ Η επόμενη μέρα κατηγορίες ταινίες
Σε μονοδιάστατο πίνακα καταχωρούνται τα ονόματα των 10 κινηματογράφων μιας πόλης. Σε δισδιάστατο πίνακα καταχωρούνται οι ταινίες που παίχτηκαν σε κάθε κινηματογράφο για το προηγούμενο έτος. Ο αριθμός των ταινιών που κάθε κινηματογράφοs προέβαλε είναι άγνωστος και πιθανόν διαφορετικός σε κάθε κινηματογράφο. Ο αλγόριθμος σταματά να διαβάζει τίτλους ταινιών για κάποιο κινηματογράφο όταν δοθεί ως τίτλος ταινίας η λέξη “Τ_e!λοs?” ή όταν ο αριθμός των ταινιών ξεπεράσει τις 100. Η έξοδος του αλγορίθμου συνοψίζεται στην απάντηση των ερωτημάτων που ακολουθούν: Τ Α Ι Ν Ι Ε Σ 1 2 3 ….. 39 … 101 1 Κ 1 2 2 3 3 4 4 … … 9 9 1922 10 10 …… ….. … Κινηματογράφος Ταινίες
Ένα βιβλιοπωλείο ξεχώρισε τα τρία καλύτερα βιβλία λογοτεχνίας από οκτώ διαφορετικούς εκδοτικούς οίκους. Για την συνέχεια στον αλγόριθμο θα υλοποιείται αναζήτηση ενός οποιουδήποτε βιβλίου. Εφ’ όσον η αναζήτηση είναι επιτυχής θα δίνεται ως αποτέλεσμα ο οίκος που έχει εκδώσει το συγκεκριμμένο βιβλίο. Ε Κ Δ Ο Τ Ι Κ Ο Ι Ο Ι Κ Ο Ι 1 2 3 4 5 6 8 1 2 3 βιβλία Ε Κ Δ Ο Τ Ι Κ Ο Ι Ο Ι Κ Ο Ι 1 2 3 4 5 6 8 1 2 3 οίκος
1
2
3
4
5
6
7
Hitachi
HP
LG
Panasonic
Philips
Samsung
Sony
α) αν υπάρχουν οθόνες Panasonic 21″, β) σε ποια μεγέθη υπάρχουν οθόνες Philips γ) ποια μοντέλα οθονών δεν υπάρχουν σε μέγεθος 24″.
Hitachi
Μ
Ο
Ν
Τ
Ε
Λ
Α
ΟΧΙ
ΝΑΙ
NAI
ΟΧΙ
2
HP
2
ΝΑΙ
ΟΧΙ
ΝΑΙ
ΟΧΙ
LG
ΝΑΙ
ΟΧΙ
ΟΧΙ
ΝΑΙ
Panasonic
ΟΧΙ
ΝΑΙ
ΟΧΙ
ΟΧΙ
Philips
ΝΑΙ
ΟΧΙ
ΟΧΙ
ΝΑΙ
Samsung
ΟΧΙ
ΟΧΙ
ΝΑΙ
ΝΑΙ
Sony
ΟΧΙ
ΝΑΙ
ΟΧΙ
ΟΧΙ
Στοιχείο πίνακα
Γραμμή
Στήλη
Τιμή
Οθόνες[3, 2]
3
2
ΟΧΙ
Οθόνες[1, 1]
1
1
ΟΧΙ
Οθόνες[5, 4]
5
4
ΝΑΙ
Οθόνες[4, 5]
4
Δεν υπάρχει
Να δημιουργηθεί αλγόριθμος που θα διαβάζει τις κατηγορίες σε μονοδιάστατο πίνακα με τρόπο ώστε αυτός κάθε στιγμή να είναι ταξινομημένος αλφαβητικά. Η εισαγωγή των δεδομένων συνεχίζεται διαβάζοντας τους τίτλους των ταινιών κάθε κατηγορίας σε δισδιάσταστο πίνακα 15×50 -σε περίπτωση που κάποια ταινία έχει ενοικιαστεί το αντίστοιχο στοιχείο του πίνακα έχει τιμή ” “(κενό).
1) Ποια είναι η τελευταία κατηγορία ταινιών και πως τιτλοφορούνται οι ταινίες αυτής της κατηγορίας;
2) Στην πρώτη θέση υπάρχουν ταινίες που έχουν ενοικιαστεί; Αν ναι σε ποιες κατηγορίες ανήκουν;
1) τους τίτλους των ταινιών που ανήκουν στην κατηγορία “Κωμωδία”,
2) τις κατηγορίες στις οποίες συναντάται η ταινία “Η επόμενη μέρα” καθώς και την θέση της σε κάθε κατηγορία.
Αστυνομικά
Α
Τ
Η
Γ
Ο
Ρ
Ι
Ε
Σ
The Raid
Αστυνόμος Μπέκας
Βιογραφίες
Ένας υπέροχος άνθρωπος
Ο άνθρωπος που γνώριζε το άπειρο
Όλιβερ Τουίστ
Γκάντι
Θρίλερ
Η επόμενη μέρα
…
…
Η επόμενη μέρα
Κοινωνικά
12
Η επόμενη μέρα
Όλιβερ Τουίστ
Οι άθλιοι
Κωμωδία
13
Φόρεστ Γκαμπ
Γέλια
Τρελαντώνης
Παιδικά
Superman
Nemo
Περιπέτεια
Οι 3 Σωματοφύλακες
Πόσες ταινίες παίχτηκαν σε κάθε κινηματογράφο;
Ποιες ταινίες παίχτηκαν στον κινηματογράφο “Οινιάδες”;
Ποιοι κινηματογράφοι έπαιξαν μια συγκεκριμμένη ταινία της οποίας ο τίτλος δίνεται ως είσοδος στον αλγόριθμο;
Ολύμπιον
Ι
Ν
Η
Μ
Α
Τ
Ο
Γ
Ρ
Α
Φ
Ο
Ι
Ένας υπέροχος άνθρωπος
……
…..
…..
Τ_e!λοs?
Άνεσις
….
Genius
….
….
….
Τ_e!λοs?
El Greco
….
…..
…
….
….
….
…..
Πανόραμα
Τιτανικός
Τ_e!λοs?
Τ_e!λοs?ς
Τ_e!λοs?
Οινιάδες
…….
Οντεόν
….
…
….
….
….
Να αναπτυχθεί αλγόριθμος που θα διαβάζει τους τίτλους των βιβλίων σε δισδιάστατο πίνακα 3 x 8. Αφού ολοκληρωθεί η προηγούμενη διαδικασία ο αλγόριθμος θα εμφανίζει τον τίτλο κάθε βιβλίου και θα ζητά τον αντίστοιχο εκδοτικό οίκο τον οποίο και θα καταχωρεί σε επίσης δισδιάστατο πίνακα 3×8.
Ακόμη ο αλγόριθμος θα εμφανίζει όλα τα βιβλία που έχουν εκδοθεί από εκδοτικό οίκο που θα επιλέγει ο χρήστης.
7
7
Η διαδικτυακή εταιρεία παιχνιδιών EASPORT διαθέτει στους χρήστες της (μέσω διαδικτύου) 5 διαφορετικά παιχνίδια. Κάθε χρήστης εγγράφεται προκειμένου να αποκτήσει πρόσβαση (να “παίξει”) σε κάποιο παιχνίδι επιλέγοντας ένα και μοναδικό όνομα χρήστη (user name). Υλοποιήστε αλγόριθμο που θα διαβάζει σε μονοδιάστατο πίνακα Ν θέσεων (όπου Ν <= 10^10) τα user names των εγγεγραμμένων χρηστών. Σε δισδιάστατο πίνακα Ν x 5 για κάθε χρήστη τον χρόνο (σε ώρες) που αφιέρωσε “παίζοντας” κάποιο από τα παιχνίδια της εταιρείας. Ο αλγόριθμος θα δίνει ως έξοδο τον χρόνο που ο χρήστης “Alexiou_Dimis” αφιέρωσε σε κάθε παιχνίδι. ..