Αποστολέας Θέμα: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι  (Αναγνώστηκε 13854 φορές)

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3135
  • to Iterate is human to Recurse divine
  Λοιπόν έπεσα σε ένα θέμα στο όποιο έλεγε "να βρείτε το επώνυμο του ... με τον αλγόριθμο της σειριακής αναζήτησης"
Ο αλγόριθμος της σειριακής αναζήτησης περιγράφεται στο βιβλίο με χρήση της Όσο και με λογική μεταβλητή έτσι ώστε να σταματάει
όταν βρει αυτό που ψάχνουμε. Ωστόσο αφού στο μάθημα δεν παίζει ρόλο η απόδοση του αλγορίθμου αν κάποιος μαθητής απάντούσε με τον παρακάτω αλγόριθμο θα σκεφτόσασταν να του κόψετε κάτι?
(Θα ήθελα να δω στατιστικά αν υπάρχει κανείς που δεν θα του άρεσε η παρακάτω λύση)

Κώδικας: Text
  1. θέση <- 0
  2. Για i από 1 μέχρι Ν
  3.    Αν table[i] = key τότε
  4.        θέση <- i
  5.    Τέλος_Αν
  6. Τέλος_Επανάληψης
  7. Αν θέση = 0  τότε
  8.    Εμφάνισε 'Δεν υπάρχει'
  9. Αλλιώς
  10.    Εμφάνισε 'Βρέθηκε στη θέση', θέση
  11. Τέλος_Αν
  12.  

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

Παναγιώτης Τσιωτάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3170
  • I love you 3000
    • Panagiotis Tsiotakis
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #1 στις: 12 Δεκ 2008, 08:14:52 μμ »
εμένα δε θα μου άρεσε αυτή η λύση (όπως φαντάζομαι και στους περισσότερους), ωστόσο θεωρώ οτι δε θα κοπούν μονάδες σε μια τέτοια επίλυση ...

vistrian

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 175
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #2 στις: 12 Δεκ 2008, 11:00:10 μμ »
Εφόσον και ο αλγόριθμος αυτός επιτυγχάνει το σκοπό του, τότε θα τον δεχόμουν και δεν θα τον έπαιρνα ως λάθος.
VR in Computing

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

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1087
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #3 στις: 13 Δεκ 2008, 12:34:49 πμ »
Είναι ο πιο βολικός αλγόριθμος για έναν μαθητή(σκεπτόμενος σαν μαθητής το εκφράζω αυτό) για να πραγματοποιήσει σειριακή  αναζήτηση χωρίς να μπλέξει με λογικές μεταβλητές.

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

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

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



nikosx

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 360
  • ___
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #4 στις: 13 Δεκ 2008, 10:34:42 πμ »
δύσκολο να κόψει κάποιος μονάδες για αυτή τη λύση (πάντως πιστεύω ότι δεν είναι και απίθανο κάποια στιγμή να υπάρξει σε άσκηση στις πανελλήνιες σημείωση που να αναφέρει ότι όταν βρει το όνομα η επανάληψη πρέπει να τερματίζεται)
Νίκος Ξένος
nkxenos@yahoo.gr

papet

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 48
    • Σεληνιακό Πάρκο - Σκέψεις και Ημέρες
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #5 στις: 13 Δεκ 2008, 08:45:05 μμ »
Ούτε κι εγώ πιστεύω ότι θα έκοβε κανείς εύκολα μονάδες... Παρ' όλα αυτά, εκτός του ότι δε μου αρέσει λόγω απόδοσης, πιστεύω ότι και ως σκέψη δεν είναι η ορθότερη. Θεωρητικά, η αναζήτηση γίνεται με σκοπό να βρεθεί ένα στοιχείο μια φορά (το πολύ). Στην υποθετική περίπτωση που ο αντικειμενικός σκοπός έχει επιτευχθεί, τότε οποιαδήποτε επιπλέον ενέργεια είναι όχι απλώς περιττή, αλλά άσκοπη. Φανταστείτε, για παράδειγμα, ότι ψάχνετε ένα βιβλίο στο σπίτι σας... Το αν ο τρόπος που το ψάχνετε (μεθοδικά, π.χ. δωμάτιο-δωμάτιο, ή στην τύχη) είναι αποδοτικός, δεν είναι κάτι που μας απασχολεί... Το να συνεχίσετε όμως να ψάχνετε και στο υπόλοιπο σπίτι, από τη στιγμή που το βιβλιο έχει βρεθεί, δεν ξέρω πόσο... "λογικό" μπορεί να χαρακτηριστεί.
Αντιλαμβανόμενος πως αυτό που ανέφερα είναι κάπως τραβηγμένο.... δεν ξέρω αν το παράδειγμα είναι λανθασμένο ή απλώς μη αποδοτικό...
Όσες φορές πάντως μου έτυχε κάτι αντίστοιχο δεν έκοψα τίποτα, πρότεινα όμως στους μαθητές να μη χρησιμοποιούν αυτή τη λύση για πίνακες με μοναδικές εγγραφές.
May the Force b with u...
papet

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2206
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #6 στις: 13 Δεκ 2008, 09:53:02 μμ »
Να ρωτήσω κάτι απλό
Μέσα στο σκεπτικό του αλγορίθμου σειριακής αναζήτησης δεν είναι και ότι θα σταματάει όταν βρεθεί στοιχείο με την ζητούμενη τιμή;
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

