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

Γενικό Λύκειο => Δομή επιλογής => Γ΄ Λυκείου => Εντολή ΑΝ => Μήνυμα ξεκίνησε από: dionissis στις 30 Απρ 2010, 09:49:36 πμ

Τίτλος: κάθε εμφωλευμένη ΑΝ γίνεται και με απλές ΑΝ;
Αποστολή από: dionissis στις 30 Απρ 2010, 09:49:36 πμ
Αυτό δεν ισχυέι πάντοτε, όπως στο παρακάτω παράδειγμα:

ΑΝ Χ <> 0 ΚΑΙ Υ<> 0 ΤΟΤΕ
   ΑΝ Χ MOD Υ = 0 Ή Υ MOD X = 0 ΤΟΤΕ
       ΓΡΑΨΕ 'ΠΟΛΛΑΠΛΑΣΙΑ'
   ΑΛΛΙΩΣ
       ΓΡΑΨΕ 'ΟΧΙ ΠΟΛΛΑΠΛΑΣΙΑ'
   ΤΕΛΟΣ_ΑΝ
ΑΛΛΙΩΣ
   ΓΡΑΨΕ 'ΚΑΠΟΙΟΣ ΜΗΔΕΝ'
ΤΕΛΟΣ_ΑΝ
Τίτλος: Απ: κάθε εμφωλευμένη ΑΝ γίνεται και με απλές ΑΝ;
Αποστολή από: evry στις 30 Απρ 2010, 10:40:10 πμ
Δεν κατάλαβα, το παρακάτω εννοείς?

ΑΝ (Χ <> 0 ΚΑΙ Υ<> 0) ΚΑΙ (Χ MOD Υ = 0 Ή Υ MOD X = 0) ΤΟΤΕ
   ΓΡΑΨΕ 'ΠΟΛΛΑΠΛΑΣΙΑ'
ΤΕΛΟΣ_ΑΝ

ΑΝ (Χ <> 0 ΚΑΙ Υ<> 0) ΚΑΙ (Χ MOD Υ <> 0 ΚΑΙ Υ MOD X <> 0) ΤΟΤΕ
   ΓΡΑΨΕ 'ΟΧΙ ΠΟΛΛΑΠΛΑΣΙΑ'
ΤΕΛΟΣ_ΑΝ

ΑΝ (Χ = 0 Η Υ= 0)ΤΟΤΕ
   ΓΡΑΨΕ 'ΚΑΠΟΙΟΣ ΜΗΔΕΝ'
ΤΕΛΟΣ_ΑΝ
Τίτλος: Απ: κάθε εμφωλευμένη ΑΝ γίνεται και με απλές ΑΝ;
Αποστολή από: dionissis στις 30 Απρ 2010, 05:11:20 μμ
Αν το Χ=0 ή το Υ=0 δεν γίνονται οι δύο πρώτες ΑΝ, αφού θα ελεγχθούν και διαιρέσεις με παρονομαστή το μηδέν (0).
Τίτλος: Απ: κάθε εμφωλευμένη ΑΝ γίνεται και με απλές ΑΝ;
Αποστολή από: evry στις 30 Απρ 2010, 05:23:22 μμ
Είσαι σίγουρος ότι δε γίνεται?
Η δεύτερη συνθήκη δεν χρειάζεται να ελεγθεί αν η πρώτη είναι ψευδής.
Δεν λέει πουθενά ότι ισχύει στη ΓΛΩΣΣΑ κάτι τέτοιο αλλά ούτε ότι δεν ισχύει, από την υλοποίηση εξαρτάται
Τίτλος: Απ: κάθε εμφωλευμένη ΑΝ γίνεται και με απλές ΑΝ;
Αποστολή από: dionissis στις 30 Απρ 2010, 05:39:06 μμ
η μετατροπή αυτή σε απλές ΑΝ δεν δουλεύει ούτε στη Γλωσσομάθεια  ούτε στη Γλώσσα, αλλά απ' ότι θυμάμαι σε κάποιες γλώσσες ισχύει αυτό που λες. Το θέμα είναι τι απαντάνε οι μαθητές σε μία τέτοια ερώτηση;

Παρακαλώ θα ήθελα την γνώμη και άλλων συναδέλφων
Ευχαριστώ
Τίτλος: Απ: κάθε εμφωλευμένη ΑΝ γίνεται και με απλές ΑΝ;
Αποστολή από: sstergou στις 30 Απρ 2010, 06:06:19 μμ
Η ερώτηση στην ουσία είναι το αν στην γλώσσα/ψευδογλώσσα έχουμε πλήρη ή μερική αποτίμηση των συνθηκών.

Είχαν γίνει διάφορες κουβέντες στο παρελθόν με την πιο διεξοδική που θυμάμαι να ήταν αυτή : http://alkisg.mysch.gr/steki/index.php?topic=752.0

