Σειριακή Αναζήτηση με "Για" αντι για "Οσο"

Ξεκίνησε από parantop, 04 Απρ 2007, 10:35:16 ΠΜ

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

Lev

αν και κ.Τσιωτάκης μπορεί να απαντήσει και μόνος του όλοι ξέρουμε οτι στην C η for σταματάει με break; οποτε ..

P.Tsiotakis

Λέω οτι όλοι μας πρέπει να καταλαβαίνουμε πότε πρέπει να κάνουμε ένα break..
Καταλαβαίνεις οτι δε μπορώ να πω περισσότερα, εδώ

Πάντως, και ο καθηγητής του γιου του κου Αρβίλογλου έκανε κάτι τέτοια και τον έστειλαν για διακοπές στην Τενεούπολη   :D :D

Άμα, συζητάτε για τη C σε αυτό το topic και δεν το πρόσεξα, θέλω και γω διακοπές  ;D

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

Lev

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

Lev

Εντάξει ο συνάδελφος που έδωσε το θέμα με έξυπνη "Για"  και το πήρε πίσω ίσως να είχε στο μυαλό του αυτό που λέω εγώ.Ειδικά εμείς που είμαστε νέοι και δεν γνωρίζουμε ακριβώς τι μπορεί να διδαχθει και τι όχιμπορούμε να υποπέσουμε εύκολα σε τέτοιου είδους λάθη (αν έχεις φάει τα νιάτα σου προγραμματίζοντας... ;D) γι'αυτό υπάρχει το στέκι και οι πιο έμπειροι καθηγητές  άλλωστε..για να μας λύνουν τις απορίες  ;)
Υ.Γ επειδή είμαι off-topic διαγράψετε τα μηνύματα μου

evry

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

Παράθεση από: Χάρης Τσιαΐρης στις 30 Μαρ 2008, 10:37:24 ΠΜ
Πάντος προσωπικά για να ξαναγυρίσω στην αρχική απορία του topic, σχετικά με την βίαιη μεταβολή της μεταβλητής ι της εντολής "για", το έχω συναντίσει και από μαθητές μου στο σχολείο και σε εξετάσεις και σε κάθε περίπτωση "κάτι κόβει".

Το ότι υπάρχει σε κάποιες γλώσσες προγραμματισμού δεν το κάνει αυτόματα αποδεκτό για
ΑΥΤΟ ΤΟ ΜΑΘΗΜΑ !!!

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

Χάρης Τσιαΐρης
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Χάρης Τσιαΐρης

Το ότι σε κάποια (ή σε κάποιες) γλώσσες προγραμματισμού υπάρχουν μερικές δυνατότητες, δεν σημαίνει ότι  αυτόματα τις έχουμε στη διάθεσή μας. Πχ. Η σειρά των λογικών πράξεων είναι πάντα όχι, και, ή (αν δεν κάνω λάθος ισχύει σε όλες τις γλώσσες που εγώ τουλάχιστον γνωρίζω). Για όσους μάλιστα γνωρίζουν λίγο καλύτερα λογικό προγραμματισμό (και δεν εννοώ να ξέρουν απλά Prolog), θα ξέρουν ότι είναι βασική αρχή του λογικού προγραμματισμού. Αυτό δεν σημαίνει αυτόματα ότι εμείς όταν το διδάσκουμε θα πρέπει να το λέμε στους μαθητές μας γιατί απλά … υπάρχει σε όλες τις γλώσσες προγραμματισμού.
Η έννοια της τεκμηριωμένης λύσης είναι η ίδια σε όλα τα μαθήματα των εξετάσεων και δεν μπορούμε εμείς να την εξαιρέσουμε. Για να μην γίνω κουραστικός, θα τη δώσω μέσα από ένα παράδειγμα:

Έστω ότι ζητούνε από ένα μαθητή να αποτιμήσει την έκφραση
α<-Αληθής
χ>2
ψ<=3
χ>1 ή α και ψ>5
(έτσι χωρίς παρενθέσεις)
Σύμφωνα με αυτά που όλοι μας ξέρουμε θα πρέπει πρώτα να αποτιμηθεί το "και" και μετά το "ή" και το αποτέλεσμα είναι Αληθής. Αν όμως γίνει λάθος (επιστημονικά) αποτίμηση το αποτέλεσμα θα είναι Ψευδής. Να τι μπορεί να συμβεί:

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

