Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι

Ξεκίνησε από evry, 12 Δεκ 2008, 07:31:51 ΜΜ

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

evry

  Λοιπόν έπεσα σε ένα θέμα στο όποιο έλεγε "να βρείτε το επώνυμο του ... με τον αλγόριθμο της σειριακής αναζήτησης"
Ο αλγόριθμος της σειριακής αναζήτησης περιγράφεται στο βιβλίο με χρήση της Όσο και με λογική μεταβλητή έτσι ώστε να σταματάει
όταν βρει αυτό που ψάχνουμε. Ωστόσο αφού στο μάθημα δεν παίζει ρόλο η απόδοση του αλγορίθμου αν κάποιος μαθητής απάντούσε με τον παρακάτω αλγόριθμο θα σκεφτόσασταν να του κόψετε κάτι?
(Θα ήθελα να δω στατιστικά αν υπάρχει κανείς που δεν θα του άρεσε η παρακάτω λύση)

Κώδικας: ΓΛΩΣΣΑ
θέση <- 0
Για i από 1 μέχρι Ν
   Αν table[i] = key τότε
       θέση <- i
   Τέλος_Αν
Τέλος_Επανάληψης
Αν θέση = 0  τότε
   Εμφάνισε 'Δεν υπάρχει' 
Αλλιώς
   Εμφάνισε 'Βρέθηκε στη θέση', θέση
Τέλος_Αν


Εννοείται ότι γνωρίζουμε από την εκφώνηση ότι το Key εμφανίζεται στον πίνακα table το πολύ μια φορά.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

P.Tsiotakis

εμένα δε θα μου άρεσε αυτή η λύση (όπως φαντάζομαι και στους περισσότερους), ωστόσο θεωρώ οτι δε θα κοπούν μονάδες σε μια τέτοια επίλυση ...

vistrian

Εφόσον και ο αλγόριθμος αυτός επιτυγχάνει το σκοπό του, τότε θα τον δεχόμουν και δεν θα τον έπαιρνα ως λάθος.
VR in Computing

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

Είναι ο πιο βολικός αλγόριθμος για έναν μαθητή(σκεπτόμενος σαν μαθητής το εκφράζω αυτό) για να πραγματοποιήσει σειριακή  αναζήτηση χωρίς να μπλέξει με λογικές μεταβλητές.

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

Και μια παραλλαγή που χρησιμοποιούν κάποιοι μαθητές είναι και  η :

θέση <- 0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν
   ΑΝ table = key ΤΟΤΕ
       Εμφάνισε 'Βρέθηκε στη θέση', ι
       θέση <- i
   ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ θέση = 0  ΤΟΤΕ
   Εμφάνισε 'Δεν υπάρχει'
ΤΕΛΟΣ_ΑΝ



nikosx

δύσκολο να κόψει κάποιος μονάδες για αυτή τη λύση (πάντως πιστεύω ότι δεν είναι και απίθανο κάποια στιγμή να υπάρξει σε άσκηση στις πανελλήνιες σημείωση που να αναφέρει ότι όταν βρει το όνομα η επανάληψη πρέπει να τερματίζεται)
Νίκος Ξένος
Καθηγητής Πληροφορικής
nxenos@sch.gr

papet

Ούτε κι εγώ πιστεύω ότι θα έκοβε κανείς εύκολα μονάδες... Παρ' όλα αυτά, εκτός του ότι δε μου αρέσει λόγω απόδοσης, πιστεύω ότι και ως σκέψη δεν είναι η ορθότερη. Θεωρητικά, η αναζήτηση γίνεται με σκοπό να βρεθεί ένα στοιχείο μια φορά (το πολύ). Στην υποθετική περίπτωση που ο αντικειμενικός σκοπός έχει επιτευχθεί, τότε οποιαδήποτε επιπλέον ενέργεια είναι όχι απλώς περιττή, αλλά άσκοπη. Φανταστείτε, για παράδειγμα, ότι ψάχνετε ένα βιβλίο στο σπίτι σας... Το αν ο τρόπος που το ψάχνετε (μεθοδικά, π.χ. δωμάτιο-δωμάτιο, ή στην τύχη) είναι αποδοτικός, δεν είναι κάτι που μας απασχολεί... Το να συνεχίσετε όμως να ψάχνετε και στο υπόλοιπο σπίτι, από τη στιγμή που το βιβλιο έχει βρεθεί, δεν ξέρω πόσο... "λογικό" μπορεί να χαρακτηριστεί.
Αντιλαμβανόμενος πως αυτό που ανέφερα είναι κάπως τραβηγμένο.... δεν ξέρω αν το παράδειγμα είναι λανθασμένο ή απλώς μη αποδοτικό...
Όσες φορές πάντως μου έτυχε κάτι αντίστοιχο δεν έκοψα τίποτα, πρότεινα όμως στους μαθητές να μη χρησιμοποιούν αυτή τη λύση για πίνακες με μοναδικές εγγραφές.
May the Force b with u...
papet

petrosp13

Να ρωτήσω κάτι απλό
Μέσα στο σκεπτικό του αλγορίθμου σειριακής αναζήτησης δεν είναι και ότι θα σταματάει όταν βρεθεί στοιχείο με την ζητούμενη τιμή;
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

andreas_p

Προφανώς.

Παράδειγμα . 

Αν ξέρεις ότι  1000 άτομα είναι εφ' ενός ζυγού  και σου αναθέτουν το παρακάτω : 

Γνωρίζεις ότι ΕΝΑΣ από τους 1000 έχει στη τσέπη του μια χρυσή λίρα παλαιάς κοπής (Β. Ελισάβετ) [ και μπορείς να ψάξεις στην τσέπη του]  και τη βρεις στον  π.χ. 3ο στη σειρά  ,  υπάρχει λόγος να συνεχίσεις  να ψαχουλεύεις τσέπες  από τον 4ο μέχρι και τον 1000ο ; 

evry


κι'όμως η πολυπλοκότητα των δύο αναζητήσεων είναι η ίδια!!!!   Ο(Ν),
δεν έχουν δηλαδή και καμιά τρομερή διαφορά στην απόδοση, είναι της ίδιας τάξης
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

gpapargi

Υπάρχουν 2 θέματα. Το πρώτο είναι η χρήση της «Για» που πάει μέχρι το τέλος και δεν σταματάει μόλις βρει το στοιχείο. Το δεύτερο είναι η μη χρήση της λογικής μεταβλητής.

