Αποστολέας Θέμα: Σειριακή Αναζήτηση με "Αρχή Επανάληψης ... Μέχρις ότου"  (Αναγνώστηκε 2628 φορές)

papet

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 48
    • Σεληνιακό Πάρκο - Σκέψεις και Ημέρες
Ένας μαθητής μου έκανε την εξής παρατήρηση/ερώτηση:

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

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

meteo_xampos

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 182
Απ: Σειριακή Αναζήτηση με "Αρχή Επανάληψης ... Μέχρις ότου"
« Απάντηση #1 στις: 28 Μάι 2009, 10:56:29 μμ »
Δηλαδή κάπως έτσι...

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

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

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

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1094
Απ: Σειριακή Αναζήτηση με "Αρχή Επανάληψης ... Μέχρις ότου"
« Απάντηση #2 στις: 29 Μάι 2009, 12:33:38 πμ »
Σωστός είναι ο μαθητής σου. Πιστεύω πως το βιβλίο χρησιμοποιεί την ΟΣΟ στην σειριακή αναζήτηση γιατί είναι πιο εύκολη και σαν εντολή σε σχέση με την Μέχρις_ότου καθώς εξετάζεται η συνθήκη στην αρχή του βρόχου