Αποστολέας Θέμα: Σειριακή Αναζήτηση με "Για" αντι για "Οσο"  (Αναγνώστηκε 8998 φορές)

parantop

  • Οπαδός
  • **
  • Μηνύματα: 16
Σειριακή Αναζήτηση με "Για" αντι για "Οσο"
« στις: 04 Απρ 2007, 10:35:16 πμ »
Αντί του "κλασσικού" κώδικα:

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

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

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

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

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

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

thanos_xg

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 22
Απ: Σειριακή Αναζήτηση με "Για" αντι για "Οσο"
« Απάντηση #1 στις: 04 Απρ 2007, 11:52:25 πμ »
Η εντολή "Για" χρησιμοποιείται μόνο όταν γνωρίζω από πρίν τον αριθμό των επαναλήψεων που θα εκτελεστούν.
Επίσης είναι εκτός φιλοσοφίας ΑΕΠΠ να πειράζουμε τον μετρητή της "Για"...θα έλεγα απαγορεύεται  :police: να το κάνουμε, γιατί έτσι χάνει το νόημά της η ίδια η εντολή (Αν μπορώ να τη διακόπτω όποτε θέλω τότε δεν έχει λόγο ύπαρξης....υπάρχουν οι άλλες δύο που υπερκαλύπτουν την περίπτωση).

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

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

parantop

  • Οπαδός
  • **
  • Μηνύματα: 16
Απ: Σειριακή Αναζήτηση με "Για" αντι για "Οσο"
« Απάντηση #2 στις: 04 Απρ 2007, 09:54:20 μμ »
Εάν θεωρήσουμε πράγμα που ούτε εγώ προτείνω, ένας μαθητής να χρησιμοποιήσει την "Για", όπως στο παράδειγμά μου, θα το πάρουν λέτε λάθος στις Πανελλαδικές?

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

andreas_p

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1015
Απ: Σειριακή Αναζήτηση με "Για" αντι για "Οσο"
« Απάντηση #3 στις: 04 Απρ 2007, 10:49:57 μμ »
Αποδεκτό  αλλά ΟΧΙ  με  ΓΙΑ.

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

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

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

Ανδρέας

Wizard

  • Επισκέπτης
Απ: Σειριακή Αναζήτηση με "Για" αντι για "Οσο"
« Απάντηση #4 στις: 05 Απρ 2007, 10:06:01 πμ »
Θα μπορούσε να χρησιμοποιηθεί και η θέση

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

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

andreas_p

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1015
Απ: Σειριακή Αναζήτηση με "Για" αντι για "Οσο"
« Απάντηση #5 στις: 05 Απρ 2007, 10:20:09 πμ »
Θα μπορούσε.

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

Ανδρέας

Wizard

  • Επισκέπτης
Απ: Σειριακή Αναζήτηση με "Για" αντι για "Οσο"
« Απάντηση #6 στις: 05 Απρ 2007, 10:28:28 πμ »
Έχεις δίκιο, δεν είχε νόημα το post μου σε σχέση με το θέμα.

Θα μπορούσε.

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

Ανδρέας

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

  • Η παιδεία είναι: στους φτωχούς, ΠΛΟΥΤΟΣ. Στους πλούσιους, ΣΤΟΛΙΔΙ. Στους νέους, ΚΑΙ ΤΑ ΔΥΟ (Διογένης) !
  • Δεινόσαυρος
  • *****
  • Μηνύματα: 1226
    • Το μπλογκάκι μου
Απ: Σειριακή Αναζήτηση με "Για" αντι για "Οσο"
« Απάντηση #7 στις: 31 Ιαν 2008, 09:03:23 μμ »
σχετικά με ρώτησαν κι εμένα για το εξής:

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

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

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

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

http://blogs.sch.gr/lambrosbouk

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

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

  • Η παιδεία είναι: στους φτωχούς, ΠΛΟΥΤΟΣ. Στους πλούσιους, ΣΤΟΛΙΔΙ. Στους νέους, ΚΑΙ ΤΑ ΔΥΟ (Διογένης) !
  • Δεινόσαυρος
  • *****
  • Μηνύματα: 1226
    • Το μπλογκάκι μου
Απ: Σειριακή Αναζήτηση με "Για" αντι για "Οσο"
« Απάντηση #8 στις: 31 Ιαν 2008, 09:39:40 μμ »
στη πράξη δουλεύει μια χαρά!
μου θυμίζει το σχετικό link στο forum για το αν πρέπει τελικά να χρησιμοποιούμε διάβασε-εμφάνισε σε συναρτήσεις...
Λάμπρος Μπουκουβάλας
MSc - MRes

http://blogs.sch.gr/lambrosbouk

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

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

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3178
  • I love you 3000
    • Panagiotis Tsiotakis
