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

Ξεκίνησε από gthal, 20 Ιαν 2011, 01:15:30 ΜΜ

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

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)
Αν και είναι περίεργη η ιδέα να επιστρέφεται ως θέση η τιμή μηδέν αν δεν βρεθεί το αναζητούμενο στοιχείο
Γενικά έχει πολλές αδυναμίες ο αλγόριθμος που παρουσιάζεται στο βιβλίο
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

gthal

Παράθεση από: ptsiotakis στις 20 Ιαν 2011, 01:20:13 ΜΜ
θα του έλεγα πως "είναι σα να πίνει γαλλικό καφέ σε ποτήρι κρασιού"
Μου άρεσε αυτό  ;D

Πέτρο συμφωνώ, η χρήση της θέσης και της λογικής μεταβλητής είναι πλεονασμός.
Βρίσκω ότι τα παιδιά συμπαθούν περισσότερο τον αλγόριθμο με τη θέση αλλά τους λέω και τον αλγόριθμο με τη λογική μεταβλητή (χωρίς θέση), ώστε να εξοικειώνονται με τις λογικές μεταβλητές. Ουσιαστικά είναι η πρώτη στιγμή που βλέπουν πώς μπορεί να χρησιμοποιηθεί μια λογική μεταβλητή.
Φιλικά,
Γιώργος Θαλασσινός

DaKnOb

Δεν ξέρω για εσάς, αλλά εγώ πρώτη φορά που το έκανα μόνος μου έκανα αυτό:

//Δεδομένα Α,Ν,Query//
!Α = Μονοδιάστατος Πίνακας
!Ν = Μέγεθος Πίνακα
!Query = Λέξη προς αναζήτηση

!Αναζήτηση
Για ι από 1 μέχρι Ν
	Αν Α[ι] = Query τότε
		Εμφάνισε "Βρέθηκε στην θέση #", ι
		ι ← Ν + 1
	Τέλος_Αν
	Αν ι = Ν τότε
		Εμφάνισε "Δεν βρέθηκε"
	Τέλος_Αν
Τέλος_Επανάληψης


:P

P.Tsiotakis

πιθανώς θα πρέπει να διερευνήσεις και την ύπαρξη της δομής Όσο
  :police:

DaKnOb

Παράθεση από: Παναγιώτης Τσιωτάκης στις 25 Ιαν 2013, 11:34:50 ΜΜ
πιθανώς θα πρέπει να διερευνήσεις και την ύπαρξη της δομής Όσο
  :police:

Απλά μου αρέσουν οι εναλλακτικοί τρόποι σε όλα τα πράγματα. Γι αυτό ίσως και με έλκει το αντικείμενο.

gthal

Ναι, πολλοί μαθητές προτείνουν μια λύση που μοιάζει, όμως στα πλαίσια του μαθήματος απαγορεύεται να μεταβάλλουμε το μετρητή της για.
Φιλικά,
Γιώργος Θαλασσινός

DaKnOb

Παράθεση από: gthal στις 26 Ιαν 2013, 04:36:33 ΠΜ
Ναι, πολλοί μαθητές προτείνουν μια λύση που μοιάζει, όμως στα πλαίσια του μαθήματος απαγορεύεται να μεταβάλλουμε το μετρητή της για.

Για αυτό υπάρχει μια τεράστια διαφωνία, οπότε κάνουμε του βιβλίου ωστε και ο πιο άχρηστος διορθωτής να μην μπορεί να κόψει κάτι γιατί θα του "θυμίζει κάτι" αυτό.

Κανένας

#11
και γιατι να μην κάνουμε αυτή:

θ<-0
Αρχή_επανάληψης
θ<-θ+1
Μέχρις_ότου Α[θ]=Query ή θ=Ν

Επιχειρήματα υπέρ:
1. Δεν χρειάζεται αποστήθιση, πράγμα που κάνουν κατά κανόνα οι μαθητές στον αλγόριθμο του βιβλίου. (Μόνο οι μαθητές;)
2. Για να βρεθεί χρειάζεται τουλάχιστον ένας έλεγχος (1η θέση). Τι λέμε συνέχεια για τη Μέχρις_ότου;
3. Η χρήση λογικής μεταβλητής είναι άστοχη εδώ,(Νομίζω είναι και η πρώτη φορά που χρησιμοποιείται στο βιβλίο)εφ' όσον η αναζήτηση
    σταματάει με την εύρεση. Αν θέλεις να διδάξεις τη χρήση λογικής μεταβλητής θα ήταν εύστοχο να το κάνεις με χρήση Για.
4. Αποδοτικότερος αλγόριθμος (εκτός ύλης, αλλά νομίζω πρέπει να αναφέρεται).

Νικηφόρος Μανδηλαράς
ΓΕΛ Νάξου "Μανώλης Γλέζος"
https://blogs.sch.gr/nobody/

evry

Δεν είναι πιο αποδοτικός.
Την ίδια πολυπλοκότητα έχει με όλους τους άλλους Ο(n).

Παράθεση από: nobody6 στις 14 Φεβ 2014, 11:10:31 ΜΜ
και γιατι να μην κάνουμε αυτή:

θ<-0
Αρχή_επανάληψης
θ<-θ+1
Μέχρις_ότου Α[θ]=Query ή θ=Ν

Επιχειρήματα υπέρ:
1. Δεν χρειάζεται αποστήθιση, πράγμα που κάνουν κατά κανόνα οι μαθητές στον αλγόριθμο του βιβλίου. (Μόνο οι μαθητές;)
2. Για να βρεθεί χρειάζεται τουλάχιστον ένας έλεγχος (1η θέση). Τι λέμε συνέχεια για τη Μέχρις_ότου;
3. Η χρήση λογικής μεταβλητής είναι άστοχη εδώ,(Νομίζω είναι και η πρώτη φορά που χρησιμοποιείται στο βιβλίο)εφ' όσον η αναζήτηση
    σταματάει με την εύρεση. Αν θέλεις να διδάξεις τη χρήση λογικής μεταβλητής θα ήταν εύστοχο να το κάνεις με χρήση Για.
4. Αποδοτικότερος αλγόριθμος (εκτός ύλης, αλλά νομίζω πρέπει να αναφέρεται).


What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Κανένας

#13
Είναι πιο αποδοτικός. Ο αλγόριθμος του βιβλίου έχει επιπλέον ένα Αν μέσα στην επανάληψη.
Νικηφόρος Μανδηλαράς
ΓΕΛ Νάξου "Μανώλης Γλέζος"
https://blogs.sch.gr/nobody/

itt

Παράθεση από: nobody6 στις 15 Φεβ 2014, 01:34:16 ΜΜ
Είναι πιο αποδοτικός. Ο αλγόριθμος του βιβλίου έχει επιπλέον ένα Αν μέσα στην επανάληψη.

Το επιπλέον Αν δεν επηρρεάζει την τάξη πολυπλοκότητας του αλγορίθμου.