Προσωπικά κατά την διδασκαλία του μαθήματος θεωρώ ότι υπάρχει πλήρης αποτίμηση των συνθηκών (π.χ. σε ασκήσεις με πίνακες όπου υπάρχει παραβίαση των ορίων)για διδακτικούς λόγους και αφού το βιβλίο αφήνει χωρίς ανάλυση το συγκεκριμένο ζήτημα.
Τίτλος: Απ: κάθε εμφωλευμένη ΑΝ γίνεται και με απλές ΑΝ;
Αποστολή από: evry στις 30 Απρ 2010, 07:26:43 μμ
Κανονικά αποτιμώνται όλες οι συνθήκες στη ΓΛΩΣΣΑ, δεν ήθελα να αμφισβητήσω αυτό
Αυτό που ήθελα να πω είναι πως στο αντι-παράδειγμα που έδωσες για να αποδείξεις τον ισχυρισμό σου πατάς πάνω σε ένα ζήτημα που είναι θέμα "υλοποίησης"  και όχι καθαρά αλγοριθμικής. Έτσι σε μια γλώσσα που επιτρέπει short-circuit evaluation αυτό που θα έλεγες δεν ισχύει. Θα προτιμούσα ένα παράδειγμα που να ισχύει πάντου και να είναι πιο "αλγοριθμικό" ας πούμε.
Τίτλος: Απ: κάθε εμφωλευμένη ΑΝ γίνεται και με απλές ΑΝ;
Αποστολή από: amichail στις 03 Μάι 2010, 08:49:09 μμ
Ένα απλοϊκό παράδειγμα είναι αν έχεις μία boolean μεταβλητή που παίρνει τιμές 0 ή 1 (true ή false) και θες να την αντιστρέψεις.
Ο κώδικας:
Αν Α=0 Τότε
    Α←1
Αλλιώς_Αν Α=1
   Α←0
Τέλος_Αν
δουλεύει
ενώ ο κώδικας:
Αν Α=0 Τότε
   Α←1
Τέλος_Αν
Αν Α=1 Τότε
  Α←0
Τέλος_Αν
προφανώς δεν δουλεύει στην περίπτωση που Α=0 καθώς θα εκτελεστούν σειριακά και οι δύο εντολές.
Κρίσιμο δηλαδή είναι αν επηρεάζεται η συνθήκη από την εκτέλεση της εντολής.
Βέβαια εδώ η εμφωλευμένη Αν είναι περιττή καθώς ισχύει μόνο μία από τις δύο συνθήκες.
Τροποποιήστε για μεταβλητή με παραπάνω τιμές  :D

Τίτλος: Απ: κάθε εμφωλευμένη ΑΝ γίνεται και με απλές ΑΝ;
Αποστολή από: evry στις 03 Μάι 2010, 09:01:09 μμ
Με μια απλή Αν...Τότε

Αν 1=1 Τότε
   Α <-- (Α +1) mod 2
Τέλος_Αν
 :D
Τίτλος: Απ: κάθε εμφωλευμένη ΑΝ γίνεται και με απλές ΑΝ;
Αποστολή από: pgrontas στις 03 Μάι 2010, 09:40:25 μμ
Πάντως το κάθε της αρχικής ερώτησης είναι βαριά κουβέντα. Μπορεί όπως  ανέφερε ο/η amihail να σου βάλει μία εκχώρηση ή ένα διάβασε μέσα στην εξωτερική αν και πριν την εσωτερική που να τροποποιεί μία από τις μεταβλητές που συμμετέχουν στις συνθήκες. Κάτι τέτοιο δεν μπορεί να αναπαρασταθεί σε έκφραση οπότε και η εμφωλευμένη/πολλαπλή αν δεν μπορει να μετατραπεί σε απλές.
Τίτλος: Απ: κάθε εμφωλευμένη ΑΝ γίνεται και με απλές ΑΝ;
Αποστολή από: droopy στις 17 Ιαν 2011, 05:35:17 μμ
Νομίζω ότι το παράδειγμα:
Αν Α=0 Τότε
    Α←1
Αλλιώς_Αν Α=1
   Α←0
Τέλος_Αν

 μετατρέπεται με απλές αν

flag ← 1
Αν Α=0 Τότε
   Α←1
 flag ← 0
Τέλος_Αν
Αν Α=1 ΚΑΙ flag = 1 ΤΟΤΕ
 Α←0
Τέλος_Αν
Τίτλος: Απ: κάθε εμφωλευμένη ΑΝ γίνεται και με απλές ΑΝ;
Αποστολή από: evry στις 17 Ιαν 2011, 05:44:44 μμ
λογικό είναι, χρειάζεσαι τιμή σημαία