Αποστολέας Θέμα: ΕΝΤΟΛΗ ΕΠΙΛΕΞΕ  (Αναγνώστηκε 3054 φορές)

vav

  • Βετεράνος
  • ****
  • Μηνύματα: 54
ΕΝΤΟΛΗ ΕΠΙΛΕΞΕ
« στις: 26 Αύγ 2008, 01:22:31 μμ »
ΚΑΛΗΣΠΕΡΑ ΣΕ ΟΛΟΥΣ.
ΘΕ ΗΘΕΛΑ ΝΑ ΚΑΝΩ ΜΙΑ ΕΡΩΤΗΣΗ:
ΜΠΟΡΩ ΝΑ ΕΧΩ ΜΙΑ ΕΠΙΛΕΞΕ ΜΕΣΑ ΣΕ ΜΙΑ ΑΛΛΑ ΕΠΙΛΕΞΕ ? Π.Χ.

ΝΑ ΜΕΤΑΤΡΑΠΕΙ ΤΟ ΠΑΡΑΚΑΤΩ ΤΜΗΜΑ ΑΛΓΟΡΙΘΜΟΥ ΜΕ ΑΠΟΚΛΕΙΣΤΙΚΗ ΧΡΗΣΗ ΤΗΣ ΕΠΙΛΕΞΕ:

ΔΙΑΒΑΣΕ Α
ΑΝ Α<10 ΤΟΤΕ
   ΑΝ Α=0 ΤΟΤΕ
       ΕΜΦΑΝΙΣΕ "ΜΗΔΕΝ"
   ΑΛΛΙΩΣ_ΑΝ Α=1 ΤΟΤΕ
       ΕΜΦΑΝΙΣΕ "ΕΝΑ"
   ΑΛΛΙΩΣ_ΑΝ Α=2 Ή Α=4 Ή Α=6 Ή Α=8 ΤΟΤΕ
       ΕΜΦΑΝΙΣΕ "ΑΡΤΙΟΣ"
   ΑΛΛΙΩΣ
       ΕΜΦΑΝΙΣΕ ΠΕΡΙΤΤΟΣ"
   ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ

ΘΑ ΜΠΟΡΟΥΣΕ ΝΑ ΜΕΤΑΤΡΑΠΕΙ ΣΕ:

ΕΠΙΛΕΞΕ Α
    ΠΕΡΙΠΤΩΣΗ  <10
          ΕΠΙΛΕΞΕ Α
              ΠΕΡΙΠΤΩΣΗ 0
                     ΕΜΦΑΝΙΣΕ "ΜΗΔΕΝ"
              ΠΕΡΙΠΤΩΣΗ 1
                     ΕΜΦΑΝΙΣΕ "ΕΝΑ"
              ΠΕΡΙΠΤΩΣΗ 2,4,6,8
                     ΕΜΦΑΝΙΣΕ "ΑΡΤΙΟΣ"
              ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ
                     ΕΜΦΑΝΙΣΕ "ΠΕΡΙΤΤΟΣ"
          ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ
ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ
 
ΕΥΧΑΡΙΣΤΩ.
ΚΑΛΗ ΧΡΟΝΙΑ ΝΑ ΕΧΟΥΜΕ

sstergou

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 983
  • Program or be Programmed
    • pseudoglossa.gr
Απ: ΕΝΤΟΛΗ ΕΠΙΛΕΞΕ
« Απάντηση #1 στις: 26 Αύγ 2008, 04:29:09 μμ »
Έχω την εντύπωση ότι είναι σωστό για τον ίδιο λόγο που μπορούμε να έχουμε Αν μέσα σε Αν ή Όσο μέσα σε Όσο μέσα σε Για κοκ...

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

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

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3222
  • I love you more than 3000
    • Panagiotis Tsiotakis
Απ: ΕΝΤΟΛΗ ΕΠΙΛΕΞΕ
« Απάντηση #2 στις: 26 Αύγ 2008, 04:46:24 μμ »
Σαφώς και μπορούμε να έχουμε εμφωλευμένη μια δομή επίλεξε εντός μιας άλλης, αλλά δεν ξέρω αν το παράδειγμα είναι κατάλληλο μιας και η εξωτερική δομή είναι απλής επιλογής και όχι πολλαπλής !!

vav

  • Βετεράνος
  • ****
  • Μηνύματα: 54
Απ: ΕΝΤΟΛΗ ΕΠΙΛΕΞΕ
« Απάντηση #3 στις: 26 Αύγ 2008, 07:41:42 μμ »
ΔΗΛΑΔΗ ΠΑΝΑΓΙΩΤΗ ΕΝΝΟΕΙΣ ΟΤΙ ΜΙΑ ΜΕΤΑΤΡΟΠΗ ΤΟΥ ΤΥΠΟΥ :

ΑΝ Χ<5 ΤΟΤΕ
   ΕΜΦΑΝΙΣΕ "ΤΕΛΟΣ"
ΤΕΛΟΣ_ΑΝ