Στο θέμα της Για η πάγια θέση μου είναι ότι θα έπρεπε να κόβουμε βαθμούς όταν γίνονται εμφανώς περιττές επαναλήψεις. Είναι εμφανές ότι ο μαθητής αποφεύγει να χρησιμοποιήσει την Όσο. Κάνει λάθος επιλογή στη δομής επανάληψης. Βέβαια με βάση τα δεδομένα δεν τίθεται θέμα απώλειας βαθμών. Βαθμολογείται η ορθότητα (αν και κατά τη γνώμη μου θα έπρεπε να μετράει και η ποιότητα). Υπάρχουν μάλιστα και πολύ χειρότερα, δηλαδή αλγόριθμοι που αλλάζουν την τάξη.

Για μια αναλυτική συζήτηση στο παραπάνω θέμα υπάρχει το παρακάτω θέμα:
https://alkisg.mysch.gr/steki/index.php?topic=988.0

Τώρα το δεύτερο θέμα δηλαδή στη χρήση θέσης και όχι λογικής μεταβλητής.

Θεωρώ θαυμάσια τη λύση για πολλούς λόγους. Να μερικοί:

Όπου δεν υπάρχουν λογικές μεταβλητές η δουλειά γίνεται με ακεραίους. Πχ 0 για ψευδής και 1 για αληθής. Το βασικό concept είναι ότι αν συμβεί κάτι (συνθήκη αν) τότε αλλάζει κάτι για να το καταλάβουμε στον επόμενο έλεγχο επανάληψης, είτε είναι μετάβαση από ψευδής σε αληθής είτε 0 σε ένα είτε οτιδήποτε.

Επίσης η συγκεκριμένη έκδοση με τη θέση δίνει περισσότερη πληροφορία. Όχι μόνο αν υπάρχει κάτι αλλά και που υπάρχει.

Επίσης αν θέλουμε να φτιάξουμε συνάρτηση αναζήτησης σίγουρα θα το κάνουμε με τη θέση αφού θέλουμε η συνάρτησή μας να είναι γενικής χρήσεως και όχι να εφαρμόζεται μόνο σε προβλήματα που θέλουμε  να μάθουμε αν υπάρχει κάτι ή όχι. Αν το κάνεις με τη θέση, έχεις μια συνάρτηση γενικής χρήσεως που τη βάζεις σε βιβλιοθήκη. Η γενικότητα της χρήσης είναι μια από τις πολύ βασικές αρχές κατασκευής υποπρογραμμάτων. 

Τέλος η χρήση ακεραίων αντί για λογικές τιμές μπορεί να κάνει κάτι που δεν το κάνει η μια λογική τιμή: Όταν κάνεις αναζήτηση σε ταξινομημένο και θέλεις να σταματήσεις μόλις περάσεις τη θέση και δε βρεις το στοιχείο, τότε γίνεται εύκολα με ακεραίους. Πχ αρχικά έχεις τιμή 0 που σημαίνει «Δεν έχει βρεθεί». 1 σημαίνει «βρέθηκε» και 2 σημαίνει «πέρασε». Έτσι μπορείς να καταλάβεις για πιο λόγο σταμάτησε η επανάληψη.

Με 2 λόγια μια αναζήτηση με Όσο και εύρεση θέσης είναι η καλύτερη λύση.

alex599

Πέρυσι φοίτησα και εγώ στην Γ λυκείου και ένας κώδικας όπως ο παρακάτω δεν ήταν αποδεκτός:

διάβασε κλειδι
Για Ι από 1 μέχρι Ν
    Αν πίνακας[Ι]=κλειδί τότε
        θέση<-Ι
        Ι<-Ν+1      !βίαιη έξοδος από το βρόχο.
    τέλος_αν
τέλος_επανάληψης
.....

Σε εφαρμογή όμως ο κώδικας "τρέχει" μια χαρά οπότε η αναζήτηση μπορεί να γίνει και με χρήση της για όπως γίνεται και στην όσο.
Γιατί όμως θεωρείται λάθος?Αν κάποιος μαθητής το έγραφε αυτό θα ήταν λάθος/

andreas_p


evry

Νομίζω ότι το καλύτερο θα ήταν να το πας στον καθηγητή που σου είπε ότι είναι λάθος και να του ζητήσεις
να σου εξηγήσει ποιο είναι το λάθος. Είναι λογικό, συντακτικό ή παραβιάζει κάποιο κριτήριο αλγορίθμου?
Απαντήσεις του στυλ "επειδή το λέει το βιβλίο" δεν είναι αποδεκτές γιατί και εσύ μπορείς να απαντήσεις με ίδιου τύπου επιχείρημα
"επειδή το λέω εγώ".

Παράθεση από: alex599 στις 16 Δεκ 2008, 07:29:39 ΜΜ
Πέρυσι φοίτησα και εγώ στην Γ λυκείου και ένας κώδικας όπως ο παρακάτω δεν ήταν αποδεκτός:

διάβασε κλειδι
Για Ι από 1 μέχρι Ν
    Αν πίνακας[Ι]=κλειδί τότε
        θέση<-Ι
        Ι<-Ν+1      !βίαιη έξοδος από το βρόχο.
    τέλος_αν
τέλος_επανάληψης
.....

Σε εφαρμογή όμως ο κώδικας "τρέχει" μια χαρά οπότε η αναζήτηση μπορεί να γίνει και με χρήση της για όπως γίνεται και στην όσο.
Γιατί όμως θεωρείται λάθος?Αν κάποιος μαθητής το έγραφε αυτό θα ήταν λάθος/
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

P.Tsiotakis


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

Σούλας Βασίλης

Να δώσω λίγο τροφή για συζήτηση; Στα θέματα των Πανελληνίων στο τέλος αναφέρονται οδηγίες προς εξεταζομένους. Μια οδηγία λοιπόν λέει:

Κάθε απάντηση επιστημονικά τεκμηριωμένη είναι αποδεκτή.  :)

Σούλας Βασίλης
Ηλεκτρολόγος Μηχανικός & Μηχανικός Η/Υ Δ.Π.Θ.
Καθηγητής Πληροφορικής ΠΕ19
http://users.sch.gr/vasisoulas
http://eclass.sch.gr/modules/auth/opencourses.php?fc=%D4-52

ntzios kostas

Και η παρακάτω Βασίλη θεωρείται σωστή;

Για Ι από 1 μέχρι Ν
    Αν πίνακας[Ι]=κλειδί τότε
        θέση<-Ι
        πήγαινε στο 1
    τέλος_αν
τέλος_επανάληψης
1.