andreas_p

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1014
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #7 στις: 13 Δεκ 2008, 10:19:21 μμ »
Προφανώς.

Παράδειγμα . 

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

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

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3135
  • to Iterate is human to Recurse divine
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #8 στις: 14 Δεκ 2008, 07:45:03 μμ »

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

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2448
  • I 'm not young enough to know everything
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #9 στις: 15 Δεκ 2008, 09:05:01 πμ »
Υπάρχουν 2 θέματα. Το πρώτο είναι η χρήση της «Για» που πάει μέχρι το τέλος και δεν σταματάει μόλις βρει το στοιχείο. Το δεύτερο είναι η μη χρήση της λογικής μεταβλητής.

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

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

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

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

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

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

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

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

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

alex599

  • Νέος
  • *
  • Μηνύματα: 5
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #10 στις: 16 Δεκ 2008, 07:29:39 μμ »
Πέρυσι φοίτησα και εγώ στην Γ λυκείου και ένας κώδικας όπως ο παρακάτω δεν ήταν αποδεκτός:

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

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

andreas_p

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1014
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #11 στις: 17 Δεκ 2008, 01:04:53 μμ »
Ψάξε το ΤΜ.

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3135
  • to Iterate is human to Recurse divine
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #12 στις: 17 Δεκ 2008, 08:43:00 μμ »
Νομίζω ότι το καλύτερο θα ήταν να το πας στον καθηγητή που σου είπε ότι είναι λάθος και να του ζητήσεις
να σου εξηγήσει ποιο είναι το λάθος. Είναι λογικό, συντακτικό ή παραβιάζει κάποιο κριτήριο αλγορίθμου?
Απαντήσεις του στυλ "επειδή το λέει το βιβλίο" δεν είναι αποδεκτές γιατί και εσύ μπορείς να απαντήσεις με ίδιου τύπου επιχείρημα
"επειδή το λέω εγώ".

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

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

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

Παναγιώτης Τσιωτάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3170
  • I love you 3000
    • Panagiotis Tsiotakis
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #13 στις: 17 Δεκ 2008, 09:42:19 μμ »

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

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

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 305
    • Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #14 στις: 17 Δεκ 2008, 11:10:58 μμ »
Να δώσω λίγο τροφή για συζήτηση; Στα θέματα των Πανελληνίων στο τέλος αναφέρονται οδηγίες προς εξεταζομένους. Μια οδηγία λοιπόν λέει:

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

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

ntzios kostas

  • Καθηγητής Πληροφορικής
  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 599
    • Ανάπτυξη Εφαρμογών
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #15 στις: 18 Δεκ 2008, 03:19:56 μμ »
Και η παρακάτω Βασίλη θεωρείται σωστή;

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

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

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

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 305
    • Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #16 στις: 18 Δεκ 2008, 06:24:39 μμ »
Την παρακάτω την θεωρώ πιθανή να την γράψει κάποιος μαθητής.

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

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

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

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

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3135
  • to Iterate is human to Recurse divine
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #17 στις: 18 Δεκ 2008, 08:12:14 μμ »

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

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

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

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

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

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

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 305
    • Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #18 στις: 18 Δεκ 2008, 08:42:27 μμ »
