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

Γενικό Λύκειο => Γ΄ Λυκείου => Δομή επιλογής => Μήνυμα ξεκίνησε από: Jimbo στις 01 Νοε 2012, 12:10:11 ΜΜ

Τίτλος: ΕΡΩΤΗΣΗ ΣΤΗ ΔΟΜΗ ΕΠΙΛΟΓΗΣ
Αποστολή από: Jimbo στις 01 Νοε 2012, 12:10:11 ΜΜ
Η
    ΑΝ Σ1 ΚΑΙ Σ2 ΤΟΤΕ
        ΕΝΤΟΛΕΣ.....
          ..........

γράφεται με απλές συνθήκες ως
   ΑΝ Σ1 ΤΟΤΕ
      ΑΝ Σ2 ΤΟΤΕ
         ΕΝΤΟΛΕΣ....
            .......

η παρακάτω δομή επιλογής πως μετατρέπεται σε απλές συνθήκες
ΑΝ Σ1 Η Σ2 ΤΟΤΕ
        ΕΝΤΟΛΕΣ.....


          ..........
Τίτλος: Απ: ΕΡΩΤΗΣΗ ΣΤΗ ΔΟΜΗ ΕΠΙΛΟΓΗΣ
Αποστολή από: gpapargi στις 01 Νοε 2012, 12:58:38 ΜΜ
Αν και δεν πολυκαταλαβαίνω το λόγο για να τεντώσουμε τόσο το σκοινί  :) ένα τρόπος που μου ήρθε είναι ο εξής:

λ<-ψευδής
Αν Σ1 τότε
  λ<-Αληθής
Τέλος_αν
Αν Σ2 τότε
  λ<-Αληθής
Τέλος_αν
Αν λ = αληθής τότε
  εντολές
Τέλος_αν
Τίτλος: Απ: ΕΡΩΤΗΣΗ ΣΤΗ ΔΟΜΗ ΕΠΙΛΟΓΗΣ
Αποστολή από: ntzios kostas στις 01 Νοε 2012, 01:49:09 ΜΜ
Οταν λέμε απλές συνθήκες εννοούμε να μη χρησιμοποιούνται λογικοί τελεστές. Οπότε γράφεται:

αν Σ1 τότε
......αν Σ2 τότε
.............Ε1
......αλλιώς
.............Ε2
......Τέλος_αν
αλλιώς
......Ε2
Τέλος_αν
Τίτλος: Απ: ΕΡΩΤΗΣΗ ΣΤΗ ΔΟΜΗ ΕΠΙΛΟΓΗΣ
Αποστολή από: evry στις 01 Νοε 2012, 01:52:54 ΜΜ
Δεν είμαι σίγουρος αλλά μήπως εννοεί το παρακάτω;

Αν Σ1 ή Σ2 τότε
  Εντολές
Τέλος_αν

ότι είναι ισοδύναμο με

Αν Σ1 Τότε
  Εντολές
Αλλιώς_Αν Σ2 Τότε
  Εντολές
Τέλος_Αν

Νομίζω το πιο πάνω ισοδυναμεί καλύτερα γιατί δείχνει και το short-circuit evaluation
Τίτλος: Απ: ΕΡΩΤΗΣΗ ΣΤΗ ΔΟΜΗ ΕΠΙΛΟΓΗΣ
Αποστολή από: Jimbo στις 01 Νοε 2012, 08:12:38 ΜΜ
Πιστεύω και εγώ οτι  πιο κοντά είναι η απάντηση του evry.
AN Σ1 ΤΟΤΕ
ΕΝΤ
ΤΕΛΟΣ_ΑΝ
ΑΝ Σ2 ΤΟΤΕ
ΕΝΤ
ΤΕΛΟΣ_ΑΝ