ΔΕΝ ΘΑ ΜΠΟΡΟΥΣΕ (?) ΝΑ ΜΕΤΑΤΡΑΠΕΙ ΣΕ:

ΕΠΙΛΕΞΕ Χ
   ΠΕΡΙΠΤΩΣΗ <5
     ΕΜΦΑΝΙΣΕ "ΤΕΛΟΣ"
ΤΕΛΟ_ΕΠΙΛΟΓΩΝ


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

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3222
  • I love you more than 3000
    • Panagiotis Tsiotakis
Απ: ΕΝΤΟΛΗ ΕΠΙΛΕΞΕ
« Απάντηση #4 στις: 26 Αύγ 2008, 09:59:34 μμ »
Πριν πολυύυυ καιρό (τόσο που δεν μπορώ να την ψάξω στις συζητήσεις, κάπου στο 2004-5), είχαμε μια συζήτηση για την Επίλεξε. Και γω τότε την φανταζόμουν και ως δομή σύνθετης επιλογής (2 περιπτώσεις), αλλά μετά τη συζήτηση, αναθεώρησα.

- Στη σελίδα 36 του βιβλίου μαθητή γράφει: "Αν οι διαφορετικές επιλογές είναι πολλές, τότε είναι προτιμότερο να χρησιμοποιηθεί το σχήμα πολλαπλής επιλογής Επίλεξε...Τέλος επιλογών..."
- Στη σελίδα 172 του βιβλίου μαθητή γράφει: "Αν οι εναλλακτικές περιπτώσεις επιλογής είναι πολλές, μπορεί να χρησιμοποιηθεί η εντολή ΕΠΙΛΕΞΕ..."

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

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5192
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: ΕΝΤΟΛΗ ΕΠΙΛΕΞΕ
« Απάντηση #5 στις: 27 Αύγ 2008, 10:36:07 πμ »
Έστω ότι θέλω να εμφανιστεί ένα μήνυμα μόνο σε μια τεράστια λίστα περιπτώσεων.
Κώδικας: Text
  1. ΕΠΙΛΕΞΕ α
  2.   ΠΕΡΙΠΤΩΣΗ 1, 4.2, 5, 7, 8.2, 9, 13, 17, 19.2, 22.3, 44, 55, 63, 88, 91, 92.5
  3.     ΓΡΑΨΕ μήνυμα
  4. ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ
  5.  

Επίτηδες δεν έβαλα διαστήματα στο παράδειγμα για να μην ξεφύγει η συζήτηση.
Λοιπόν, το παραπάνω είναι πολύ πιο απλό και αναγνώσιμο (και πιθανώς πιο αποδοτικό) με ΕΠΙΛΕΞΕ παρά με ΑΝ, επειδή δεν χρειάζεται συνέχεια να επαναλαμβάνουμε τη μεταβλητή (ή έκφραση) της ΕΠΙΛΕΞΕ, ούτε να βάζουμε συνέχεια το λογικό τελεστή Ή.
Δεν είναι καλοί λόγοι αυτοί για να προτιμηθεί η ΕΠΙΛΕΞΕ, ακόμα κι αν υπάρχει μόνο μία ΠΕΡΙΠΤΩΣΗ;
Ή, έστω ότι είχαμε 2 τέτοιες περιπτώσεις, με 2 τεράστιες λίστες τιμών. Θα βάζαμε τότε ΕΠΙΛΕΞΕ; Κι αν όχι, από πόσες περιπτώσεις / λίστες τιμών και πάνω;

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

Αντίστοιχο παράδειγμα. Το βιβλίο λέει ότι όταν έχουμε συγκεκριμένο αριθμό επαναλήψεων, θα πρέπει να χρησιμοποιούμε τη ΓΙΑ.
Κώδικας: Text
  1. ι <- 1
  2. β <- 1
  3. ΟΣΟ ι < 100 ΕΠΑΝΑΛΑΒΕ
  4.   ι <- ι + β
  5.   β <- β + 1   !βήμα αυξανόμενο κατά 1 σε κάθε επανάληψη
  6.   ΓΡΑΨΕ ι
  7. ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  8.  

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

vav

  • Βετεράνος
  • ****
  • Μηνύματα: 54
Απ: ΕΝΤΟΛΗ ΕΠΙΛΕΞΕ
« Απάντηση #6 στις: 27 Αύγ 2008, 01:40:04 μμ »
Αλκη συμφωνά απόλυτα μαζί σου.

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

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

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

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3222
  • I love you more than 3000
    • Panagiotis Tsiotakis
Απ: ΕΝΤΟΛΗ ΕΠΙΛΕΞΕ
« Απάντηση #7 στις: 27 Αύγ 2008, 06:00:38 μμ »
Το Επίλεξε είναι δομή πολλαπλής επιλογής. Ακόμη κι αν θεωρήσουμε οτι επιτρέπεται η χρήση του για τη διερεύνηση 1 ή 2 περιπτώσεων (μαζί σας και γω), αυτό δε σημαίνει οτι είναι η ενδεδειγμένη χρήση της.

Ο συμπαγής τρόπος γραφής της είναι σημαντικός λόγος.