(Παρεμπίπτοντος αν ξέρει κάποιος μία γλώσσα προγραμματισμού που να μην ισχύει αυτή η σειρά λογικών πράξεων εκτός φυσικά από τις functional γλώσσες, Standar ML και LISP, που δεν έχει νόημα λόγο σύνταξης η "σειρά λογικών πράξεων", θα ήθελα να μου το πει. Απλά έκανα στα τεφτέρια μου μία πρόχειρη αναζήτηση και δεν μου έρχεται καμία εξαίρεση για να επιβεβαιώσει τον κανόνα (Fortran, Cobol, Basic, Pascal, C, C++, Java, Dbase, Prolog, Progress, Ingress, Oracle (τα 4GL κομμάτια τους) κλπ, ακόμα και σε κελύφη γλωσσών ή έμπειρων συστημάτων ή σε παράλληλες εκδόσεις τους όπως CLIPS, D-Linda, KL1. )

Με λίγα λόγια ότι έχει το σχολικό βιβλίο θεωρείται πάντοτε σωστό και με βάση αυτό και μόνο βαθμολογούμε. Οτιδήποτε άλλο δεν το περιέχει το βιβλίο, προκειμένου να το χρησιμοποιήσει ο μαθητής, θα πρέπει 1. να είναι σωστό, 2. να αναφέρει ότι το γνωρίζει και εφόσον ισχύουν οι δύο αυτές προϋποθέσεις μπορεί να το χρησιμοποιήσει. Γνώση προηγούμενων τάξεων θεωρείται γνωστή. Επίσης υπάρχει και σχετική οδηγία που αναφέρει ότι στα θέματα των εξετάσεων μπορεί να ζητηθεί κάτι διαθεματικό δηλ. που να αφορά γνώση από άλλο μάθημα πανελληνίων (ευτυχώς οι επιτροπές εξετάσεων δεν το εφάρμοσαν ποτέ σε κανένα μάθημα, αλλιώς … :'( :'( :'().

Χάρης Τσιαΐρης

evry


  Νομίζω ότι η σειρά των λογικών πράξεων δεν έχει σχέση με την αλλαγή του Για μέσα στην επανάληψη. Επίσης η αλλαγή του Για μέσα στην επανάληψη δεν είναι απλά μια δυνατότητα που εμφανίζεται σε "κάποια" γλώσσα προγραμματισμού αλλά σχεδόν σε όλες τις γλώσσες που χρησιμοποιούνται ευρέως σήμερα, βλέπε C, C++, Java, C# (ουσιαστικά εδώ εκφράζεται με την break). Άρα δε νομίζω ότι είναι κάτι που μπορούμε να αγνοήσουμε έτσι εύκολα.
  Επίσης ξαναρωτάω τι λάθος είναι η αλλαγή του μετρητή στη Για και που λέει στο διδακτικό πακέτο ότι αυτό είναι λάθος. Είναι λογικό ή συντακτικό? Μιλάω πάντα για την ψευδογλώσσα και όχι για τη Γλώσσα. Εκεί η αλλαγή του μετρητή τι λάθος είναι?

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

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

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

Κώδικας: ΓΛΩΣΣΑ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100 
  ΔΙΑΒΑΣΕ Χ
  Σ <-- Σ + Χ
  ΑΝ Χ = 0 ΤΟΤΕ
     Ι <- 101
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 ΓΡΑΨΕ Σ


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

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

potato

Παράθεση από: Λάμπρος Μπουκουβάλας στις 31 Ιαν 2008, 09:03:23 ΜΜ
σχετικά με ρώτησαν κι εμένα για το εξής:

πιστεύετε ότι λειτουργεί σωστά το παρακάτω;:

διαβασε κ
για ι από 1 μέχρι 10
διάβασε α[ι]
τέλος_επανάληψης
για ι από 1 μέχρι 10
αν κ=α[ι] τότε
ι <-- 11
τέλος_αν
τέλος_επανάληψης

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

Δεν δουλεύει σωστά, με την έννοια του παρανοικου διότι μετά πρέπει να κάνεις έλεγχο για το αν το ι ειναι 12! αφού θα γίνει αύξηση +1 πριν τη σύγκριση με το 10.  ( τώρα για το αν γίνεται να αλλάξεις τον δείκτη, δεν βλέπω να υπάρχει κάποιος νόμος γραπτός, και μέχρι να γραφτεί, ακέραιος είναι και πράξεις μεταξύ ακεραίων μπορώ να κάνω. )
-----------------------------------------------------------------------

    Να απαντήσω για την αναζήτηση με Για.. προφανώς δεν εφαρμόζεται όταν δεν έχουμε γνωστό πλήθος, αλλά εδώ νομίζω οτι το Ν το θεωρεί γνωστό.(από την άλλη δεν καταλαβαίνω, γιατί να πείτε στους μαθητές σας έναν τέτοιο τρόπο? Δεν είναι πιο εύκολη η Για.. ισα ισα είναι πιο τρίκυ-->Δεν βλέπεις το βήμα άμεσα, συν ότι έχει και λιγότερες δυνατότητες. Προτρέπω τη χρήση της Οσο, όπου καταλαβαίνεις πλήρως τι κάνεις και δεν κάνεις και λάθος ποτέ στα διαγράμματα ροης.)
    Τέλος, να πω ότι αν δεν θέλει κάποιος τη χρήση λογικών μεταβλητών ας βάλει 0 και 1.
Be open source. Knowledge belongs to the world.

Χάρης Τσιαΐρης

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

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

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

Χάρης Τσιαΐρης

ΥΓ: Ίσως καταφέρουμε να λύσουμε μερικά από αυτά τα θέματα αν βρεθούμε σε καμιά ημερίδα.

Λάμπρος Μπουκουβάλας

Παράθεση από: Lev στις 01 Απρ 2008, 02:25:23 ΠΜ
Ζητώ συγγνώμη παρεξήγηση δεν διάβασα καλά την απάντηση του συνάδελφου κ.Μπουκουβάλα("Τσιωτάκη Παναγιώτη με εντυπωσιάζει το ύφος σου..") και έτρεξα να υερασπιστώ τον κ.Τσιωτάκη("εκεί πήγαινε το μπορεί να απαντήσει μόνος του")  χωρίς να χρειάζεται...
Ζητώ ταπεινά συγγνώμη από τους συναδέλφους και ελπίζω αν υπήρξαν παρεξηγήσεις να λύθηκαν.
Λεοντίου Νικόλας

Νικόλα, έστω και με λίγους μήνες καθυστέρηση, ΔΕ νομίζω ότι τίθεται κάποιο θέμα παρεξήγησης ανάμεσά μας! Καθένας λέει τη δική του γνώμη. Ο ένας βελτιώνει τον άλλο και αλλοίμονό μας αν προσπαθήσουμε κάποτε να κάνουμε προσωπική φιγούρα μέσα από ένα foroum...
Πιστεύω πολύ σταθερά & βαθιά ότι όλοι είμαστε αξιόλογοι!
Λάμπρος Μπουκουβάλας
MSc - MRes

http://blogs.sch.gr/lambrosbouk

Ο Θουκυδίδης  (που τον διαβάζουν οι ξένοι, αλλά όχι εμείς)  έγραφε: «Αταλαίπωρος τοις πολλοίς η ζήτησις της αληθείας, και επί τα ετοίμα μάλλον τρέπονται» (Ι, 20, 3). Οι περισσότεροι δηλαδή αναζητούν αβασάνιστα την αλήθεια και στρέφονται σε ό,τι βρίσκουν έτοιμο. Δεν προβληματίζονται...

trela


P.Tsiotakis

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

SUM ← VATH[2O]
Για i από 19 μέχρι 1 με βήμα -1
Αν SUM+VATH[i] < 1000 τότε
SUM ← SUM+VATH[i]
αλλιώς
stop ← i–1
έξοδος από βρόχο
Τέλος_αν
Τέλος_επανάληψης


Αποτελεί ένα απο τα χειρότερα σημεία του διδακτικού μας πακέτου...

evry

όχι ρε Παναγιώτη τι λες, μια χαρά είναι ο κώδικας απλά στο τέλος αντί για την εντολή
  έξοδος από τον βρόχο
πρέπει να μπει η
    i <- 0

Παράθεση από: Τσιωτάκης Παναγιώτης στις 16 Αυγ 2009, 11:08:25 ΠΜ
Είναι προφανές οτι αυτός που έγραψε τη συγκεκριμένη κωδικοποίηση στο βιβλίο καθηγητή, είχε πάρει ληγμένο depon

SUM ← VATH[2O]
Για i από 19 μέχρι 1 με βήμα -1
Αν SUM+VATH[i] < 1000 τότε
SUM ← SUM+VATH[i]
αλλιώς
stop ← i–1
έξοδος από βρόχο
Τέλος_αν
Τέλος_επανάληψης


Αποτελεί ένα απο τα χειρότερα σημεία του διδακτικού μας πακέτου...
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

P.Tsiotakis


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

Παράθεση από: evry στις 18 Αυγ 2009, 02:41:28 ΜΜ
όχι ρε Παναγιώτη τι λες, μια χαρά είναι ο κώδικας απλά στο τέλος αντί για την εντολή
  έξοδος από τον βρόχο
πρέπει να μπει η
    i <- 0

Προφανώς ήταν αστείο, .... εεεε;