Το μάθημα Ανάπτυξη Εφαρμογών δεν έχει σαν στόχο την εκμάθηση κάποιου συγκεκριμένου προγραμματιστικού περιβάλλοντος ούτε την καλλιέργεια προγραμματιστικών δεξιοτήτων από τη μεριά των μαθητών. Δεν αποσκοπεί στη λεπτομερειακή εξέταση της δομής, του ρεπερτορίου και των συντακτικων κανόνων κάποιας γλώσσας...

Σούλας Βασίλης

Την παρακάτω την θεωρώ πιθανή να την γράψει κάποιος μαθητής.

διάβασε κλειδι
Για Ι από 1 μέχρι Ν
    Αν πίνακας[Ι]=κλειδί τότε
        θέση<-Ι
        Ι<-Ν+1      !βίαιη έξοδος από το βρόχο.
    τέλος_αν
τέλος_επανάληψης

την παρακάτω δεν την θεωρώ πιθανή.

διάβασε κλειδι
Για Ι από 1 μέχρι Ν
    Αν πίνακας[Ι]=κλειδί τότε
        θέση<-Ι
        πήγαινε στο 1
    τέλος_αν
τέλος_επανάληψης
1.

Τώρα αν την θεωρώ σωστή να απαντήσω. Θα συμφωνήσω με τον Παναγιώτη. Σαν προγραμματιστής δεν θα μου άρεσε καθόλου αυτή η λύση και για να σου πω πιο ειλικρινά την θεωρώ κατα κάποιο τρόπο λάθος. Σαν διορθωτής όμως δεν ξέρω αν θα έκοβα. Άλλωστε συμφωνώ και με αυτό που αναφέρεις.
Το μάθημα Ανάπτυξη Εφαρμογών δεν έχει σαν στόχο την εκμάθηση κάποιου συγκεκριμένου προγραμματιστικού περιβάλλοντος ούτε την καλλιέργεια προγραμματιστικών δεξιοτήτων από τη μεριά των μαθητών. Δεν αποσκοπεί στη λεπτομερειακή εξέταση της δομής, του ρεπερτορίου και των συντακτικων κανόνων κάποιας γλώσσας
Σούλας Βασίλης
Ηλεκτρολόγος Μηχανικός & Μηχανικός Η/Υ Δ.Π.Θ.
Καθηγητής Πληροφορικής ΠΕ19
http://users.sch.gr/vasisoulas
http://eclass.sch.gr/modules/auth/opencourses.php?fc=%D4-52

evry

Παράθεση από: Σούλας Βασίλης στις 18 Δεκ 2008, 06:24:39 ΜΜ

διάβασε κλειδι
Για Ι από 1 μέχρι Ν
    Αν πίνακας[Ι]=κλειδί τότε
        θέση<-Ι
        πήγαινε στο 1
    τέλος_αν
τέλος_επανάληψης
1.

Σαν διορθωτής όμως δεν ξέρω αν θα έκοβα. Άλλωστε συμφωνώ και με αυτό που αναφέρεις.
Το μάθημα Ανάπτυξη Εφαρμογών δεν έχει σαν στόχο την εκμάθηση κάποιου συγκεκριμένου προγραμματιστικού περιβάλλοντος ούτε την καλλιέργεια προγραμματιστικών δεξιοτήτων από τη μεριά των μαθητών. Δεν αποσκοπεί στη λεπτομερειακή εξέταση της δομής, του ρεπερτορίου και των συντακτικων κανόνων κάποιας γλώσσας

Όσον αφορά την εντολή πήγαινε τα πράγματα δεν είναι τόσο απλά. Δεν πρόκειται για απλό χαρακτηριστικό κάποιας γλώσσας, ούτε για συντακτικό ούτε για κάτι απλά τεχνικό ή προγραμματιστικό κόλπο. Μιλάμε για μια ολόκληρη φιλοσοφία. Με το σκεπτικό λοιπόν ότι ο μαθητής ξέρει από τη θεωρία ότι δεν χρησιμοποιούμε GOTO και μάλιστα ξέρει και τους λόγους για τους οποίους δεν την χρησιμοποιούμε, γνωρίζει δηλαδή για τις αρχές του δομημένου προγραμματισμού, έχεις ένα καλό επιχείρημα να του κόψεις αν το κρίνεις σωστό.

Προσωπικά δεν θα έκοβα για καμία από τις παραπάνω λύσεις (μπορεί να έβαζα και παραπάνω μάλιστα!!) και εξηγώ το σκεπτικό μου
Για έναν μαθητή ο οποίος θα δώσει μια τις παραπάνω λύσεις δύο πράγματα είναι βέβαια:
1)  Έχει προγραμματίσει σε κάποια γλώσσα προγραμματισμού εκτός από ΓΛΩΣΣΑ, και καταλαβαίνει τι κάνει
2)  Δεν είχε σωστή καθοδήγηση, είτε από το σχολείο είτε από το φροντιστήριο, δηλαδή κανείς δεν του είπε ότι "οκ, αυτά που γράφεις είναι σωστά γενικά στον προγραμματισμό αλλά στο μάθημα αυτό μην τολμήσεις και τα γράψεις στις εξετάσεις"

Και μόνο με τις σκέψεις αυτές δεν θα τολμούσα να κόψω σε καμία περίπτωση. Μόνη εξαίρεση θα ήταν αν με τον τρόπο αυτό "ξεγλιστρούσε" από κάποιο πολύ δύσκολο σημείο της άσκησης, οπότε τότε δεν θα ήταν δίκαιο για τους άλλους μαθητές.
Σε αυτές τις περιπτώσεις κατά τη γνώμη μου δε βαθμολογείς με το γράμμα αλλά με το πνεύμα του "νόμου".
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Σούλας Βασίλης

ΠαράθεσηΠροσωπικά δεν θα έκοβα για καμία από τις παραπάνω λύσεις (μπορεί να έβαζα και παραπάνω μάλιστα!!) και εξηγώ το σκεπτικό μου
Για έναν μαθητή ο οποίος θα δώσει μια τις παραπάνω λύσεις δύο πράγματα είναι βέβαια:
1)  Έχει προγραμματίσει σε κάποια γλώσσα προγραμματισμού εκτός από ΓΛΩΣΣΑ, και καταλαβαίνει τι κάνει
2)  Δεν είχε σωστή καθοδήγηση, είτε από το σχολείο είτε από το φροντιστήριο, δηλαδή κανείς δεν του είπε ότι "οκ, αυτά που γράφεις είναι σωστά γενικά στον προγραμματισμό αλλά στο μάθημα αυτό μην τολμήσεις και τα γράψεις στις εξετάσεις.