Ευχαριστώ πολύ  :)
Τίτλος: Απ: ΕΡΩΤΗΣΗ ΣΤΗ ΔΟΜΗ ΕΠΙΛΟΓΗΣ
Αποστολή από: petrosp13 στις 01 Νοε 2012, 09:51:08 ΜΜ
Βέβαια, έτσι μπορεί να εκτελεστούν 2 φορές οι εντολές, αν ισχύουν και οι δυο συνθήκες
Τίτλος: Απ: ΕΡΩΤΗΣΗ ΣΤΗ ΔΟΜΗ ΕΠΙΛΟΓΗΣ
Αποστολή από: Λευτέρης Δουκέρης στις 01 Νοε 2012, 11:33:59 ΜΜ
Καλησπέρα.
Καταρχάς πολύ καλή ερώτηση .

ΑΝ Σ1 Η Σ2 ΤΟΤΕ
ΕΝΤΟΛΕΣ.....

Οι πίνακας αληθείας για την παραπάνω δομή είναι:
Σ1   Σ2   Σ1 ή Σ2 (στο αληθής εκτελούνται οι εντολές)
Α   Α   Εκτελούνται οι εντολές
Ψ   Α   Εκτελούνται οι εντολές
Α   Ψ   Εκτελούνται οι εντολές
Ψ   Ψ   ΔΕΝ Εκτελούνται οι εντολές


Άρα πετυχαίνω τον ίδιο πίνακα αληθείας με τον παρακάτω ισοδύναμο τμήμα αλγόριθμου:

ΑΝ Σ1 ΤΟΤΕ
ΕΝΤΟΛΕΣ
ΑΛΛΙΩΣ
ΑΝ Σ2 ΤΟΤΕ
ΕΝΤΟΛΕΣ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ


Συμφωνώ ότι η παρακάτω λύση

AN Σ1 ΤΟΤΕ
ΕΝΤ
ΤΕΛΟΣ_ΑΝ
ΑΝ Σ2 ΤΟΤΕ
ΕΝΤ
ΤΕΛΟΣ_ΑΝ
Μπορεί να οδηγήσει στον να εκτελεστούν δύο φορές οι εντολές στην περίπτωση που

Σ1   Σ2   εξοδος
Α   Α   Εκτελούνται οι εντολές δύο φορές
Άρα δεν είναι σωστή σε αυτή την περίπτωση η παραπάνω λύση.
Τίτλος: Απ: ΕΡΩΤΗΣΗ ΣΤΗ ΔΟΜΗ ΕΠΙΛΟΓΗΣ
Αποστολή από: vaggelism στις 03 Νοε 2012, 12:22:14 ΠΜ
ΘΑ ΜΠΟΡΟΥΣΕΣ ΝΑ ΤΟ ΚΑΝΕΙΣ : ΑΝ Σ1 ΤΟΤΕ
                                                        ΕΝΤΟΛΕΣ
                                                    ΤΕΛΟΣ_ΑΝ
                                                   ΑΝ Σ2 ΚΑΙ ΟΧΙ Σ1 ΤΟΤΕ
                                                       ΕΝΤΟΛΕΣ
                                                    ΤΕΛΟΣ_ΑΝ


ΜΠΟΡΕΙΤΕ ΝΑ ΤΟ ΤΡΕΞΕΤΕ ΣΤΗ ΓΛΩΣΣΑ ΜΕ ΑΥΤΟ ΤΟ ΠΑΡΑΔΕΙΓΜΑ:
Αλγόριθμος ΠΧ
Διάβασε Β
Αν Β > 0 τότε
  Β<-- 2*Β
Τέλος_αν
Αν Β < 0 και όχι Β > 0 τότε
  Β <--2*Β
Τέλος_αν
Εμφάνισε Β
Τέλος ΠΧ
Τίτλος: Απ: ΕΡΩΤΗΣΗ ΣΤΗ ΔΟΜΗ ΕΠΙΛΟΓΗΣ
Αποστολή από: evry στις 03 Νοε 2012, 09:16:10 ΠΜ
Το αποτέλεσμα είναι το ίδιο όσον αφορά την έξοδο αλλά τα βήματα και οι υπολογισμοί που γίνονται δεν είναι τα ίδια.
Δηλαδή αν θέλαμε να δείξουμε στους μαθητές πως υλοποιείται ο λογικός τελεστής Ή ή το ΚΑΙ εσωτερικά η επιλογή της αλλιώς_αν ή με εμφωλευμένα Αν είναι νομίζω η καλύτερη λύση
Τίτλος: Απ: ΕΡΩΤΗΣΗ ΣΤΗ ΔΟΜΗ ΕΠΙΛΟΓΗΣ
Αποστολή από: Gnirut στις 03 Νοε 2012, 09:12:59 ΜΜ
Μια προσέγγιση:

Κώδικας [Επιλογή]
 
ΑΝ ΟΧΙ Σ1 ΤΟΤΕ
    ΑΝ ΟΧΙ Σ2 ΤΟΤΕ
      ! Μην κάνεις τίποτα
    ΑΛΛΙΩΣ
      ! ΕΝΤΟΛΕΣ
    ΤΕΛΟΣ_ΑΝ
ΑΛΛΙΩΣ
    ! ΕΝΤΟΛΕΣ
ΤΕΛΟΣ_ΑΝ
Τίτλος: Απ: ΕΡΩΤΗΣΗ ΣΤΗ ΔΟΜΗ ΕΠΙΛΟΓΗΣ
Αποστολή από: marvic στις 23 Οκτ 2014, 12:55:58 ΜΜ
Καλησπέρα,
Θα ήθελα να ρωτήσω εάν η πολλαπλή Δομή επιλογής μπορεί να φ=γραφεί και με διαφορετικό τρόπο.
Συγκεκριμένα:

Αν συνθήκη-1 τότε
    εντολή1
αλλιώς_αν συνθήκη-2 τότε
   εντολή2
αλλιώς
   εντολή
Τέλος_αν

να γραφεί ως εξής:

Αν συνθήκη-1 τότε εντολή1
αλλιώς_αν συνθήκη-2 τότε εντολή2
εντολή
τέλος_αν

Και αν ναι γιατι?
Ευχαριστώ!!!
Τίτλος: Απ: ΕΡΩΤΗΣΗ ΣΤΗ ΔΟΜΗ ΕΠΙΛΟΓΗΣ
Αποστολή από: Σπύρος Δουκάκης στις 23 Οκτ 2014, 01:23:51 ΜΜ
Δες παράδειγμα 5 σελ. 19 από το τετράδιο μαθητή.

Παράθεση από: marvic στις 23 Οκτ 2014, 12:55:58 ΜΜ
Καλησπέρα,
Θα ήθελα να ρωτήσω εάν η πολλαπλή Δομή επιλογής μπορεί να φ=γραφεί και με διαφορετικό τρόπο.
Συγκεκριμένα:

Αν συνθήκη-1 τότε
    εντολή1
αλλιώς_αν συνθήκη-2 τότε
   εντολή2
αλλιώς
   εντολή
Τέλος_αν

να γραφεί ως εξής:

Αν συνθήκη-1 τότε εντολή1
αλλιώς_αν συνθήκη-2 τότε εντολή2
εντολή
τέλος_αν

Και αν ναι γιατι?
Ευχαριστώ!!!
Τίτλος: Απ: ΕΡΩΤΗΣΗ ΣΤΗ ΔΟΜΗ ΕΠΙΛΟΓΗΣ
Αποστολή από: marvic στις 23 Οκτ 2014, 01:37:43 ΜΜ
Ευχαριστώ πολύ,  ;)

αλλά στην περίπτωση αλλιώς? Πώς θα συνταχθεί?
Αν......
αλλιώς_αν....
αλλιώς_αν...
αλλιώς_αν..
αλλιώς
   εντολή
τέλος_αν
Τίτλος: Απ: ΕΡΩΤΗΣΗ ΣΤΗ ΔΟΜΗ ΕΠΙΛΟΓΗΣ
Αποστολή από: Σπύρος Δουκάκης στις 23 Οκτ 2014, 01:54:28 ΜΜ
Αν σ1 τότε εντολή1
αλλιώς_αν σ2 τότε εντολή2
αλλιώς_αν σ3 τότε εντολή3
αλλιώς εντολή4
τέλος_αν