Παράθεση
Προσωπικά δεν θα έκοβα για καμία από τις παραπάνω λύσεις (μπορεί να έβαζα και παραπάνω μάλιστα!!) και εξηγώ το σκεπτικό μου
Για έναν μαθητή ο οποίος θα δώσει μια τις παραπάνω λύσεις δύο πράγματα είναι βέβαια:
1)  Έχει προγραμματίσει σε κάποια γλώσσα προγραμματισμού εκτός από ΓΛΩΣΣΑ, και καταλαβαίνει τι κάνει
2)  Δεν είχε σωστή καθοδήγηση, είτε από το σχολείο είτε από το φροντιστήριο, δηλαδή κανείς δεν του είπε ότι "οκ, αυτά που γράφεις είναι σωστά γενικά στον προγραμματισμό αλλά στο μάθημα αυτό μην τολμήσεις και τα γράψεις στις εξετάσεις.

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

ntzios kostas

  • Καθηγητής Πληροφορικής
  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 599
    • Ανάπτυξη Εφαρμογών
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #19 στις: 18 Δεκ 2008, 09:00:56 μμ »
Παράθεση
Μόνη εξαίρεση θα ήταν αν με τον τρόπο αυτό "ξεγλιστρούσε" από κάποιο πολύ δύσκολο σημείο της άσκησης, οπότε τότε δεν θα ήταν δίκαιο για τους άλλους μαθητές.
Αυτό ακριβώς πιστεύω ότι κάνει σε περίπτωση που η εκφώνηση αναφέρει να τερματίζει αν βρεθεί το στοιχείο, ξεγλιστράει, οπότε προσωπικά θα του έκοβα. Αν όμως η εκφώνηση δεν διευκρίνιζε να τερματίζει η αναζήτηση αν βρεθεί το στοιχείο, τότε δεν ξέρω τι θα έκανα, μάλλον δεν θα του έκοβα.
Το μάθημα Ανάπτυξη Εφαρμογών δεν έχει σαν στόχο την εκμάθηση κάποιου συγκεκριμένου προγραμματιστικού περιβάλλοντος ούτε την καλλιέργεια προγραμματιστικών δεξιοτήτων από τη μεριά των μαθητών. Δεν αποσκοπεί στη λεπτομερειακή εξέταση της δομής, του ρεπερτορίου και των συντακτικων κανόνων κάποιας γλώσσας...

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

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 305
    • Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #20 στις: 18 Δεκ 2008, 09:23:51 μμ »
Παράθεση
διάβασε κλειδι
Για Ι από 1 μέχρι Ν
    Αν πίνακας[Ι]=κλειδί τότε
        θέση<-Ι
        Ι<-Ν+1      !βίαιη έξοδος από το βρόχο.
    τέλος_αν
τέλος_επανάληψης

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

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

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

summer

  • Θαμώνας
  • ***
  • Μηνύματα: 31
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #21 στις: 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


τι λετε;
« Τελευταία τροποποίηση: 05 Φεβ 2009, 02:32:23 μμ από tina28 »

Laertis

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 1465
  • Δεν αντέχω την (συμ)-πίεσηηη .......
    • ΑΣΚΗΣΕΙΣ-ΘΕΜΑΤΑ ΑΕΠΠ
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #22 στις: 05 Φεβ 2009, 02:56:49 μμ »
Αυτονόητα σωστό  :)
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