Συμφωνώ Ευριπίδη. Ούτε εγώ θα έκοβα. (Παραπάνω δεν θα έβαζα!!!  :laugh:)
Σούλας Βασίλης
Ηλεκτρολόγος Μηχανικός & Μηχανικός Η/Υ Δ.Π.Θ.
Καθηγητής Πληροφορικής ΠΕ19
http://users.sch.gr/vasisoulas
http://eclass.sch.gr/modules/auth/opencourses.php?fc=%D4-52

ntzios kostas

ΠαράθεσηΜόνη εξαίρεση θα ήταν αν με τον τρόπο αυτό "ξεγλιστρούσε" από κάποιο πολύ δύσκολο σημείο της άσκησης, οπότε τότε δεν θα ήταν δίκαιο για τους άλλους μαθητές.
Αυτό ακριβώς πιστεύω ότι κάνει σε περίπτωση που η εκφώνηση αναφέρει να τερματίζει αν βρεθεί το στοιχείο, ξεγλιστράει, οπότε προσωπικά θα του έκοβα. Αν όμως η εκφώνηση δεν διευκρίνιζε να τερματίζει η αναζήτηση αν βρεθεί το στοιχείο, τότε δεν ξέρω τι θα έκανα, μάλλον δεν θα του έκοβα.
Το μάθημα Ανάπτυξη Εφαρμογών δεν έχει σαν στόχο την εκμάθηση κάποιου συγκεκριμένου προγραμματιστικού περιβάλλοντος ούτε την καλλιέργεια προγραμματιστικών δεξιοτήτων από τη μεριά των μαθητών. Δεν αποσκοπεί στη λεπτομερειακή εξέταση της δομής, του ρεπερτορίου και των συντακτικων κανόνων κάποιας γλώσσας...

Σούλας Βασίλης

Παράθεσηδιάβασε κλειδι
Για Ι από 1 μέχρι Ν
    Αν πίνακας[Ι]=κλειδί τότε
        θέση<-Ι
        Ι<-Ν+1      !βίαιη έξοδος από το βρόχο.
    τέλος_αν
τέλος_επανάληψης

-----------------------

διάβασε κλειδι
Για Ι από 1 μέχρι Ν
    Αν πίνακας[Ι]=κλειδί τότε
        θέση<-Ι
        πήγαινε στο 1
    τέλος_αν
τέλος_επανάληψης
1.

Συμφωνούμε τότε. Άλλωστε και στις 2 παραπάνω τερματίζει όταν το βρει.
Σούλας Βασίλης
Ηλεκτρολόγος Μηχανικός & Μηχανικός Η/Υ Δ.Π.Θ.
Καθηγητής Πληροφορικής ΠΕ19
http://users.sch.gr/vasisoulas
http://eclass.sch.gr/modules/auth/opencourses.php?fc=%D4-52

summer

#21
Μου φαίνεται μια χαρά,εξάλλου ο συγκεκριμένος αλγόριθμος είναι πιο γενικός μια και αν δεν διευκρινίζεται ότι το Key είναι σε μια μόνο θέση(όπως συνήθως), ο άλλος είναι λάθος.Εγώ έχω βάλει τα παιδιά να γράψουν δίπλα στο βιβλίο και αυτή την περίπτωση και τους έχω πει να την εφαρμόζουν όταν δε λέει ξεκάθαρα ότι το Key είναι σε μια μόνο θέση.

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


j<--1
pos<--0
οσο j<=n και Pos=0 επανέλαβε 
    Αν Α[j]=key τότε
        pos<--j
    Τέλος_Αν
j<--j+1
Τέλος επανάληψης

Αν pos=0 τότε Εμφάνισε 'Δε βρέθηκε το key'
αλλιώς Εμφάνισε 'Βρέθηκε το key στη θέση',Pos


τι λετε;

Laertis

Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

P.Tsiotakis

Σωστό, απλά με τον αλγόριθμο αναδεικνύεται η χρήση των λογικών μεταβλητών ως διακοπτών στους αλγορίθμους.
Χρησιμοποιούνται και σε έναν αλγόριθμο οι λογικές μεταβλητές !!

Νίκος Αδαμόπουλος

Κι εγώ ψηφίζω υπέρ των λογικών μεταβλητών χωρίς να θεωρώ λάθος τη λύση:

Παράθεση από: tina28 στις 05 Φεβ 2009, 02:17:40 ΜΜ
j<--1
pos<--0
οσο j<=n και Pos=0 επανέλαβε 
    Αν Α[j]=key τότε
        pos<--j
    Τέλος_Αν
j<--j+1
Τέλος επανάληψης

Αν pos=0 τότε Εμφάνισε 'Δε βρέθηκε το key'
αλλιώς Εμφάνισε 'Βρέθηκε το key στη θέση',Pos

Γενικότερα, η δικιά μου άποψη επί του θέματος:
http://dide.ilei.sch.gr/keplinet/education/aepp_search.php

agelos

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

evry

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

Τώρα αν κατάλαβα καλά από αυτά που λες αν σε έναν μαθητή του "κόβει" εσύ τον "κόβεις" έτσι?

Παράθεση από: agelos στις 13 Φεβ 2009, 11:37:23 ΠΜ
Καλημέρα σας.
Προσωπικά αν διόρθωνα στις πανελλήνιες δεν θα έκοβα μονάδες για την αναζήτηση με ΓΙΑ διότι δεν μας ενδιαφέρει,σύμφωνα με το υπουργείο,η αποδοτικότητα του αλγορίθμου.Όμως στην τάξη,αν κάποιος μαθητής την κάνει με για,του κόβω μονάδες.Διότι αφού έχει διδαχθεί η αναζήτηση με συγκεκριμένο τρόπο και ο μαθητής την κάνει με άλλον σημαίνει είτε ότι δεν έχει διαβάσει και απλά του κόβει,είτε ότι κάνει εξυπνάδες.Και οι δύο περιπτώσεις έχουν μεγάλη πιθανότητα να του στοιχίσουν στις πανελλήνιες και γι αυτό του κόβω κανα δυό μονάδες.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Νίκος Αδαμόπουλος

#27
Μετά από μια μικρή περιήγηση στα διάφορα θέματα του forum πιστεύω πως στην ίδια κατηγορία προβληματισμού με το "Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι" υπάγεται και το:

