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

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

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

parantop

Αντί του "κλασσικού" κώδικα:

ι <- 1
Το_βρηκες <- Ψευδές
Οσο ι <= Ν ΚΑΙ Το_βρηκες = Ψευδές επανάλαβε
  Αν Π[ι] = key τοτε
       Θεση <- ι
       Το_βρηκες <- Αληθές
   αλλιώς
       ι <- ι + 1
  Τελος_αν
Τελος_επαναληψης

Αν Το_Βρηκες = Αληθες τοτε
     Τυπωσε Θεση
αλλιώς
     Τυπωσε "Δεν το βρηκα"
Τελος_αν

Μπορούν τα παιδιά να χρησιμοποιήσουν τον κώδικα?

Για ι απο 1 μεχρι Ν
  Αν Π[ι] = key τοτε
       Θεση <- ι
       ι <- Ν+10
  Τελος_αν
Τελος_επαναληψης

Αν ι = Ν+1 τοτε
  Τυπωσε "Δεν το βρηκα"
αλλιώς
  Τυπωσε Θεση
Τελος_αν

Το χρησιμοποιείτε εσείς? Το είχα πει κάποια στιγμή σε κάποια παιδιά και τους άρεσε!

thanos_xg

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

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

Γενικά όπου χρειάζεται να διακόπτεται η επανάληψη πριν συμπληρωθεί το μέγιστο πλήθος επαναλήψεων καλό είναι να χρησιμποιούμε μόνο τις "Όσο" ή "Μέχρις_ότου"
Θανάσης Χ.

parantop

Εάν θεωρήσουμε πράγμα που ούτε εγώ προτείνω, ένας μαθητής να χρησιμοποιήσει την "Για", όπως στο παράδειγμά μου, θα το πάρουν λέτε λάθος στις Πανελλαδικές?

Υπάρχει κανείς διορθωτής εδώ, θα ήταν χρήσιμο να ακούσουμε την άποψή του.

andreas_p

Αποδεκτό  αλλά ΟΧΙ  με  ΓΙΑ.

Ι <- 1
Οσο  Ι<= Ν  επανάλαβε
  Αν Π[Ι]= key τοτε
       Θεση <- Ι
       Ι <- Ν+10
   αλλιώς
       Ι <- Ι+1
  Τελος_αν
Τελος_επαναληψης

Αν Ι = Ν+1 τοτε
  Εμφάνισε "Δε βρέθηκε"
αλλιώς
  Εμφάνισε  Θέση
Τελος_αν

!   με το  trick  I <- N+10   που θα μπορούσε να είναι και Ι <- Ν+2
! αποφεύγεις τη χρήση λογικής μεταβλητής.

Ανδρέας

Wizard

Θα μπορούσε να χρησιμοποιηθεί και η θέση

θέση <- 0
Ι <- 1
Οσο  Ι<= Ν και θέση=0 επανάλαβε
  Αν Π[Ι]= key τοτε
       θεση <- Ι
   αλλιώς
       Ι <- Ι+1
  Τελος_αν
Τελος_επαναληψης

Αν θέση=0 τότε
  Εμφάνισε "Δε βρέθηκε"
αλλιώς
  Εμφάνισε θέση
Τέλος_αν

andreas_p

Θα μπορούσε.

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

Ανδρέας

Wizard

Έχεις δίκιο, δεν είχε νόημα το post μου σε σχέση με το θέμα.

Παράθεση από: andreas_p στις 05 Απρ 2007, 10:20:09 ΠΜ
Θα μπορούσε.

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

Ανδρέας

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

σχετικά με ρώτησαν κι εμένα για το εξής:

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

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

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

ΠΙΣΤΕΥΩ ΟΤΙ ΔΕΝ ΥΠΑΡΧΕΙ ΚΑΝΕΝΑ ΑΠΟΛΥΤΩΣ ΠΡΟΒΛΗΜΑ!
ΣΥΜΦΩΝΩ ΜΕ ΤΟΝ andreas_p
Λάμπρος Μπουκουβάλας
MSc - MRes