Παναγιώτης Τσιωτάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3170
  • I love you 3000
    • Panagiotis Tsiotakis
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #23 στις: 05 Φεβ 2009, 06:47:47 μμ »
Σωστό, απλά με τον αλγόριθμο αναδεικνύεται η χρήση των λογικών μεταβλητών ως διακοπτών στους αλγορίθμους.
Χρησιμοποιούνται και σε έναν αλγόριθμο οι λογικές μεταβλητές !!

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

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2777
  • Πύργος Ηλείας
    • ΚΕΠΛΗΝΕΤ Ηλείας
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #24 στις: 12 Φεβ 2009, 07:49:30 μμ »
Κι εγώ ψηφίζω υπέρ των λογικών μεταβλητών χωρίς να θεωρώ λάθος τη λύση:

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

  • Βετεράνος
  • ****
  • Μηνύματα: 57
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #25 στις: 13 Φεβ 2009, 11:37:23 πμ »
Καλημέρα σας.
Προσωπικά αν διόρθωνα στις πανελλήνιες δεν θα έκοβα μονάδες για την αναζήτηση με ΓΙΑ διότι δεν μας ενδιαφέρει,σύμφωνα με το υπουργείο,η αποδοτικότητα του αλγορίθμου.Όμως στην τάξη,αν κάποιος μαθητής την κάνει με για,του κόβω μονάδες.Διότι αφού έχει διδαχθεί η αναζήτηση με συγκεκριμένο τρόπο και ο μαθητής την κάνει με άλλον σημαίνει είτε ότι δεν έχει διαβάσει και απλά του κόβει,είτε ότι κάνει εξυπνάδες.Και οι δύο περιπτώσεις έχουν μεγάλη πιθανότητα να του στοιχίσουν στις πανελλήνιες και γι αυτό του κόβω κανα δυό μονάδες.

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3135
  • to Iterate is human to Recurse divine
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #26 στις: 13 Φεβ 2009, 01:15:51 μμ »
Καταρχήν όσον αφορά την απόδοση δεν υπάρχει μεγάλη διαφορά, οι αλγόριθμοι έχουν την ίδια πολυπλοκότητα, απλά ο ένας έχει καλύτερη μέση πολυπλοκότητα. Άρα από θέμα απόδοσης δεν τίθεται κανένα θέμα.

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

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

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

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2777
  • Πύργος Ηλείας
    • ΚΕΠΛΗΝΕΤ Ηλείας
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #27 στις: 13 Φεβ 2009, 01:48:43 μμ »
Μετά από μια μικρή περιήγηση στα διάφορα θέματα του forum πιστεύω πως στην ίδια κατηγορία προβληματισμού με το "Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι" υπάγεται και το:

- Περιττές συνθήκες και βαθμολόγηση (αναφέρεται στην Εντολή ΑΝ) (http://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 <- Α[ι]
Τέλος_επανάληψης

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

Εγώ για όλα αυτά πιθανώς να έκοβα ελαφρώς κάτι βλέποντας όμως και τη συνολικότερη εικόνα του γραπτού...
« Τελευταία τροποποίηση: 13 Φεβ 2009, 02:01:43 μμ από Νίκος Αδαμόπουλος »

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3135
  • to Iterate is human to Recurse divine
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #28 στις: 13 Φεβ 2009, 01:49:06 μμ »
Η λύση που πρότεινε η μαθήτρια σου είναι κατά τη γνώμη μου καλύτερη από αυτή που χρησιμοποιούμε λογική μεταβλητή, αφού με το pos όπως πολύ σωστά σου είπε η λογική μεταβλητή δεν έχει λόγο ύπαρξης.
Επίσης η μαθήτρια σου χρησιμοποιεί λογική μεταβλητή. Είναι το pos το οποίο μπορούμε να το θεωρούμε αληθές όταν είναι pos<>0 και Ψευδές όταν είναι 0.
  Ο σκοπός δεν είναι να χρησιμοποιούμε λογικές μεταβλητές αλλά να δείξουμε στα παιδιά τη φιλοσοφία της μεταβλητής - φρουρού ή σημαίας. Για αυτό δεν χρειάζεται απαραίτητα η λογική μεταβλητή, μια ακέραια μεταβλητή αρκεί.
  Πάντως σχετικά με το γεγονός ότι χρησιμοποιούν στον ίδιο αλγόριθμο και την pos και την done η προσωπική μου γνώμη είναι ότι απλά αντέγραψαν τον αλγόριθμο από κάποιο ξένο βιβλίο και βαρέθηκαν ακόμα και να αλλάξουν τα ονόματα των μεταβλητών.

Μου φαίνεται μια χαρά,εξάλλου ο συγκεκριμένος αλγόριθμος είναι πιο γενικός μια και αν δεν διευκρινίζεται ότι το 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

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3135
  • to Iterate is human to Recurse divine
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #29 στις: 13 Φεβ 2009, 02:21:25 μμ »
Σε κάτι τέτοιο σίγουρα δεν κόβεις στις πανελλήνιες. Σηκώνει φυσικά κάποια κουβέντα αλλά σίγουρα δε μπορείς να κόψεις.
Επίσης θα διαφωνήσω με το γεγονός ότι τα θέματα αυτά εμπίπτουν στην ίδια κατηγορία. Σε αυτές τις περιπτώσεις θα πρέπει να εξετάζουμε 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

  • Βετεράνος
  • ****
  • Μηνύματα: 57
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #30 στις: 13 Φεβ 2009, 04:03:02 μμ »
Evry καλησπέρα.Δεν του κόβω επειδή του κόβει.Του κόβω επειδή αν δεν διαβάζει όσο και να του κόβει θα κοπεί στις πανελλήνιες.

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

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2777
  • Πύργος Ηλείας
    • ΚΕΠΛΗΝΕΤ Ηλείας
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #31 στις: 13 Φεβ 2009, 04:48:27 μμ »
Επίσης θα διαφωνήσω με το γεγονός ότι τα θέματα αυτά εμπίπτουν στην ίδια κατηγορία. Σε αυτές τις περιπτώσεις θα πρέπει να εξετάζουμε 2 πράγματα
1) Ο αλγόριθμος που δίνεται είναι χειρότερος από αυτόν που ζητάμε? για παράδειγμα δε μπορεί να σου ζητάνε μέγιστο και να ταξινομείς όλον τον πίνακα, ούτε να σου ζητάνε συγχώνευση και να ενώνεις τους 2 πίνακες σε έναν και να τους ταξινομείς (φυσικά θα σου εξηγούν αναλυτικά τον αλγόριθμο)
2) Το "λάθος" του μαθητή δείχνει κάποια παρανόησή του σε κάποια βασική έννοια? Αυτό θα μπορούσαμε να το πούμε για έναν μαθητή που χρησιμοποιεί περιττές συνθήκες σε μια Αλλιώς_Αν

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

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

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


