Σειριακή Αναζήτηση με "Αρχή Επανάληψης ... Μέχρις ότου"

Ξεκίνησε από papet, 28 Μαΐου 2009, 03:29:04 ΜΜ

« προηγούμενο - επόμενο »

papet

Ένας μαθητής μου έκανε την εξής παρατήρηση/ερώτηση:

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

Η απάντησή μου μικρή σημασία έχει, θα ήθελα όμως να ήξερα εσείς πώς θα του απαντούσατε;
May the Force b with u...
papet

meteo_xampos

Δηλαδή κάπως έτσι...

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

Πιστεύω ότι είναι πιο κατανοητή έτσι, αλλά στα παιδιά παρουσιάζεται πρώτα με τη Για, και μετά
με μετατροπή σε Όσο, πετάς και τη λογική μεταβλητή μέσα για να τη καταλάβουν καλύτερα.
Έπειτα μπορείς να την μετατρέψεις και με την Αρχή_επανάληψης. Σωστός ο μαθητής.

Καρκαμάνης Γεώργιος

Σωστός είναι ο μαθητής σου. Πιστεύω πως το βιβλίο χρησιμοποιεί την ΟΣΟ στην σειριακή αναζήτηση γιατί είναι πιο εύκολη και σαν εντολή σε σχέση με την Μέχρις_ότου καθώς εξετάζεται η συνθήκη στην αρχή του βρόχου