- Περιττές συνθήκες και βαθμολόγηση (αναφέρεται στην Εντολή ΑΝ) (https://alkisg.mysch.gr/steki/index.php?topic=1199.msg7936#msg7936)

- Εγώ θα πρόσθετα και το (δεν ξέρω, έχει ξανασυζητηθεί; ) :

max <-A[1]
Για ι από 1 μέχρι 20
   Αν Α[ι]>max τότε max <- Α[ι]
Τέλος_επανάληψης

Θα κόβατε επειδή ξεκινάει από 1 και όχι από 2;

- Ή ακόμα και το:

max <-A[1]
Για i από 2 μέχρι 20
   Αν Α[ι]>=max τότε max <- Α[ι]
Τέλος_επανάληψης

Θα κόβατε επειδή έχει και το = στη συνθήκη;

Εγώ για όλα αυτά πιθανώς να έκοβα ελαφρώς κάτι βλέποντας όμως και τη συνολικότερη εικόνα του γραπτού...

evry

Η λύση που πρότεινε η μαθήτρια σου είναι κατά τη γνώμη μου καλύτερη από αυτή που χρησιμοποιούμε λογική μεταβλητή, αφού με το pos όπως πολύ σωστά σου είπε η λογική μεταβλητή δεν έχει λόγο ύπαρξης.
Επίσης η μαθήτρια σου χρησιμοποιεί λογική μεταβλητή. Είναι το pos το οποίο μπορούμε να το θεωρούμε αληθές όταν είναι pos<>0 και Ψευδές όταν είναι 0.
  Ο σκοπός δεν είναι να χρησιμοποιούμε λογικές μεταβλητές αλλά να δείξουμε στα παιδιά τη φιλοσοφία της μεταβλητής - φρουρού ή σημαίας. Για αυτό δεν χρειάζεται απαραίτητα η λογική μεταβλητή, μια ακέραια μεταβλητή αρκεί.
  Πάντως σχετικά με το γεγονός ότι χρησιμοποιούν στον ίδιο αλγόριθμο και την pos και την done η προσωπική μου γνώμη είναι ότι απλά αντέγραψαν τον αλγόριθμο από κάποιο ξένο βιβλίο και βαρέθηκαν ακόμα και να αλλάξουν τα ονόματα των μεταβλητών.

Παράθεση από: tina28 στις 05 Φεβ 2009, 02:17:40 ΜΜ
Μου φαίνεται μια χαρά,εξάλλου ο συγκεκριμένος αλγόριθμος είναι πιο γενικός μια και αν δεν διευκρινίζεται ότι το Key είναι σε μια μόνο θέση(όπως συνήθως), ο άλλος είναι λάθος.Εγώ έχω βάλει τα παιδιά να γράψουν δίπλα στο βιβλίο και αυτή την περίπτωση και τους έχω πει να την εφαρμόζουν όταν δε λέει ξεκάθαρα ότι το Key είναι σε μια μόνο θέση.

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


j<--1
pos<--0
οσο j<=n και Pos=0 επανέλαβε 
    Αν Α[j]=key τότε
        pos<--j
    Τέλος_Αν
j<--j+1
Τέλος επανάληψης

Αν pos=0 τότε Εμφάνισε 'Δε βρέθηκε το key'
αλλιώς Εμφάνισε 'Βρέθηκε το key στη θέση',Pos


τι λετε;
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

evry

Σε κάτι τέτοιο σίγουρα δεν κόβεις στις πανελλήνιες. Σηκώνει φυσικά κάποια κουβέντα αλλά σίγουρα δε μπορείς να κόψεις.
Επίσης θα διαφωνήσω με το γεγονός ότι τα θέματα αυτά εμπίπτουν στην ίδια κατηγορία. Σε αυτές τις περιπτώσεις θα πρέπει να εξετάζουμε 2 πράγματα
1) Ο αλγόριθμος που δίνεται είναι χειρότερος από αυτόν που ζητάμε? για παράδειγμα δε μπορεί να σου ζητάνε μέγιστο και να ταξινομείς όλον τον πίνακα, ούτε να σου ζητάνε συγχώνευση και να ενώνεις τους 2 πίνακες σε έναν και να τους ταξινομείς (φυσικά θα σου εξηγούν αναλυτικά τον αλγόριθμο)
2) Το "λάθος" του μαθητή δείχνει κάποια παρανόησή του σε κάποια βασική έννοια? Αυτό θα μπορούσαμε να το πούμε για έναν μαθητή που χρησιμοποιεί περιττές συνθήκες σε μια Αλλιώς_Αν

Στο παράδειγμα που δίνεις όπου έχουμε μια παραπάνω σύγκριση δε νομίζω ότι συντρέχει κάτι από τα παραπάνω. Ακόμα και η περίπτωση της παρανόησης δεν είναι σίγουρη.
Επίσης μην ξεχνάμε ότι οι μαθητές γράφουν ένα τρίωρο διαγώνισμα, έχουν άγχος μπορεί να μην προλαβαίνουν κλπ. Λογικό είναι λοιπόν να κάνει ένα λάθος εκ παραδρομής.

Η δουλειά μας λοιπόν σαν βαθμολογητές δεν είναι να μοιράζουμε τυποποιημένα τις μονάδες και να κάνουμε λογαριασμούς σαν μπακάληδες αλλά να προσπαθήσουμε να μπούμε στο πνεύμα του κάθε γραπτού και αν κόψουμε να είμαστε σίγουροι ότι πρόκειται για παρανόηση του μαθητή και όχι για κάποιο λάθος που δικαιολογείται από το άγχος και τη βιασύνη του.

Τώρα στο παράδειγμα που δίνεις όταν σαρώνεις πίνακα, το λάθος είναι μάλλον ανώδυνο αλλά για να δούμε και την περίπτωση που δεν έχουμε πίνακα.

Διάβασε α
max <- α
Για i από 1 μέχρι 20
   Διάβασε α
   Αν α>=max τότε max <- α
Τέλος_επανάληψης

Εδώ ο μαθητής διαβάζει έναν παραπάνω, οπότε κάτι πρέπει να του κόψεις

Στο παρακάτω πιστεύω θα διαφωνούσαν πολλοί αν θα έκοβαν.
Εγώ φυσικά θα έκοβα >:D, αφού λειτουργώ πάντα κατά του μαθητή

Για i από 1 μέχρι 20
   Αν i=1 Τότε
       max <- A[1]
   Αλλιώς
      Αν Α[ι]>=max τότε max <- Α[ι]
   Τέλος_Αν
Τέλος_επανάληψης
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

agelos

Evry καλησπέρα.Δεν του κόβω επειδή του κόβει.Του κόβω επειδή αν δεν διαβάζει όσο και να του κόβει θα κοπεί στις πανελλήνιες.

Νίκος Αδαμόπουλος

