Αποστολέας Θέμα: Άσκηση String Matching  (Αναγνώστηκε 7708 φορές)

kLee

  • Βετεράνος
  • ****
  • Μηνύματα: 88
  • Is the Singularity near?
Άσκηση String Matching
« στις: 13 Απρ 2007, 09:38:32 μμ »
ʼσκηση που δημοσίευσα στη ΜΑΚΕΔΟΝΙΑ στις 31-03-2007 στη σειρά θεμάτων "Ζήτημα 4ο και κάτι.." που δημοσιεύει το φροντιστήριο ΠΛΑΙΣΙΟ.

Η άσκηση είναι σε ψευδογλώσσα. Έχω όμως και εφαρμογή σε ΓΛΩΣΣΑ.

Θα ήθελα feedback για το συγκεκριμένο θέμα (προφανώς και δεν είναι επιπέδου πανελληνίων, δεν ήταν αυτός ο στόχος μου εξ' άλλου, απλά να μου πείτε αν υπάρχει πιο καλός τρόπος επίλυσης. Εγώ βασίστηκα στον Pretty Naive Algorithm, αλλά ο κώδικάς μου ενδεχομένως να επιδέχεται βελτίωση)...
« Τελευταία τροποποίηση: 17 Απρ 2007, 03:19:30 μμ από alkisg »
Ανδροκλής Πολυμένης

Πληροφορικός

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2448
  • I 'm not young enough to know everything
Απ: Άσκηση String Matching
« Απάντηση #1 στις: 16 Απρ 2007, 10:43:19 πμ »
Το συγκεκριμένο θέμα έχω σκοπό να το κάνω στην τάξη στις προχωρημένες ασκήσεις κεφαλαίου 10. Ουσιαστικά αντιμετωπίζω το ζήτημα τμηματικά.

Τμήμα 1
Φτιάχνω μια συνάρτηση που δέχεται 3 παραμέτρους:
τον πίνακα α[4]
τον πίνακα β[20]
ένα ακέραιο pos που αντιστοιχεί σε μια θέση του πίνακα β

Η συνάρτηση γυρίζει τη λογική τιμή Αληθής αν ο πίνακας α είναι ίσος με τον υποπίνακα β από τη θέση pos και για τις επόμενες 3 θέσεις. Συνολικά δηλαδή ρωτάω αν τα α[1], α[2], α[3], α[4] είναι ίσα με τα β[pos], β[pos+1], β[pos+2], β[pos+3]. Αν είναι ίσα η συνάρτηση γυρίζει τη λογική τιμή ΑΛΗΘΗΣ, αλλιώς γυρίζει ΨΕΥΔΗΣ.

Τμήμα 2

Καλώ τη συνάρτηση για κάθε μια από της 17 θέσεις του πίνακα α που είναι δυνατό να οδηγήσουν σε string matching δηλαδή για pos από 1 μέχρι 17.

Η παραπάνω παραλλαγή βρίσκει όλες τις εμφανίσεις του ενός string μέσα στο άλλο. Αν θέλεις το φτιάχνεις να βρίσκει μόνο της πρώτη εμφάνιση μετατρέποντας την έξω «Για» σε «ΌΣΟ». Δύσκολα κάποιος βρίσκει «Όσο» σε «Όσο». Ενώ με τη συνάρτηση απλοποιείται η σκέψη και το πρόβλημα λύνεται εύκολα.

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

Όπως λέω στους δικούς μου: «Μέχρι σήμερα πηγαίνατε στον πόλεμο με πέτρες και ξύλα. Τώρα παίρνετε στα χέρια σας αληθινό όπλο. Όποιος μάθει να το χειρίζεται θα σκοτώσει εύκολα όλα τα προβλήματα». Η αναλυτική ικανότητα είναι ο κύριος στόχος αυτού του μαθήματος. Κρίμα που κάθε τόσο βλέπουμε θέματα με goto και άλλες τέτοιες βλακείες που στέλνουν το μάθημα 40 χρόνια πίσω.

Πριν από όλα αυτά όμως θέλει μια σημαντική διευκρίνηση: Χρειάζεται προσοχή στην είσοδο των δεδεμένων. Θα πρέπει να αποθηκευτεί στον πίνακα ένας χαρακτήρας σε κάθε κελί. Για σιγουριά θέλει έλεγχο εισόδου που θα επιτρέπει μόνο σκέτους χαρακτήρες που δέχονται πχ το ‘α’ αλλά κόβουν το ‘αα’. Αλλιώς δε θα δουλεύει τίποτα από όσα συζητάμε.

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 4855
    • alkisg@im.sch.gr
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: Άσκηση String Matching
« Απάντηση #2 στις: 16 Απρ 2007, 11:07:52 πμ »
Τελείως εκτός ύλης και πιο "βαθιά" πλέον στην επιστήμη της Πληροφορικής, από τους καλύτερους αλγόριθμους string matching θεωρείται ο Boyer Moore:
http://www-igm.univ-mlv.fr/~lecroq/string/node14.html

Η αρχή λειτουργίας του είναι ότι αν το 2ο string που ζητάμε έχει μήκος π.χ. 10, και δεν το βρούμε στην 1η θέση, τότε δεν το ξαναψάχνουμε στην 2η θέση αλλά πάμε κατευθείαν στην 11η! Αυτό βέβαια απαιτεί και κάποια άλλα πράγματα όπως hashing, γι' αυτό και δεν υπάρχει περίπτωση να το δούμε ποτέ σε σχολικό εγχειρίδιο...

kLee

  • Βετεράνος
  • ****
  • Μηνύματα: 88
  • Is the Singularity near?
Απ: Άσκηση String Matching
« Απάντηση #3 στις: 16 Απρ 2007, 06:20:17 μμ »
Γιώργο τρομερή η τελευταία παρατήρηση - για να πω την αλήθεια δεν το είχα σκεφτεί!!

Στην αρχή ήθελα να δημοσιεύσω το θέμα όπως λες με υποπρογράμματα (και θα πρότεινα να είναι το 4ο θέμα στο διαγώνισμα που ετοιμάζουμε - καιρός ν' αρχίσουμε να δουλεύουμε και τίποτα πιο καινούριο, πρωτότυπο και χρήσιμο και να δώσουμε άλλη ώθηση στο μάθημα), αλλά με ξενέρωνε λίγο το γεγονός ότι λόγω των περιορισμών της ΓΛΩΣΣΑΣ έπρεπε να δίνω fixed μεγέθη στους πίνακες. Οπότε για να δείξω τη γενική ιδέα και για να δημοσιεύσω κ κάτι σε Αλγόριθμο προτίμησα αυτήν την υλοποίηση.

'Αλκη, thanx για το link - αυτόν τον αλγόριθμο τον διαβάζω κάθε φορά κανά δίωρο μέχρι να θυμηθώ τι κάνει!!  :D ;D

Το αντικείμενο πιστεύω ότι αξίζει να το προωθήσουμε, ειδικά με τμηματικό προγ/μό - επίσης και τις συναρτήσεις που όπως αυτή που λέει ο Γιώργος παίρνουν παράμετρο σαν την pos!  >:D
Ανδροκλής Πολυμένης

Πληροφορικός

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 4855
    • alkisg@im.sch.gr
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: Άσκηση String Matching
« Απάντηση #4 στις: 17 Απρ 2007, 12:13:25 πμ »
Δυστυχώς η ΓΛΩΣΣΑ δεν επιτρέπει να πάρουμε το πρώτο γράμμα (Α[1]) ενός αλφαριθμητικού Α (όχι πίνακας αλφαριθμητικών, Α = ένα αλφαριθμητικό). Έτσι για να μπορέσουμε να μιλάμε για ασκήσεις με strings θα χρειαστούν ένα σωρό βοηθητικά υποπρογράμματα... Π.χ. για να κάνουμε έλεγχο δεδομένων αν ο χρήστης έδωσε ένα μόνο γράμμα (όπως έλεγε ο Γιώργος παραπάνω), θέλουμε μια τεράστια επίλεξε με τόσες περιπτώσεις όσα τα διαφορετικά γράμματα! Έτσι θα πρέπει να κάνουμε μια βιβλιοθήκη αρκετών εκατοντάδων γραμμών πριν αποκτήσουμε τα απαραίτητα "όπλα" για ασκήσεις με strings...

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

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

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

Η μαθηματική εκφώνηση είναι σχεδόν το ίδιο απλή με τον κειμενογράφο, και γλυτώνουμε τις αδυναμίες της ΓΛΩΣΣΑΣ στα αλφαριθμητικά.

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

Κατά τα άλλα, για την αξία και τους διδακτικούς στόχους του τμηματικού προγραμματισμού συμφωνώ κι επαυξάνω!

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2448
  • I 'm not young enough to know everything
Απ: Άσκηση String Matching
« Απάντηση #5 στις: 17 Απρ 2007, 10:10:43 πμ »
Τα θέμα των strings με είχε απασχολήσει παλαιότερα στην προσπάθεια να βρω ωραίες επεξεργασίες σε μονοδιάστατους πίνακες με πρακτική εφαρμογή. Ουσιαστικά ο στόχος ήταν να δω αν γίνεται να υλοποιηθούν όλες οι συνηθισμένες συναρτήσεις των strings (πχ length, concatenation, matching) χωρίς να ξεφύγω σε δυσκολία από τα πλαίσια του μαθήματος. Κατέληξα στα εξής:

Θέλεις έλεγχο εισόδου για να ελέγχεις αν κάθε τι που μπαίνει είναι γράμμα. Η επίλεξε είναι η καλύτερη και μπορεί να γίνει συμπαγής αν κάνεις περίπτωση ‘α’,’β’,’γ’   κλπ
Δηλαδή μιλάμε για μια λογική συνάρτηση που θα ελέγχει αν κάποιο σύμβολο είναι σε αυτά που θέλεις να υποστηρίξεις.

Πέρα από αυτό όταν χειρίζεσαι συναρτήσεις σταθερού μήκους δεν έχεις γενικότητα στα υποπρογράμματα και αυτό είναι αρνητικό. Το θέμα με είχε απασχολήσει. Για να έχεις strings χωρίς περιορισμό μήκους πρέπει να έχεις πίνακες μεγαλύτερους και να χρησιμοποιείς ένα μέρος τους. Έτσι θα πρέπει να περνάς σαν παράμετρο στις συναρτήσεις χειρισμού και το πλήθος των χρησιμοποιούμενων στοιχείων. Για το παραπάνω παράδειγμα θα πρέπει να έχεις σαν παραμέτρους τους 2 πίνακες, τα 2 πλήθη χρησιμοποιύμενων στοιχείων και την θέση. Πλατιάζουμε…
Εναλλακτικά μπορείς να ορίσεις χαρακτήρα τερματισμού των strings πχ τον # ή τέλος πάντων κάτι τέτοιο. Αυτή είναι μια καλή λύση που υλοποιείται και στη C αλλά μου φάνηκε ότι αφού δεν υπάρχει κάτι στάνταρ θα ήταν πολύ περιορισμένης χρήσης να όριζα κάτι εγώ αποκλειστικά για τους μαθητές μου.

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

Έτσι παράτησα το θέμα. Σε αυτό έπαιξε ρόλο και το ότι δεν έβλεπα πολύ κόσμο να ενδιαφέρεται για τα strings.

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

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

kLee

  • Βετεράνος
  • ****
  • Μηνύματα: 88
  • Is the Singularity near?
Απ: Άσκηση String Matching
« Απάντηση #6 στις: 17 Απρ 2007, 12:04:54 μμ »
Ωραίο θέμα ανοίξαμε και χαίρομαι που τα συζητάμε αυτά!

Με αριθμούς ʼλκη όντως απλουστεύεται πολύ η κατάσταση και μπορούμε να βρούμε τέτοια θέματα για ασκήσεις. Η επόμενη άσκηση που ετοιμάζω είναι με ΠΡΟΠΟ όπου δεν είναι string match με τη στενή έννοια του όρου, αλλά ελέγχουμε αν 2 μονοδιάστατοι πίνακες είναι ίδιοι, που αποτελεί στην ουσία και την ουσία του string matching. Εκεί νομίζω έχει πολύ ψωμί και είναι και πολύ κοντά στο πνεύμα του μαθήματος.
Ανδροκλής Πολυμένης

Πληροφορικός

lsourtzo

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 131
Απ: Άσκηση String Matching
« Απάντηση #7 στις: 17 Απρ 2007, 01:03:07 μμ »
Χωρίς να θέλω να γίνω εμπαθής … ή ο περίεργος της παρέας …αλλά θέλω να διατυπώσω μία ερώτηση …
Όταν κάποιος από εμάς δημοσιεύει ένα θέμα σε μία εφημερίδα ή σε κάποιο site (που πρόκειται να δουν μαθητές) , ή λύνει μία επαναληπτική άσκηση στο τέλος της χρονιάς …
Ποιος πρέπει να είναι ο στόχος του αλήθεια …
Να κάνει επίδειξη του πόσο δύσκολα θέματα μπορεί να φτιάξει και να λύση … ή να προσπαθήσει να ανακεφαλαιώσει όσο τον δυνατόν καλύτερα όλα όσα ο μαθητής πρέπει να ξέρει πριν πάει να δώσει εξετάσεις … με όσο τον δυνατό κατανοητότερο τρόπο …
Και πάλι λέω .. χωρίς να θέλω να γίνω εμπαθής προς κανέναν …
Όταν ένας μέσος μαθητής έπαιρνε στα χέρια του την εφημερίδα και διάβαζε το θέμα αυτό … τι άποψη θα δημιουργούσε για τον εαυτό του που δεν θα μπορούσε να καταλάβει τίποτα από αυτά … και με τι ψυχολογία θα συνέχιζε 2 μήνες πριν τις εξετάσεις την προετοιμασία …
Πολλές φορές μαθητές μου έχουν φέρει ασκήσεις από τα σχολεία τους όπου κάποιος καθηγητής αποφάσισε να εξασκήσει την διαστροφή του πάνω σε μία εκφώνηση … και πιστέψτε με εκτός από το να αποθαρρύνει ακόμα και καλούς μαθητές να ασχοληθούν με το μάθημα .. ελάχιστα καλά προσφέρει μία τέτοια άσκηση ..
Και για να καταλήξω …
Θεωρώ ότι είναι ένα θαυμάσιο θέμα για κάποια σχολή πληροφορικής … και για άτομα που ασχολούνται ενεργά με το ν προγραμματισμό … αλλά το θεωρώ το λιγότερο ατυχές να το συνδέσουμε με το μάθημα της ανάπτυξης εφαρμογών .. με οποιονδήποτε τρόπο …

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

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2199
Απ: Άσκηση String Matching
« Απάντηση #8 στις: 17 Απρ 2007, 01:31:44 μμ »
Χωρίς να θέλω να γίνω εμπαθής … ή ο περίεργος της παρέας …αλλά θέλω να διατυπώσω μία ερώτηση …
Όταν κάποιος από εμάς δημοσιεύει ένα θέμα σε μία εφημερίδα ή σε κάποιο site (που πρόκειται να δουν μαθητές) , ή λύνει μία επαναληπτική άσκηση στο τέλος της χρονιάς …
Ποιος πρέπει να είναι ο στόχος του αλήθεια …
Να κάνει επίδειξη του πόσο δύσκολα θέματα μπορεί να φτιάξει και να λύση … ή να προσπαθήσει να ανακεφαλαιώσει όσο τον δυνατόν καλύτερα όλα όσα ο μαθητής πρέπει να ξέρει πριν πάει να δώσει εξετάσεις … με όσο τον δυνατό κατανοητότερο τρόπο …
Και πάλι λέω .. χωρίς να θέλω να γίνω εμπαθής προς κανέναν …
Όταν ένας μέσος μαθητής έπαιρνε στα χέρια του την εφημερίδα και διάβαζε το θέμα αυτό … τι άποψη θα δημιουργούσε για τον εαυτό του που δεν θα μπορούσε να καταλάβει τίποτα από αυτά … και με τι ψυχολογία θα συνέχιζε 2 μήνες πριν τις εξετάσεις την προετοιμασία …
Πολλές φορές μαθητές μου έχουν φέρει ασκήσεις από τα σχολεία τους όπου κάποιος καθηγητής αποφάσισε να εξασκήσει την διαστροφή του πάνω σε μία εκφώνηση … και πιστέψτε με εκτός από το να αποθαρρύνει ακόμα και καλούς μαθητές να ασχοληθούν με το μάθημα .. ελάχιστα καλά προσφέρει μία τέτοια άσκηση ..
Και για να καταλήξω …
Θεωρώ ότι είναι ένα θαυμάσιο θέμα για κάποια σχολή πληροφορικής … και για άτομα που ασχολούνται ενεργά με το ν προγραμματισμό … αλλά το θεωρώ το λιγότερο ατυχές να το συνδέσουμε με το μάθημα της ανάπτυξης εφαρμογών .. με οποιονδήποτε τρόπο …

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


Συμφωνώ απόλυτα
Χωρίς να θέλω κι εγώ να προσβάλλω κάποιον
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 4855
    • alkisg@im.sch.gr
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: Άσκηση String Matching
« Απάντηση #9 στις: 17 Απρ 2007, 06:58:38 μμ »
Αυτό όμως που με κόλλησε είναι το ότι δεν μπορείς να εκτυπώσεις ένα string οριζόντια.

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

kLee

  • Βετεράνος
  • ****
  • Μηνύματα: 88
  • Is the Singularity near?
Απ: Άσκηση String Matching
« Απάντηση #10 στις: 19 Απρ 2007, 01:15:38 πμ »
Κατανοητά απόλυτα τα όσα λέτε συνάδελφοι - ο σκοπός μου ΔΕΝ ήταν κατ' ανάγκη να βγάλω προτεινόμενα θέματα!
Δεν πρόκειτε να πέσει κάτι τέτοιο έτσι κι αλλιώς. Ούτε να κάνω επίδειξη γιατί δόξα το Θεό υπάρχουν δεκάδες συνάδελφοι πολύ καλύτεροι προγραμματιστές!
Αλλά μου δόθηκε η ευκαιρία και παρουσίασα πράγματα που ενδιαφέρουν εμένα και τα βρίσκω ωραία - έστω και αισθητικά αν θέλετε- γιατί ο προγ/μός είναι τέχνη.
Και το μεγαλύτερο πρόβλημα που αντιμετωπίζω με τους μαθητές μου είναι ότι είναι αδιάφοροι με το μάθημα! Αν μη τι άλλο με τα θέματα τους ράβηξα την προσοχή. Μπορεί να μην καταλάβανε και πολλά αλλά ήταν από τις λίγες φορές που τα είδα να προβληματίζονται.
Μ' έχει κουράσει ο τρόπος που γίνεται το μάθημα και αντί να βάλω θέματα συμβατικά και αναποτελεσματικά όπως ο ΟΕΦΕ προτίμησα να παίξω και λίγο με το μάθημα!
Χαλαρώστε (με την καλή έννοια) συνάδελφοι - It's more fun to compute!
Αυτό πρέπει να περάσουμε στους μαθητές μας - τη χαρά να μπορούν να φτιάχνουν ωραία πράγματα με κώδικα και όχι να ταλαιπωρούνται με τα ΜΕΣΑ για να φτάσουν στο όλον, όπως καταντήσαμε να ταλαιπωρούνται 1 χρόνο αποστηθίζοντας και μαθαίνοντας μηχανιστικές διαδικασίες!
Καταλαβαίνω απόλυτα βέβαια τι λέτε, τα ίδια λέω κι εγώ, αλλά κάποια στιγμή έπρεπε να δείξουμε επιτέλους και το Out of the Box Thinking.

Και να σας πω κάτι συνάδελφοι? Είδατε μαθητή να σπάει το κεφάλι του και να μη βρίσκει λυση σε πρόβλημα/άσκηση? Ε αυτός είναι ο προγ/μός!!
Αν φτάσουν σε αυτό το σημείο και το παλεύουν τότε έχουν κατακτήσει τα βασικά!

Το string matching τελικά τι είναι? Σειριακή Αναζήτηση εμφάνιση όλων αλλά αντί για ένα στοιχείο έχεις πίνακα!!!

Και από τις 5 συνολικά ασκήσεις που θα δημοσιεύσω η πρώτη (καλλιστεία) ήτανε πανεύκολη και ήθελα απλά να παίξω με την εκφώνηση (και πιστέψτε με τράβηξε το ενδιαφέρον ΟΛΩΝ των μαθητών μου - ακόμα και των πλέον αδιάφορων).

Η μπετονιέρα ξεφεύγει τελείως από τα στάνταρ και αν δε δημοσίευα τη λύση είμαι σίγουρος ότι ένα 70-80% των συναδέλφων δεν θα την έλυναν...ΝΟ COMMENT HERE

Το string matching είναι το κόλλημά μου (BioInformatics) και την έβαλα για την κ@βλ@ μου και τους 5-6 μαθητές nerd και πόσους καθηγητές που θέλανε να δουν κάτι πιο "ακαδημαϊκό".

Το Σάββατο θα βάλω υποπρόγραμμα με θέμα ΠΡΟΠΟ, την οποία θεωρώ πολύ δύσκολο 4ο Θέμα και ενδεχομένως να έχω μια ακόμα όπου θα είμαι εντελώς προκλητικός και θα βάλω θέμα με στεροειδή αναβολικά (αν δε με σκοτώσει το αφεντικό μου!) :P συμβατικότατη κατά πάσα πιθανότητα.

Έπρεπε να καλύψω με 5 θέματα όλα τα επίπεδα - ελπίζω να με καταλάβετε...

Ο προγ/μός θα πρέπει να είναι παιχνίδι! Τα παιδιά το μισούνε το μάθημα κ το θεωρούνε το πλέον βαρετό! Αφήστε τις γ@μ1μ3ν3$ τις Πανελλήνιες και κοιτάξτε να κάνετε τα παιδιά να ενδιαφερθούν για το αντικείμενο. Έχουμε πάρει το ρόλο μας πολύ στα σοβαρά και δεν θα έπρεπε! Feynman και Einstein ήταν μεγάλοι γιατί είχαν χιούμορ! Εμείς τί κάνουμε? Αγχωνόμαστε για το τι θα πέσει φέτος...μιζέρια!

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

Θα είχα πολλά ακόμα να πω, αλλά πρέπει επιτέλους να κοιμηθώ!!  :)

ΥΓ: I'm the operator of my pocket calculator!
Ανδροκλής Πολυμένης

Πληροφορικός

Vangelis

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 786
  • Για ακούτε και κανένα μεγαλύτερο!!!
Απ: Άσκηση String Matching
« Απάντηση #11 στις: 01 Απρ 2008, 10:15:48 πμ »
Όταν ένα θέμα δημοσιεύεται κάτω απο τον τίτλο "4ο θέμα και κάτι" πιστεύει  κανένας  ότι δεν αποτελεί προτεινόμενο θέμα;

nikolasmer

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 539
  • There can be only one...may it be AEPP.
Απ: Άσκηση String Matching
« Απάντηση #12 στις: 29 Δεκ 2013, 07:21:46 μμ »
Πριν από όλα αυτά όμως θέλει μια σημαντική διευκρίνηση: Χρειάζεται προσοχή στην είσοδο των δεδεμένων. Θα πρέπει να αποθηκευτεί στον πίνακα ένας χαρακτήρας σε κάθε κελί. Για σιγουριά θέλει έλεγχο εισόδου που θα επιτρέπει μόνο σκέτους χαρακτήρες που δέχονται πχ το ‘α’ αλλά κόβουν το ‘αα’. Αλλιώς δε θα δουλεύει τίποτα από όσα συζητάμε.
Συνεχίζω να μην καταλαβαίνω πως μπορεί να υλοποιηθεί το παραπάνω. Μήπως θα μπορούσε να βοηθήσει κάποιος;
Απ' τα τσακάλια δεν γλυτώνεις μ'ευχές ή παρακάλια
(Κ. Βάρναλης)

Μερεντίτης Νικόλαος
Καθηγητής Πληροφορικής - Φροντιστής

itt

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 426
  • Real stupidity beats ΑΙ any time
Απ: Άσκηση String Matching
« Απάντηση #13 στις: 30 Δεκ 2013, 04:11:22 πμ »
Συνεχίζω να μην καταλαβαίνω πως μπορεί να υλοποιηθεί το παραπάνω. Μήπως θα μπορούσε να βοηθήσει κάποιος;

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




nikolasmer

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 539
  • There can be only one...may it be AEPP.
Απ: Άσκηση String Matching
« Απάντηση #14 στις: 30 Δεκ 2013, 10:34:05 πμ »
Itt ούτε καν το είχα σκεφτεί τόσο απλά. Σε ευχαριστώ πολύ. :)
Απ' τα τσακάλια δεν γλυτώνεις μ'ευχές ή παρακάλια
(Κ. Βάρναλης)

Μερεντίτης Νικόλαος
Καθηγητής Πληροφορικής - Φροντιστής