ntzios kostas

  • Καθηγητής Πληροφορικής
  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 599
    • Ανάπτυξη Εφαρμογών
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #32 στις: 14 Φεβ 2009, 12:06:50 πμ »
Παράθεση
Διάβασε α
max <- α
Για i από 1 μέχρι 20
   Διάβασε α
   Αν α>=max τότε max <- α
Τέλος_επανάληψης

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

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

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


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

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

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

  • Θαμώνας
  • ***
  • Μηνύματα: 35
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #33 στις: 14 Φεβ 2009, 12:00:35 μμ »
θα καταθέσω την άποψή μου για τον αλγόριθμο της αναζήτησης
Με δεδομένο ότι αναζητούμε το Key στον πίνακα Α έχουμε τον παρακάτω αλγόριθμο αναζήτησης:

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

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

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

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

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

Βρακόπουλος Λ. Αθανάσιος
Σχόλια ...
« Τελευταία τροποποίηση: 14 Φεβ 2009, 12:15:07 μμ από val »

sstergou

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 983
  • Program or be Programmed
    • pseudoglossa.gr
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #34 στις: 14 Φεβ 2009, 01:18:32 μμ »
Στις εξετάσεις μας ενδιαφέρει η αποτελεσματικότητα του αλγόριθμου και όχι η πολυπλοκότητα του αλγόριθμου.

Άσχετο αλλά αυτά είναι άμεσα σχετιζόμενα. Ένας αλγόριθμος με εκθετική πολυπλοκότητα μπορεί να μην είναι αποτελεσματικός.
Στάθης Στέργου - sstergouATgmailDOTcom - http://www.pseudoglossa.gr

Wizard

  • Επισκέπτης
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #35 στις: 14 Φεβ 2009, 04:05:17 μμ »
Θέση<--0
Αρχή_ Επανάληψης
   Θέση<--Θέση+1
Μέχρις_ Ότου A[Θέση]= key ή Θέση=Ν
Αν Α[Θέση]= key τότε
     Εμφάνισε 'Βρέθηκε το', key, ' στη θέση', Θέση
Αλλιώς
    Εμφάνισε 'Δε βρέθηκε το', key
Τέλος_ Αν

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

ntzios kostas

  • Καθηγητής Πληροφορικής
  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 599
    • Ανάπτυξη Εφαρμογών
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #36 στις: 14 Φεβ 2009, 04:41:47 μμ »
Φίλε Wizard ο αλγόριθμος του Θανάση είναι σωστός. Δεν έχει το πρόβλημα που λες, αφου δεν υπάρχει περίπτωση η Θέση να γίνει Ν+1.
Επίσης, ο αλγόριθμος αυτός, όπως όλες οι δομές μέχρις_ότου γίνεται με όσο ως εξής:

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

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



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


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

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

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