Παράθεση από: evry στις 13 Φεβ 2009, 02:21:25 ΜΜ
Επίσης θα διαφωνήσω με το γεγονός ότι τα θέματα αυτά εμπίπτουν στην ίδια κατηγορία. Σε αυτές τις περιπτώσεις θα πρέπει να εξετάζουμε 2 πράγματα
1) Ο αλγόριθμος που δίνεται είναι χειρότερος από αυτόν που ζητάμε? για παράδειγμα δε μπορεί να σου ζητάνε μέγιστο και να ταξινομείς όλον τον πίνακα, ούτε να σου ζητάνε συγχώνευση και να ενώνεις τους 2 πίνακες σε έναν και να τους ταξινομείς (φυσικά θα σου εξηγούν αναλυτικά τον αλγόριθμο)
2) Το "λάθος" του μαθητή δείχνει κάποια παρανόησή του σε κάποια βασική έννοια? Αυτό θα μπορούσαμε να το πούμε για έναν μαθητή που χρησιμοποιεί περιττές συνθήκες σε μια Αλλιώς_Αν

Εγώ αυτά που ανέφερα είπα ότι υπάγονται στην ίδια κατηγορία προβληματισμού με τη "Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι", με την έννοια ότι γίνονται περιττοί έλεγχοι (ένας ή περισσότεροι). Το να σου ζητάνε  μέγιστο και να ταξινομείς όλον τον πίνακα δεν πρόκειται απλώς για περιττούς ελέγχους αλλά για κάτι πολύ περισσότερο (οπότε κατά τη γνώμη μου δεν πρέπει να το συζητάμε καν!).

Από την άλλη είπα για κατηγορία "προβληματισμού" - δεν σημαίνει ότι τα αξιολογώ όλα το ίδιο. Ανέφερα "πιθανώς να έκοβα ελαφρώς κάτι βλέποντας όμως και τη συνολικότερη εικόνα του γραπτού...". Δηλαδή "πιθανώς", όχι στα σίγουρα. Σε ένα πολύ καλό γραπτό το ότι κάποιος έβαλε 1 αντί για 2 δεν είναι σημαντικό για να κόψεις...

:angel: Οπότε σε καμία περίπτωση δεν υποστηρίζω τυποποιημένη και μπακαλίστικη βαθμολόγηση. Αυτό μάλλον ισχύει για την άλλη άποψη, την τελείως ισοπεδωτική που λέει ότι δεν κόβει ποτέ τίποτα από όλα αυτά...


ntzios kostas

ΠαράθεσηΔιάβασε α
max <- α
Για i από 1 μέχρι 20
   Διάβασε α
   Αν α>=max τότε max <- α
Τέλος_επανάληψης

Εδώ ο μαθητής διαβάζει έναν παραπάνω, οπότε κάτι πρέπει να του κόψεις

Δεν νομίζω ότι εδώ θα υπάρξουν πολλοί που θα διαφωνήσουν με αυτή την άποψη. Και αν ναι κακώς. Ο χρήστης πρέπει να δώσει 21 δεδομένα αντί για 20.

ΠαράθεσηΤο να σου ζητάνε  μέγιστο και να ταξινομείς όλον τον πίνακα δεν πρόκειται απλώς για περιττούς ελέγχους αλλά για κάτι πολύ περισσότερο (οπότε κατά τη γνώμη μου δεν πρέπει να το συζητάμε καν!).

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

ΠαράθεσηΟπότε σε καμία περίπτωση δεν υποστηρίζω τυποποιημένη και μπακαλίστικη βαθμολόγηση. Αυτό μάλλον ισχύει για την άλλη άποψη, την τελείως ισοπεδωτική που λέει ότι δεν κόβει ποτέ τίποτα από όλα αυτά...
Μάλλον είναι και η δικιά μου άποψη  :). Μπορεί να είναι τυποποιημένη, αλλά δεν καταλαβαίνω γιατί μπακαλίστικη. Αντίθετα
ΠαράθεσηΕγώ για όλα αυτά πιθανώς να έκοβα ελαφρώς κάτι βλέποντας όμως και τη συνολικότερη εικόνα του γραπτού...
αυτό το θεωρώ κάπως μπακαλίστικη.  :angel:
Το μάθημα Ανάπτυξη Εφαρμογών δεν έχει σαν στόχο την εκμάθηση κάποιου συγκεκριμένου προγραμματιστικού περιβάλλοντος ούτε την καλλιέργεια προγραμματιστικών δεξιοτήτων από τη μεριά των μαθητών. Δεν αποσκοπεί στη λεπτομερειακή εξέταση της δομής, του ρεπερτορίου και των συντακτικων κανόνων κάποιας γλώσσας...

Βρακόπουλος Αθανάσιος Λ.

#33
θα καταθέσω την άποψή μου για τον αλγόριθμο της αναζήτησης
Με δεδομένο ότι αναζητούμε το Key στον πίνακα Α έχουμε τον παρακάτω αλγόριθμο αναζήτησης:

Θέση<--0
Αρχή_ Επανάληψης
   Θέση<--Θέση+1
Μέχρις_ Ότου A[Θέση]= key ή Θέση=Ν
Αν Α[Θέση]= key τότε
     Εμφάνισε 'Βρέθηκε το', key, ' στη θέση', Θέση
Αλλιώς
    Εμφάνισε 'Δε βρέθηκε το', key
Τέλος_ Αν

Χρησιμοποιούμε την δομή Αρχή_ Επανάληψης διότι πρέπει να γίνει σύγκριση του key με τουλάχιστον ένα στοιχείο του πίνακα Α.
Αυτός ο αλγόριθμος είναι ο λιγότερο φλύαρος αλγόριθμος και ο περισσότερο κατανοητός από τους μαθητές.

Αν ο πίνακας είναι ταξινομημένος τότε μπορεί ο παραπάνω αλγόριθμος να τροποποιηθεί στην εντολή
"Μέχρις_ Ότου A[Θέση]>= key ή Θέση=Ν" ή
"Μέχρις_ Ότου A[Θέση]<= key ή Θέση=Ν"

Στην μεταβλητή "Θέση" έχουμε τις πληροφορίες:
α) για το αν το key υπάρχει στον πίνακα
β) και στην περίπτωση που υπάρχει σε ποια θέση

Και προπαντός να έχουμε κατά νου ότι  «Κάθε απάντηση επιστημονικά τεκμηριωμένη είναι αποδεκτή»
Το ίδιο αποτέλεσμα μπορεί να έλθει με πάρα πολλούς  διαφορετικούς τρόπους.
Στις εξετάσεις μας ενδιαφέρει η αποτελεσματικότητα του αλγόριθμου και όχι η πολυπλοκότητα του αλγόριθμου.