http://blogs.sch.gr/lambrosbouk

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

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

στη πράξη δουλεύει μια χαρά!
μου θυμίζει το σχετικό link στο forum για το αν πρέπει τελικά να χρησιμοποιούμε διάβασε-εμφάνισε σε συναρτήσεις...
Λάμπρος Μπουκουβάλας
MSc - MRes

http://blogs.sch.gr/lambrosbouk

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

P.Tsiotakis

Το συζητάμε ταυτόχρονα και στο:
https://alkisg.mysch.gr/steki/index.php?topic=1206.new#new

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

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


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

alkisg

Παράθεση από: Τσιωτάκης Παναγιώτης στις 31 Ιαν 2008, 09:51:48 ΜΜ
Ξέρετε αγαπητοί φίλοι, δεκάδες καθηγητές διαβάζουν χωρίς να συμμετέχουν τις συζητήσεις, και πιστεύω οτι προσφέρουμε κακή υπηρεσία και ειδικά σε αυτούς που ξεκινούν τώρα την δραστηριότητά τους στην εκπαίδευση, οδηγώντας τη συζήτηση σε λάθος κατευθύνσεις συνεχώς, σχετικά με την τελική τιμή του μετρητή του Για, τον τερματισμό βρόχου Για και άλλα τέτοια

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

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

pgrontas

Παράθεση από: alkisg στις 01 Φεβ 2008, 09:50:36 ΠΜ
Παράθεση από: Τσιωτάκης Παναγιώτης στις 31 Ιαν 2008, 09:51:48 ΜΜ
Ξέρετε αγαπητοί φίλοι, δεκάδες καθηγητές διαβάζουν χωρίς να συμμετέχουν τις συζητήσεις, και πιστεύω οτι προσφέρουμε κακή υπηρεσία και ειδικά σε αυτούς που ξεκινούν τώρα την δραστηριότητά τους στην εκπαίδευση, οδηγώντας τη συζήτηση σε λάθος κατευθύνσεις συνεχώς, σχετικά με την τελική τιμή του μετρητή του Για, τον τερματισμό βρόχου Για και άλλα τέτοια

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

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

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

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


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

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

Παναγιώτη Τσιωτάκη, με εντυπωσιάζει το ύφος σου... Πρόκειται για συνάδελφο, που ζήτησε από τους μαθητές του να φτιάξουν μια έξυπνη σειριακή, αλλά με για και όχι με όσο και χωρίς λογική μεταβλητή. Πώς αλλιώς θα το έλυνες? Κι εγώ την όσο θα χρησιμοποιούσα, διαθέτω την κατάλληλη εμπειρία. Και μόλις τους είπε τα παραπάνω, τους απαγόρευσε να αλλάξουν βίαια το μετρητή. Αργότερα, όταν είδε ότι δε λυνόταν, το πήρε πίσω, λέγοντας το κορυφαίο παραμύθι: "ναι, σε κάποιες γλώσσες προγραμματισμού υποστηρίζεται αυτό, αλλά όχι στη δική μας"!... Τί λες γι' αυτά?
Λάμπρος Μπουκουβάλας
MSc - MRes

http://blogs.sch.gr/lambrosbouk

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

sstergou

ΠαράθεσηΘα μπορούσαμε ίσως να φτιάξουμε ένα Wiki ή κάποια περιοχή εδώ στο φόρουμ, στην οποία θα βάζουμε τα "συμπεράσματα" των συζητήσεων;

Αν υπάρχει ενδιαφέρον για wiki (ή για κάτι παρόμοιο), μπορώ να αναλάβω το στήσιμό του εντός ΠΣΔ.

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

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

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

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

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

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

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

evry

#30
Στην αρχή το είπα για πλάκα , αλλά τώρα που το λες χμμμ
δεν φαίνεται και πολύ κακή ιδέα  ;)

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

Προφανώς ήταν αστείο, .... εεεε;
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr