Γενικό Λύκειο > Αναζήτηση

Μια "αιρετική" αναζήτηση

(1/10) > >>

gthal:
Ένας μαθητής μου που γενικά δεν δέχεται να μαθαίνει πράγματα, αφού του έδειξα τη σειριακή αναζήτηση με τον τρόπο του βιβλίου (σχεδόν), άρχισε να λύνει τις ασκήσεις κάπως έτσι

--- Κώδικας: ---  Εμφάνισε 'Δώσε στοιχείο προς αναζήτηση'
  Διάβασε x
  i← 1
  k← 1
  Όσο k=1 επανάλαβε
Αν A[i]=x τότε
k← 0
αλλιώς_αν i=N τότε
k← 2
Τέλος_αν
i← i+1
  Τέλος_επανάληψης

  Αν k=0 τότε
Εμφάνισε 'Βέθηκε στη θέση ',i-1
  αλλιώς
Εμφάνισε 'Δεν βρέθηκε'
  Τέλος_αν

--- Τέλος κώδικα ---
όπου Ν το μέγεθος του πίνακα βέβαια.

Η πρώτη μου αντίδραση ήταν "τι κάνεις εκεί !" αλλά μετά είδα ότι δεν έχει λάθος.
Είναι η πιο παρανοϊκή-αντιδραστική αναζήτηση που έχει τύχει να δω αλλά είναι σωστή (νομίζω).
Του είπα μόνο ότι ρισκάρει στη βιασύνη της διόρθωσης, σε μια τόσο τετριμμένη λειτουργία, ένα μάτι που έχει συνηθίσει να περιμένει διπλή συνθήκη στην όσο (η i<=N δεν λείπει από καμιά version που έχω δει ως τώρα), μια μεταβλητή για θέση και/ή μια λογική μεταβλητή, να το προσπεράσει εύκολα σαν λάθος.
Τι πιστεύετε;

P.Tsiotakis:
ουσιαστικά χρησιμοποιεί την κ ως λογική μεταβλητή
άρα λειτουργεί σχεδόν όπως ο αλγόριθμος του βιβλίου

θα του έλεγα πως "είναι σα να πίνει γαλλικό καφέ σε ποτήρι κρασιού"


στον κλασσικό αλγόριθμο ξεδιπλώνεις και τη σκέψη σου:  "όσο δεν έχει εξαντληθεί ο πίνακας και δεν έχει βρεθεί το στοιχείο"

petrosp13:
Ο αλγόριθμος του βιβλίου έχει πάρα πολλές αδυναμίες (περιττή λογική μεταβλητή κ.α.) και ένας καλός νους τις αντιλαμβάνεται αμέσως και σπεύδει να τις διορθώσει. Κάνουμε τέτοια κουβέντα στην τάξη με όσους νιώθουν
Εγώ θα τον επιβράβευα φυσικά και απλά θα του έλεγα ότι στους 2-3 τυποποιημένους αλγορίθμους που έχει το βιβλίο, καλό είναι να μην ρισκάρει αλλαγές στις εξετάσεις

P.Tsiotakis:
Μια λογική μεταβλητή είναι πάντα περιττή και μπορεί να αντικατασταθεί, σαφώς...

Κατά τη γνώμη μου όμως, περιέχει παιδαγωγικά πλεονεκτήματα η χρήση της ως διακόπτης και επιτρέπει τη διαφοροποίηση του αλγορίθμου με Όσο από κάποιον που θα χρησιμοποιούσε το Για

petrosp13:
Εννοώ ότι στην θέση της λογικής μεταβλητής, μπορεί να χρησιμοποιηθεί η μεταβλητή Θέση (Όσο Θέση=0)
Αν και είναι περίεργη η ιδέα να επιστρέφεται ως θέση η τιμή μηδέν αν δεν βρεθεί το αναζητούμενο στοιχείο
Γενικά έχει πολλές αδυναμίες ο αλγόριθμος που παρουσιάζεται στο βιβλίο

Πλοήγηση

[0] Λίστα μηνυμάτων

[#] Επόμενη σελίδα

Μετάβαση στην πλήρη έκδοση