Professional Documents
Culture Documents
Ερωτήσεις θεωρίας
2. Με ποια βήματα μπορεί να αποδοθεί (να εφαρμοσθεί) η μέθοδος Διαίρει και βασίλευε;
Απάντηση (σελ. 68)
Η μέθοδος σχεδίασης αλγορίθμων «Διαίρει και Βασίλευε» μπορεί να αποδοθεί με τα επόμενα
βήματα:
1. Δίνεται για επίλυση ένα στιγμιότυπο ενός προβλήματος.
2. Το στιγμιότυπο του προβλήματος υποδιαιρείται σε υπο-στιγμιότυπα του ίδιου
προβλήματος.
3. Δίνεται ανεξάρτητη λύση σε κάθε ένα υπο-στιγμιότυπο.
4. Συνδυάζονται όλες οι μερικές λύσεις που βρέθηκαν για τα υπο-στιγμιότυπα, έτσι ώστε
να δοθεί η συνολική λύση του προβλήματος.
3. Ποιος είναι ο μέγιστος αριθμός των επαναλήψεων που απαιτούνται για την εύρεση ενός
στοιχείου σε ένα σύνολο «n» ταξινομημένων στοιχείων; (σελ. 69)
Απάντηση (σελ. 69)
Ο μέγιστος αριθμός των συγκρίσεων (επαναλήψεων) που απαιτούνται για την εύρεση ενός
στοιχείου σε ένα σύνολο «n» ταξινομημένων στοιχείων, συμπεριλαμβανομένης και της
περίπτωσης μη ύπαρξης του στοιχείου, δίνεται από το ακέραιο μέρος του [log2(n)+1] (με
στρογγυλοποίηση προς τα κάτω), η απόδειξη του οποίου υπερβαίνει τα όρια της διδακτέας
ύλης του μαθήματος. Επομένως, για την εύρεση του μέγιστου πλήθους των επαναλήψεων
θεωρείται γνωστό το log2(n). Για παράδειγμα, σε ένα σύνολο 100 ταξινομημένων στοιχείων
(n=100), ο μέγιστος αριθμός συγκρίσεων (επαναλήψεων) είναι:
[log2(100)+1]=[6,643856+1]=[7,643856]=7
4. Δώστε ένα παράδειγμα αλγορίθμου, που εφαρμόζει την τεχνική σχεδίασης «Διαίρει και
Βασίλευε».
Απάντηση
Ένας κλασικός αλγόριθμος που ακολουθεί τη φιλοσοφία της μεθόδου «Διαίρει και Βασίλευε»
είναι η Δυαδική αναζήτηση.
1. Σ/Λ
α. Η δυαδική αναζήτηση δεν μπορεί να λειτουργήσει σε μη ταξινομημένο πίνακα.
β. Για την αναζήτηση σε ταξινομημένους πίνακες προτιμάται η δυαδική αναζήτηση.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
10 12 20 26 48 55 77 82 90 100 120 124 140 180 200 210
Εάν υποθέσουμε ότι ο υπάλληλος αναζητεί την τιμή 140, γράψτε με τη σειρά τις τιμές που
επισκεφθήκατε εφαρμόζοντας τον εν λόγω αλγόριθμο.
1 2 3 4 5 6 7 8 9 10
-5 6 8 15 27 44 69 75 88 100
Συμπληρώστε το πλήθος των απαιτούμενων συγκρίσεων για την εύρεση των κάτωθι
στοιχείων χρησιμοποιώντας τον αλγόριθμο της δυαδικής αναζήτησης.
α. -5
β. 6
γ. 44
δ. 69
ε. 100
7. Η πόλη του Γκόθαμ δέχεται επίθεση από κακοποιούς. Ο Τζόκερ έχει συλλάβει ως ομήρους τον
Δήμαρχο και τον Εισαγγελέα της πόλης και τους έχει κρύψει σε μία από τις 500 κυψέλες της
ομοσπονδιακής φυλακής της πόλης. Ο Μπάτμαν καλείται να τους βρει και να τους σώσει
έχοντας στη διάθεσή του ελάχιστο χρόνο και ελάχιστες προσπάθειες. Ως τόσο ο Άλφρεντ, ως
πανέξυπνος βοηθός του, του έχει δώσει ένα μηχάνημα θερμικής ανίχνευσης που εντοπίζει σε
ποια κατεύθυνση (αριστερά ή δεξιά) βρίσκονται άνθρωποι. Γνωρίζοντας ότι οι κυψέλες της
φυλακής είναι τοποθετημένες η μία δίπλα στην άλλη και αριθμημένες από το 1 έως το 500, να
γραφεί πρόγραμμα το οποίο θα διαβάζει τον αριθμό της κυψέλης, που ο Τζόκερ έχει κρύψει
τους ομήρους. Στη συνέχεια, με χρήση του κατάλληλου αλγορίθμου και με την πληροφορία της
ύπαρξης του μηχανήματος ανίχνευσης θερμικής ενέργειας που ενημερώνει προς ποια
κατεύθυνση βρίσκονται παγιδευμένοι άνθρωποι, να βοηθήσετε τον Μπάτμαν να εντοπίσει και
να σώσει τους ομήρους.
Το πρόγραμμα να εμφανίζει στο τέλος τον αριθμό της κυψέλης όπου είχαν παγιδευτεί οι όμηροι
και τις προσπάθειες του Μπάτμαν μέχρι να εντοπίσει τους ομήρους.
8. Ένας βασιλιάς παραλαμβάνει 64 χρυσά νομίσματα σε φόρους, αλλά έχει βάσιμες υποψίες ότι
ένα από αυτά είναι κάλπικο. Σας καλεί στο παλάτι για να εντοπίσετε το κάλπικο νόμισμα. Έχετε
στη διάθεσή σας μια ζυγαριά παλαιού τύπου με δύο δίσκους στους οποίους μπορείτε να
τοποθετείτε νομίσματα. Πόσες φορές πρέπει να χρησιμοποιήσετε τη ζυγαριά για να βρείτε το
ελαφρύτερο, κάλπικο νόμισμα; Επιλέξτε μία από τις απαντήσεις:
α) 6 β) 5 γ) 4 δ) 3
9. Ένα παιδί παίζει με τον υπολογιστή το παιχνίδι «Μάντεψε τον αριθμό». Οι κανόνες του
παιχνιδιού είναι οι εξής:
• Το παιδί αποτυπώνει στο μυαλό του έναν αριθμό από το 1 έως το 100.
• Ο υπολογιστής προσπαθεί να μαντέψει τον αριθμό το πολύ σε 7 προσπάθειες
• Κάθε φορά που ο υπολογιστής προτείνει έναν αριθμό, με κατάλληλο μήνυμα στην
οθόνη, ρωτά το παιδί να του απαντήσει, μέσω του πληκτρολογίου, αν ο αριθμός που
μάντεψε ο υπολογιστής, είναι αυτός που έχει βάλει το παιδί στο μυαλό του ή αν είναι
μεγαλύτερος ή μικρότερος.
Να αναπτύξετε πρόγραμμα που να υλοποιεί το παραπάνω παιχνίδι:
α. Ο υπολογιστής με κατάλληλο μήνυμα σας ζητάει να σκεφτείτε έναν ακέραιο αριθμό από το
1 μέχρι το 100.
β. Ο υπολογιστής εμφανίζει κατάλληλο μήνυμα που σας πληροφορεί ότι θα βρει τον αριθμό
το πολύ με 7 προσπάθειες.
γ. Ο υπολογιστής με κατάλληλο μήνυμα προτείνει έναν ακέραιο αριθμό και στη συνέχεια
(μέσω κατάλληλου μηνύματος) ζητάει να πληκτρολογήσετε αν ο αριθμός αυτός είναι ίδιος,
μεγαλύτερος ή μικρότερος από τον αριθμό που είχατε σκεφτεί.
δ. Όταν ο υπολογιστής μαντέψει τον αριθμό που σκεφθήκατε, εμφανίζει στην οθόνη
κατάλληλο μήνυμα με τον αριθμό αυτό, καθώς και τον αριθμό των προσπαθειών που έκανε
μέχρι να τον βρει.
low ← 1
high ←7
found ← ΨΕΥΔΗΣ
Όσο low ≤ high ΚΑΙ found = ΨΕΥΔΗΣ επανάλαβε
mid ←(low+high) DIV 2
Εμφάνισε ΠΙΝ[mid]
Αν ΠΙΝ[mid] < Χ τότε
low ← mid+1
Αλλιώς_αν ΠΙΝ[mid] > Χ τότε
high ← mid-1
Αλλιώς
found ← ΑΛΗΘΗΣ
Τέλος_αν
Τέλος_Επανάληψης
Μονάδες 6
Δίνεται το παρακάτω τμήμα αλγορίθμου, στο οποίο έχουν αριθμηθεί οι εντολές εκχώρησης
και εξόδου.
01 ΔΙΑΒΑΣΕ X
02 ΠΛ<– 0
03 ΑΡ <– 1
04 ΔΕ <– 12
05 Β <– ΨΕΥΔΗΣ
ΟΣΟ Β = ΨΕΥΔΗΣ ΚΑΙ ΑΡ <= ΔΕ ΕΠΑΝΑΛΑΒΕ
06 Μ <– (ΑΡ + ΔΕ) DIV 2
AN A[M] = X TOTE
07 B <– ΑΛΗΘΗΣ
ΑΛΛΙΩΣ_ΑΝ Α[Μ] < Χ ΤΟΤΕ
08 ΑΡ <– Μ + 1
ΑΛΛΙΩΣ
09 ΔΕ <– Μ – 1
ΤΕΛΟΣ ΑΝ
10 ΠΛ <– ΠΛ + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ Β = ΑΛΗΘΗΣ ΤΟΤΕ
11 ΕΜΦΑΝΙΣΕ Μ
ΑΛΛΙΩΣ
12 ΕΜΦΑΝΙΣΕ “ΔΕΝ ΒΡΕΘΗΚΕ”, ΠΛ
ΤΕΛΟΣ_ΑΝ
Για την παρακολούθηση της εκτέλεσης του τμήματος αλγορίθμου με τιμή εισόδου Χ = 35 και
με δεδομένο τον πίνακα Α[12].
1 2 3 4 5 6 7 8 9 10 11 12
3 10 18 20 26 32 35 48 55 60 75 90
Στη στήλη με τίτλο «Αρ. Γρ.» καταγράφεται ο αριθμός γραμμής της εντολής που εκτελείται.
Στη στήλη με τίτλο «Έξοδος» καταγράφεται η τιμή εξόδου, εφόσον η εντολή που εκτελείται
είναι εντολή εξόδου.
Οι υπόλοιπες στήλες του πίνακα τμήματος του αλγορίθμου αντιστοιχούν στις μεταβλητές του
τμήματος του αλγορίθμου.
Να μεταφέρετε τον πίνακα τιμών στο τετράδιό σας και να προσθέσετε τις γραμμές που
χρειάζονται, συνεχίζοντας την εκτέλεση του τμήματος αλγορίθμου ως εξής: για κάθε
αριθμημένη εντολή που εκτελείται, να γράψετε τον αριθμό της γραμμής της εντολής σε νέα
γραμμή του πίνακα και το αποτέλεσμα της εκτέλεσης της εντολής στην αντίστοιχη στήλη.