Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Μονοδιάστατοι πίνακες => Γ΄ Λυκείου => Αναζήτηση => Μήνυμα ξεκίνησε από: papet στις 28 Μάι 2009, 03:29:04 μμ

Τίτλος: Σειριακή Αναζήτηση με "Αρχή Επανάληψης ... Μέχρις ότου"
Αποστολή από: papet στις 28 Μάι 2009, 03:29:04 μμ
Ένας μαθητής μου έκανε την εξής παρατήρηση/ερώτηση:

Μια βασική διαφορά ανάμεσα στο "Όσο" και την "Αρχή Επανάληψης ... Μέχρις ότου" είναι ότι στο μεν πρώτο οι εντολές εντός βρόγχου ενδέχεται να μην εκτελετούν, στο δε δεύτερο, αυτό θα συμβεί τουλάχιστον μία φορά. Στο βιβλίο, η σειριακή αναζήτηση ορίζεται με "Όσο". Δε θα ήταν προτιμότερο να χρησιμοποιείται η "Αρχή Επανάληψης ... Μέχρις ότου", εφ' όσον θα γίνει τουλάχιστον μια σύγκριση (για την περίπτωση που το στοιχείο που ψάχνουμε είναι το πρώτο στοιχείο του πίνακα);

Η απάντησή μου μικρή σημασία έχει, θα ήθελα όμως να ήξερα εσείς πώς θα του απαντούσατε;
Τίτλος: Απ: Σειριακή Αναζήτηση με "Αρχή Επανάληψης ... Μέχρις ότου"
Αποστολή από: meteo_xampos στις 28 Μάι 2009, 10:56:29 μμ
Δηλαδή κάπως έτσι...

pos<-0
done<-ψευδής
i<-1
Αρχή_επανάληψης
    Αν Α[ i ]=key τότε
        done<-αληθής
        pos<-i
    Τέλος_Αν
    i<-i+1
Μέχρις_ότου done=αληθής Ή i>N

Πιστεύω ότι είναι πιο κατανοητή έτσι, αλλά στα παιδιά παρουσιάζεται πρώτα με τη Για, και μετά
με μετατροπή σε Όσο, πετάς και τη λογική μεταβλητή μέσα για να τη καταλάβουν καλύτερα.
Έπειτα μπορείς να την μετατρέψεις και με την Αρχή_επανάληψης. Σωστός ο μαθητής.
Τίτλος: Απ: Σειριακή Αναζήτηση με "Αρχή Επανάληψης ... Μέχρις ότου"
Αποστολή από: Καρκαμάνης Γεώργιος στις 29 Μάι 2009, 12:33:38 πμ
Σωστός είναι ο μαθητής σου. Πιστεύω πως το βιβλίο χρησιμοποιεί την ΟΣΟ στην σειριακή αναζήτηση γιατί είναι πιο εύκολη και σαν εντολή σε σχέση με την Μέχρις_ότου καθώς εξετάζεται η συνθήκη στην αρχή του βρόχου