Βρακόπουλος Λ. Αθανάσιος
Σχόλια ...

sstergou

Παράθεση από: val στις 14 Φεβ 2009, 12:00:35 ΜΜ
Στις εξετάσεις μας ενδιαφέρει η αποτελεσματικότητα του αλγόριθμου και όχι η πολυπλοκότητα του αλγόριθμου.

Άσχετο αλλά αυτά είναι άμεσα σχετιζόμενα. Ένας αλγόριθμος με εκθετική πολυπλοκότητα μπορεί να μην είναι αποτελεσματικός.

Wizard

Παράθεση από: val στις 14 Φεβ 2009, 12:00:35 ΜΜ
Θέση<--0
Αρχή_ Επανάληψης
   Θέση<--Θέση+1
Μέχρις_ Ότου A[Θέση]= key ή Θέση=Ν
Αν Α[Θέση]= key τότε
     Εμφάνισε 'Βρέθηκε το', key, ' στη θέση', Θέση
Αλλιώς
    Εμφάνισε 'Δε βρέθηκε το', key
Τέλος_ Αν

Aν η μεταβλητή "Θέση" ξεπεράσει το Ν, θα έχεις βγει από τα όρια του πίνακα και ο έλεγχος της έκφρασης A[Θέση]= key θα δημιουργήσει error.

ntzios kostas

Φίλε Wizard ο αλγόριθμος του Θανάση είναι σωστός. Δεν έχει το πρόβλημα που λες, αφου δεν υπάρχει περίπτωση η Θέση να γίνει Ν+1.
Επίσης, ο αλγόριθμος αυτός, όπως όλες οι δομές μέχρις_ότου γίνεται με όσο ως εξής:

Θέση<-1
όσο Θέση<Ν και Α[θέση]<>Key επανάλαβε
       θέση<-Θέση + 1
τέλος_επανάληψης

Αν Α[θέση]=key τότε
...


Παράθεση από: val στις 14 Φεβ 2009, 12:00:35 ΜΜ

Το ίδιο αποτέλεσμα μπορεί να έλθει με πάρα πολλούς  διαφορετικούς τρόπους.
Στις εξετάσεις μας ενδιαφέρει η αποτελεσματικότητα του αλγόριθμου και όχι η πολυπλοκότητα του αλγόριθμου.


Απάντηση από τον Στάθη

Παράθεση από: sstergou στις 14 Φεβ 2009, 01:18:32 ΜΜ
Άσχετο αλλά αυτά είναι άμεσα σχετιζόμενα. Ένας αλγόριθμος με εκθετική πολυπλοκότητα μπορεί να μην είναι αποτελεσματικός.
Καταρχήν πιστεύω να μην χρησιμοποιούμε την λέξη αποτελεσματικότητα, γιατί το μυαλό μας πάει αλλού και θα έχουμε πρόβλημα. Δεύτερον θα συμφωνήσω με το Θανάση, που λογικά ως αποτελεσματικότητα εννοεί να λύνει απλά το πρόβλημα. Φίλε Στάθη σωστό είναι αυτό που λες, αλλά στην ύλη του μάθημά μας δεν υπάρχει η έννοια πολυπλοκότητα, οπότε κάθε απάντηση που λύνει το πρόβλημα ασχέτως και αν η λύση που δίνει κάνει πολύ περισσότερες επαναλήψεις, ασχέτως αν δεσμεύει πολύ περισσότερο μνήμη πρέπει να θεωρηθεί σωστή.

Με εκτίμηση,
Ντζιός Κώστας
Το μάθημα Ανάπτυξη Εφαρμογών δεν έχει σαν στόχο την εκμάθηση κάποιου συγκεκριμένου προγραμματιστικού περιβάλλοντος ούτε την καλλιέργεια προγραμματιστικών δεξιοτήτων από τη μεριά των μαθητών. Δεν αποσκοπεί στη λεπτομερειακή εξέταση της δομής, του ρεπερτορίου και των συντακτικων κανόνων κάποιας γλώσσας...

Wizard

Παράθεση από: ntzios kostas στις 14 Φεβ 2009, 04:41:47 ΜΜ
Φίλε Wizard ο αλγόριθμος του Θανάση είναι σωστός. Δεν έχει το πρόβλημα που λες, αφου δεν υπάρχει περίπτωση η Θέση να γίνει Ν+1.

Ναι, δεν είδα καλά ότι έλεγε Θέση=Ν, σκεφτόμουνα με Θέση>Ν.  ::)

sstergou

Παράθεση από: ntzios kostas στις 14 Φεβ 2009, 04:41:47 ΜΜ
Καταρχήν πιστεύω να μην χρησιμοποιούμε την λέξη αποτελεσματικότητα, γιατί το μυαλό μας πάει αλλού και θα έχουμε πρόβλημα. Δεύτερον θα συμφωνήσω με το Θανάση, που λογικά ως αποτελεσματικότητα εννοεί να λύνει απλά το πρόβλημα. Φίλε Στάθη σωστό είναι αυτό που λες, αλλά στην ύλη του μάθημά μας δεν υπάρχει η έννοια πολυπλοκότητα, οπότε κάθε απάντηση που λύνει το πρόβλημα ασχέτως και αν η λύση που δίνει κάνει πολύ περισσότερες επαναλήψεις, ασχέτως αν δεσμεύει πολύ περισσότερο μνήμη πρέπει να θεωρηθεί σωστή.

Συμφωνώ σε γενικές γραμμές αλλά εγώ μιλάω για την περίπτωση που ένας αλγόριθμος κάνει χρόνια ή και αιώνες να τελειώσει..  Δηλαδή η λύση στο χαρτί να είναι σωστή αλλά πρακτικά να είναι άχρηστη. Ακόμη και αν αυτά τα ζητήματα δεν είναι στην ύλη πιστεύω πρέπει να δώσουμε μια γενική εικόνα στους μαθητές για την έννοια πολυπλοκότητα ίσως χωρίς την χρησιμοποίηση αυτής της λέξης.

Ένα παράδειγμα τέτοιων αλγορίθμων είναι η εξαντλητική δοκιμή όλων των δυνατών συνδυασμών για το σπάσιμο ενός κωδικού. Στο χαρτί είναι ολόσωστοι αλλά πρακτικά μπορεί να χρειάζονται αιώνες για το σπάσιμο ενός δυνατού αλγορίθμου κρυπτογράφησης.

pgrontas

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

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

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

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