Wizard

  • Επισκέπτης
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #37 στις: 14 Φεβ 2009, 05:00:37 μμ »
Φίλε Wizard ο αλγόριθμος του Θανάση είναι σωστός. Δεν έχει το πρόβλημα που λες, αφου δεν υπάρχει περίπτωση η Θέση να γίνει Ν+1.

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

sstergou

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 983
  • Program or be Programmed
    • pseudoglossa.gr
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #38 στις: 14 Φεβ 2009, 05:44:16 μμ »
Καταρχήν πιστεύω να μην χρησιμοποιούμε την λέξη αποτελεσματικότητα, γιατί το μυαλό μας πάει αλλού και θα έχουμε πρόβλημα. Δεύτερον θα συμφωνήσω με το Θανάση, που λογικά ως αποτελεσματικότητα εννοεί να λύνει απλά το πρόβλημα. Φίλε Στάθη σωστό είναι αυτό που λες, αλλά στην ύλη του μάθημά μας δεν υπάρχει η έννοια πολυπλοκότητα, οπότε κάθε απάντηση που λύνει το πρόβλημα ασχέτως και αν η λύση που δίνει κάνει πολύ περισσότερες επαναλήψεις, ασχέτως αν δεσμεύει πολύ περισσότερο μνήμη πρέπει να θεωρηθεί σωστή.

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

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

pgrontas

  • Ομάδα διαγωνισμάτων 2016
  • *
  • Μηνύματα: 1314
  • There are always possibilities...
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #39 στις: 14 Φεβ 2009, 06:41:35 μμ »
Αν και έχω χάσει λίγο την μπάλα στην συζήτηση αυτή, γι αυτό θα πω την άποψη μου στην αρχική ερώτηση που έκανε ο evry. Πρέπει να κοπούν μονάδες σε κάποιον που συνεχίζει την αναζήτηση ενώ έχει βρει το στοιχείο;

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

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

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

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

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



A man provided with paper, pencil, and rubber, and subject to strict discipline is in effect a universal machine - Alan Turing

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

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2777
  • Πύργος Ηλείας
    • ΚΕΠΛΗΝΕΤ Ηλείας
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #40 στις: 14 Φεβ 2009, 10:57:24 μμ »
Αντίθετα
Παράθεση
Εγώ για όλα αυτά πιθανώς να έκοβα ελαφρώς κάτι βλέποντας όμως και τη συνολικότερη εικόνα του γραπτού...
αυτό το θεωρώ κάπως μπακαλίστικη.  :angel:

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

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

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

Με την ευκαιρία: Έχει ποτέ συζητηθεί το ακόμα πιο σοβαρό πρόβλημα "Αν και η λύση είναι σωστή, ωστόσο δεν το καταλαβαίνει ο βαθμολογητής"; :o
« Τελευταία τροποποίηση: 14 Φεβ 2009, 11:07:40 μμ από Νίκος Αδαμόπουλος »

ntzios kostas

  • Καθηγητής Πληροφορικής
  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 599
    • Ανάπτυξη Εφαρμογών
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #41 στις: 15 Φεβ 2009, 01:07:26 πμ »

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

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

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1087
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #42 στις: 16 Φεβ 2009, 01:35:14 πμ »
Αν και έχω χάσει λίγο την μπάλα στην συζήτηση αυτή, γι αυτό θα πω την άποψη μου στην αρχική ερώτηση που έκανε ο evry. Πρέπει να κοπούν μονάδες σε κάποιον που συνεχίζει την αναζήτηση ενώ έχει βρει το στοιχείο;

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

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

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

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1087
Απ: Σειριακή Αναζήτηση με τη δομή Για...από...μέχρι
« Απάντηση #43 στις: 16 Φεβ 2009, 01:36:35 πμ »
____________________________________________
Αν και έχω χάσει λίγο την μπάλα στην συζήτηση αυτή, γι αυτό θα πω την άποψη μου στην αρχική ερώτηση που έκανε ο evry. Πρέπει να κοπούν μονάδες σε κάποιον που συνεχίζει την αναζήτηση ενώ έχει βρει το στοιχείο;

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

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