Απ: Σειριακή Αναζήτηση με "Για" αντι για "Οσο"
« Απάντηση #9 στις: 31 Ιαν 2008, 09:51:48 μμ »
Το συζητάμε ταυτόχρονα και στο:
http://alkisg.mysch.gr/steki/index.php?topic=1206.new#new

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

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


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

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 4940
    • alkisg@im.sch.gr
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: Σειριακή Αναζήτηση με "Για" αντι για "Οσο"
« Απάντηση #10 στις: 01 Φεβ 2008, 09:50:36 πμ »
Ξέρετε αγαπητοί φίλοι, δεκάδες καθηγητές διαβάζουν χωρίς να συμμετέχουν τις συζητήσεις, και πιστεύω οτι προσφέρουμε κακή υπηρεσία και ειδικά σε αυτούς που ξεκινούν τώρα την δραστηριότητά τους στην εκπαίδευση, οδηγώντας τη συζήτηση σε λάθος κατευθύνσεις συνεχώς, σχετικά με την τελική τιμή του μετρητή του Για, τον τερματισμό βρόχου Για και άλλα τέτοια

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

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

pgrontas

  • Ομάδα διαγωνισμάτων 2016
  • *
  • Μηνύματα: 1317
  • There are always possibilities...
Απ: Σειριακή Αναζήτηση με "Για" αντι για "Οσο"
« Απάντηση #11 στις: 01 Φεβ 2008, 01:48:19 μμ »
Ξέρετε αγαπητοί φίλοι, δεκάδες καθηγητές διαβάζουν χωρίς να συμμετέχουν τις συζητήσεις, και πιστεύω οτι προσφέρουμε κακή υπηρεσία και ειδικά σε αυτούς που ξεκινούν τώρα την δραστηριότητά τους στην εκπαίδευση, οδηγώντας τη συζήτηση σε λάθος κατευθύνσεις συνεχώς, σχετικά με την τελική τιμή του μετρητή του Για, τον τερματισμό βρόχου Για και άλλα τέτοια

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

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

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

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


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

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

  • Η παιδεία είναι: στους φτωχούς, ΠΛΟΥΤΟΣ. Στους πλούσιους, ΣΤΟΛΙΔΙ. Στους νέους, ΚΑΙ ΤΑ ΔΥΟ (Διογένης) !
  • Δεινόσαυρος
  • *****
  • Μηνύματα: 1226
    • Το μπλογκάκι μου
Απ: Σειριακή Αναζήτηση με "Για" αντι για "Οσο"
« Απάντηση #12 στις: 01 Φεβ 2008, 02:13:46 μμ »
Παναγιώτη Τσιωτάκη, με εντυπωσιάζει το ύφος σου... Πρόκειται για συνάδελφο, που ζήτησε από τους μαθητές του να φτιάξουν μια έξυπνη σειριακή, αλλά με για και όχι με όσο και χωρίς λογική μεταβλητή. Πώς αλλιώς θα το έλυνες? Κι εγώ την όσο θα χρησιμοποιούσα, διαθέτω την κατάλληλη εμπειρία. Και μόλις τους είπε τα παραπάνω, τους απαγόρευσε να αλλάξουν βίαια το μετρητή. Αργότερα, όταν είδε ότι δε λυνόταν, το πήρε πίσω, λέγοντας το κορυφαίο παραμύθι: "ναι, σε κάποιες γλώσσες προγραμματισμού υποστηρίζεται αυτό, αλλά όχι στη δική μας"!... Τί λες γι' αυτά?
Λάμπρος Μπουκουβάλας
MSc - MRes

http://blogs.sch.gr/lambrosbouk

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

sstergou

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 983
  • Program or be Programmed
    • pseudoglossa.gr
Απ: Σειριακή Αναζήτηση με "Για" αντι για "Οσο"
« Απάντηση #13 στις: 01 Φεβ 2008, 03:02:51 μμ »
Παράθεση
Θα μπορούσαμε ίσως να φτιάξουμε ένα Wiki ή κάποια περιοχή εδώ στο φόρουμ, στην οποία θα βάζουμε τα "συμπεράσματα" των συζητήσεων;

Αν υπάρχει ενδιαφέρον για wiki (ή για κάτι παρόμοιο), μπορώ να αναλάβω το στήσιμό του εντός ΠΣΔ.
Στάθης Στέργου - sstergouATgmailDOTcom - http://www.pseudoglossa.gr

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

  • Θαμώνας
  • ***
  • Μηνύματα: 23
Απ: Σειριακή Αναζήτηση με "Για" αντι για "Οσο"
« Απάντηση #14 στις: 30 Μάρ 2008, 10:37:24 πμ »
Πάντος προσωπικά για να ξαναγυρίσω στην αρχική απορία του topic, σχετικά με την βίαιη μεταβολή της μεταβλητής ι της εντολής "για", το έχω συναντίσει και από μαθητές μου στο σχολείο και σε εξετάσεις και σε κάθε περίπτωση "κάτι κόβει".

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

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

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