Το ίδιο ισχύει και για την εύρεση μεγίστου/ελαχίστου με ταξινόμηση: Αν φανταστείς ότι κάποιος για να βρεί το μικρότερο τα βάζει όλα σε σειρά τότε νομίζω ότι είναι λογικό να αναζητήσεις καλύτερο τρόπο.

Νομίζω λοιπόν ότι πρέπει να κόβονται μονάδες. Τώρα αν θα κοπούν στην συγκεκριμένη άσκηση ή θα κοπούν κάπου αλλού είναι θέμα που εξαρτάται από τις οδηγίες που έχουν δοθεί. Στα αντεπιχειρήματα περί αδικίας, όμως πρέπει να θυμόμαστε ότι πάντα θα υπάρχει και κάποιος που ξέρει τι κάνει. Γιατί να αδικηθεί αυτός;;;



Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

Νίκος Αδαμόπουλος

#40
Παράθεση από: ntzios kostas στις 14 Φεβ 2009, 12:06:50 ΠΜ
Αντίθετα
ΠαράθεσηΕγώ για όλα αυτά πιθανώς να έκοβα ελαφρώς κάτι βλέποντας όμως και τη συνολικότερη εικόνα του γραπτού...
αυτό το θεωρώ κάπως μπακαλίστικη.  :angel:

Τέλος πάντων! Εγώ την έννοια του "μπακαλίστικου" την χρησιμοποίησα όπως ο evry που ανέφερε ότι: "Η δουλειά μας λοιπόν σαν βαθμολογητές δεν είναι να μοιράζουμε τυποποιημένα τις μονάδες και να κάνουμε λογαριασμούς σαν μπακάληδες αλλά να προσπαθήσουμε να μπούμε στο πνεύμα του κάθε γραπτού και αν κόψουμε να είμαστε σίγουροι ότι πρόκειται για παρανόηση του μαθητή και όχι για κάποιο λάθος που δικαιολογείται από το άγχος και τη βιασύνη του." για να δείξω ότι συμφωνώ... Και όχι ότι θα βαθμολογούσα χωρίς να μελετήσω τις απαντήσεις...

Πάντως όπως και να έχει, δεν υπάρχει περίπτωση να γίνει κάτι και να συμφωνήσουν όλοι στο θέμα του πότε κόβεις...  :(

Και ομολογώ ότι συχνά με τους μαθητές όταν βλέπουμε τις διάφορες λύσεις τότε αναφέρουμε και αυτές τις "εναλλακτικές" λύσεις ή/και τις άλλες τις "σχεδόν σωστές". Πολλές φορές τις σκέφτονται και οι ίδιοι και μετά ρωτάνε (ή αναρωτιούνται): "...μα γιατί; Κι αυτό σωστό δεν είναι;". Η σύσταση από τη μεριά μου στο τέλος είναι: "Σωστό είναι, δουλεύει, βγάζει σωστό αποτέλεσμα, ίσως να μην είναι βέβαια και τόσο κομψή λύση..., όμως... το πιο σημαντικό για σας τώρα είναι να μην προκαλέσουμε τον βαθμολογητή ώστε να σας κόψει μονάδες  ;)" !!!!

Με την ευκαιρία: Έχει ποτέ συζητηθεί το ακόμα πιο σοβαρό πρόβλημα "Αν και η λύση είναι σωστή, ωστόσο δεν το καταλαβαίνει ο βαθμολογητής"; :o

ntzios kostas

Παράθεση από: Νίκος Αδαμόπουλος στις 14 Φεβ 2009, 10:57:24 ΜΜ

Με την ευκαιρία: Έχει ποτέ συζητηθεί το ακόμα πιο σοβαρό πρόβλημα "Αν και η λύση είναι σωστή, ωστόσο δεν το καταλαβαίνει ο βαθμολογητής"; :o
Το αποφεύγουμε !!! :) :) :)
Το μάθημα Ανάπτυξη Εφαρμογών δεν έχει σαν στόχο την εκμάθηση κάποιου συγκεκριμένου προγραμματιστικού περιβάλλοντος ούτε την καλλιέργεια προγραμματιστικών δεξιοτήτων από τη μεριά των μαθητών. Δεν αποσκοπεί στη λεπτομερειακή εξέταση της δομής, του ρεπερτορίου και των συντακτικων κανόνων κάποιας γλώσσας...

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

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

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

Θα του έκοβα μονάδες μόνο εάν η εκφώνηση της άσκησης απαιτούσε την διακοπή της αναζήτησης όταν το στοιχείο βρεθεί. Εαν δεν αναφέρει κάτι τέτοιο και απλώς ζητάει να γίνει αναζήτηση δεν κόβω τίποτα.

Αγαπητέ pgrontas  θα σου πω και το εξής παράλογο: αναφέρει ότι ο μαθητής που συνεχίζει την αναζήτηση μπορεί να είναι απρόσεχτος ή να μην καταλαβαίνει τι κάνει. Σκέψου και την εκδοχή να έχει μάθε μόνο αυτόν τον τρόπο αναζήτησης. Ξέρω συναδέρφους που δεν διδάσκουν την σειριακή αναζήτηση με την ΟΣΟ αλλά μόνο με την ΓΙΑ. Όπως αναφέρουν στους μαθητές τους "είναι ένας τρόπος αναζήτησης που δουλεύει παντα" :D

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

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

Νομίζω πως η απάντηση πρέπει να είναι ναι, γιατί ή είναι απρόσεχτος ή το πιθανότερο ότι  δεν καταλαβαίνει τι κάνει. Και τα δύο αυτά κοστίζουν.
_________________________________________

Θα του έκοβα μονάδες μόνο εάν η εκφώνηση της άσκησης απαιτούσε την διακοπή της αναζήτησης όταν το στοιχείο βρεθεί. Εαν δεν αναφέρει κάτι τέτοιο και απλώς ζητάει να γίνει αναζήτηση δεν κόβω τίποτα.

Αγαπητέ pgrontas  θα σου πω και το εξής παράλογο: αναφέρεις ότι ο μαθητής που συνεχίζει την αναζήτηση μπορεί να είναι απρόσεχτος ή να μην καταλαβαίνει τι κάνει. Σκέψου και την εκδοχή να έχει μάθε μόνο αυτόν τον τρόπο αναζήτησης. Ξέρω συναδέρφους που δεν διδάσκουν την σειριακή αναζήτηση με την ΟΣΟ αλλά μόνο με την ΓΙΑ. Όπως αναφέρουν στους μαθητές τους "είναι ένας τρόπος αναζήτησης που δουλεύει παντα" :D
[/quote]