Φάση Σεναρίου
Πληροφορική (Γενικό Λύκειο)
Αλγόριθμος σειριακής αναζήτησης ύπαρξης και θέσης
Στη φάση αυτή, θα επιχειρήσουμε την ανάπτυξη του "τυπικού" αλγορίθμου αναζήτησης, όπως αυτός περιλαμβάνεται στο διδακτικό πακέτο και στη συνέχεια θα αναπτύξουμε παραλλαγές που περιλαμβάνουν τις περιπτώσεις όπου τα στοιχεία δεν είναι όλα διαφορετικά ή/και ο πίνακας είναι ταξινομημένος.
Για το σκοπό αυτό θα εργαστούμε σε ένα νέο φύλλο εργασίας.
Αρχικά θα αναπτύξουμε τον αλγόριθμο ο οποίος σε έναν μονοδιάστατο πίνακα Π με 100 διαφορετικά μη ταξινομημένα στοιχεία θα αναζητά αν υπάρχει κάποιο ζητούμενο στοιχείο στον πίνακα και θα επιστρέφει την ύπαρξη ή μη του ζητούμενου στοιχείου και τη θέση του στοιχείου, αν υπάρχει. Η διαδικασία αναζήτησης είναι απαραίτητο να τερματίζει αν εντοπιστεί το ζητούμενο στοιχείο ή όταν προσπελαστούν όλα τα στοιχεία του πίνακα στην περίπτωση που το ζητούμενο δεν υπάρχει.
Εδώ απαιτείται μία νέα μεταβλητή (έστω Θ) για τον προσδιορισμό της θέσης του ζητούμενου στοιχείου. Αρχικά θεωρούμε ότι το ζητούμενο δεν υπάρχει και έτσι στη μεταβλητή Θ εκχωρείται η τιμή μηδέν, το οποίο υποδεικνύει ότι δεν υπάρχει το ζητούμενο, αφού δεν μπορεί να υπάρχει ζητούμενο στοιχείο στη θέση μηδέν, μιας και η πρώτη θέση του πίνακα είναι η ένα. Κατά την αναζήτηση του στοιχείου στον πίνακα γίνεται προσπέλαση των στοιχείων του πίνακα. Για να σταματήσει η διαδικασία αναζήτησης αν εντοπιστεί το ζητούμενο στοιχείο, μπορεί να χρησιμοποιηθεί (όπως και πριν) μία λογική μεταβλητή που αρχικά θα έχει την τιμή ΨΕΥΔΗΣ (που σημαίνει ότι το ζητούμενο δεν έχει εντοπιστεί ακόμα). Σε περίπτωση που βρεθεί το ζητούμενο στοιχείο, η λογική μεταβλητή λαμβάνει την τιμή ΑΛΗΘΗΣ και εκχωρείται η τρέχουσα θέση του πίνακα στην μεταβλητή Θ. Στη συνέχεια ελέγχεται η σύνθετη συνθήκη της εντολής ΟΣΟ, η οποία είναι ΨΕΥΔΗΣ, και ο βρόχος τερματίζεται. Σε περίπτωση που δε βρεθεί στοιχείο του πίνακα ίσο με την τιμή του ζητούμενου στοιχείου, η λογική μεταβλητή θα παραμείνει ΨΕΥΔΗΣ μέχρι τη λήξη της εκτέλεσης του αλγορίθμου και η επανάληψη θα γίνει ΨΕΥΔΗΣ επειδή ξεπεράστηκαν τα όρια του πίνακα.
Με τον τρόπο αυτό η αναζήτηση επαναλαμβάνεται μέχρι να βρεθεί στον πίνακα στοιχείο ίσο με την τιμή του ζητούμενου ή μέχρι να εξαντληθούν τα στοιχεία του πίνακα. Αν βρεθεί το στοιχείο, τότε η αναζήτηση τερματίζεται χωρίς να προσπελαστούν όλα τα στοιχεία του πίνακα.
Ενδιαφέρον έχει να υλοποιήσουμε τον συγκεκριμένο αλγόριθμο και με την εντολή επανάληψης ΜΕΧΡΙΣ_ΟΤΟΥ, ο οποίος ζητείται στη δραστηριότητα 5.
Επιπλέον, μπορούμε να διερευνήσουμε κατά πόσο είναι απαραίτητη η λογική μεταβλητή εφόσον ζητείται η θέση που υπάρχει (αν υπάρχει) το ζητούμενο στοιχείο. Για το σκοπό αυτό θα εργαστούμε στη δραστηριότητα 6.