Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Δομή επιλογής => Γ΄ Λυκείου => Εντολή ΕΠΙΛΕΞΕ => Μήνυμα ξεκίνησε από: vav στις 26 Αυγ 2008, 01:22:31 ΜΜ

Τίτλος: ΕΝΤΟΛΗ ΕΠΙΛΕΞΕ
Αποστολή από: vav στις 26 Αυγ 2008, 01:22:31 ΜΜ
ΚΑΛΗΣΠΕΡΑ ΣΕ ΟΛΟΥΣ.
ΘΕ ΗΘΕΛΑ ΝΑ ΚΑΝΩ ΜΙΑ ΕΡΩΤΗΣΗ:
ΜΠΟΡΩ ΝΑ ΕΧΩ ΜΙΑ ΕΠΙΛΕΞΕ ΜΕΣΑ ΣΕ ΜΙΑ ΑΛΛΑ ΕΠΙΛΕΞΕ ? Π.Χ.

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

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

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

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

ΕΥΧΑΡΙΣΤΩ.
ΚΑΛΗ ΧΡΟΝΙΑ ΝΑ ΕΧΟΥΜΕ
Τίτλος: Απ: ΕΝΤΟΛΗ ΕΠΙΛΕΞΕ
Αποστολή από: sstergou στις 26 Αυγ 2008, 04:29:09 ΜΜ
Έχω την εντύπωση ότι είναι σωστό για τον ίδιο λόγο που μπορούμε να έχουμε Αν μέσα σε Αν ή Όσο μέσα σε Όσο μέσα σε Για κοκ...

Δεν θυμάμαι αν αναφέρεται ρητά κάπου μέσα στο βιβλίο αλλά νομίζω είναι αυτονόητο.
Τίτλος: Απ: ΕΝΤΟΛΗ ΕΠΙΛΕΞΕ
Αποστολή από: P.Tsiotakis στις 26 Αυγ 2008, 04:46:24 ΜΜ
Σαφώς και μπορούμε να έχουμε εμφωλευμένη μια δομή επίλεξε εντός μιας άλλης, αλλά δεν ξέρω αν το παράδειγμα είναι κατάλληλο μιας και η εξωτερική δομή είναι απλής επιλογής και όχι πολλαπλής !!
Τίτλος: Απ: ΕΝΤΟΛΗ ΕΠΙΛΕΞΕ
Αποστολή από: vav στις 26 Αυγ 2008, 07:41:42 ΜΜ
ΔΗΛΑΔΗ ΠΑΝΑΓΙΩΤΗ ΕΝΝΟΕΙΣ ΟΤΙ ΜΙΑ ΜΕΤΑΤΡΟΠΗ ΤΟΥ ΤΥΠΟΥ :

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

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

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

Τίτλος: Απ: ΕΝΤΟΛΗ ΕΠΙΛΕΞΕ
Αποστολή από: P.Tsiotakis στις 26 Αυγ 2008, 09:59:34 ΜΜ
Πριν πολυύυυ καιρό (τόσο που δεν μπορώ να την ψάξω στις συζητήσεις, κάπου στο 2004-5), είχαμε μια συζήτηση για την Επίλεξε. Και γω τότε την φανταζόμουν και ως δομή σύνθετης επιλογής (2 περιπτώσεις), αλλά μετά τη συζήτηση, αναθεώρησα.

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

Η Επίλεξε σύμφωνα με το διδακτικό πακέτο θεωρώ οτι είναι δομή πολλαπλής επιλογής (κάλυψη περισσοτέρων απο 2 περιπτώσεις) και μάλιστα ΟΧΙ ισοδύναμη με την Αν, καθώς δεν υπάρχει πάντα μετατροπή...
Τι λες;
Τίτλος: Απ: ΕΝΤΟΛΗ ΕΠΙΛΕΞΕ
Αποστολή από: alkisg στις 27 Αυγ 2008, 10:36:07 ΠΜ
Έστω ότι θέλω να εμφανιστεί ένα μήνυμα μόνο σε μια τεράστια λίστα περιπτώσεων.
Κώδικας (ΓΛΩΣΣΑ) [Επιλογή]

ΕΠΙΛΕΞΕ α
  ΠΕΡΙΠΤΩΣΗ 1, 4.2, 5, 7, 8.2, 9, 13, 17, 19.2, 22.3, 44, 55, 63, 88, 91, 92.5
    ΓΡΑΨΕ μήνυμα
ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ


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

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

Αντίστοιχο παράδειγμα. Το βιβλίο λέει ότι όταν έχουμε συγκεκριμένο αριθμό επαναλήψεων, θα πρέπει να χρησιμοποιούμε τη ΓΙΑ.
Κώδικας (ΓΛΩΣΣΑ) [Επιλογή]

ι <- 1
β <- 1
ΟΣΟ ι < 100 ΕΠΑΝΑΛΑΒΕ
  ι <- ι + β
  β <- β + 1   !βήμα αυξανόμενο κατά 1 σε κάθε επανάληψη
  ΓΡΑΨΕ ι
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ


Ο παραπάνω κώδικας κάνει σταθερό αριθμό επαναλήψεων, αλλά δε νομίζω ότι θα είναι πιο κατανοητός ούτε πιο αποδοτικός αν ψάξουμε να βρούμε αριθμητική σχέση του β με το ι και το κάνουμε τελικά με ΓΙΑ (μετρητής θα είναι το β, όχι το ι).
Τίτλος: Απ: ΕΝΤΟΛΗ ΕΠΙΛΕΞΕ
Αποστολή από: vav στις 27 Αυγ 2008, 01:40:04 ΜΜ
Αλκη συμφωνά απόλυτα μαζί σου.

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

Πιστεύω ότι πρέπει να δείξουμε στους μαθητές την ευελιξία που πιθανόν υπάρχουν σε κάποιες περιπτώσεις στις οποίες το βιβλίο είναι ελλειπής ή ασαφής.
Τίτλος: Απ: ΕΝΤΟΛΗ ΕΠΙΛΕΞΕ
Αποστολή από: P.Tsiotakis στις 27 Αυγ 2008, 06:00:38 ΜΜ
Το Επίλεξε είναι δομή πολλαπλής επιλογής. Ακόμη κι αν θεωρήσουμε οτι επιτρέπεται η χρήση του για τη διερεύνηση 1 ή 2 περιπτώσεων (μαζί σας και γω), αυτό δε σημαίνει οτι είναι η ενδεδειγμένη χρήση της.

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