Η
ΑΝ Σ1 ΚΑΙ Σ2 ΤΟΤΕ
ΕΝΤΟΛΕΣ.....
..........
γράφεται με απλές συνθήκες ως
ΑΝ Σ1 ΤΟΤΕ
ΑΝ Σ2 ΤΟΤΕ
ΕΝΤΟΛΕΣ....
.......
η παρακάτω δομή επιλογής πως μετατρέπεται σε απλές συνθήκες
ΑΝ Σ1 Η Σ2 ΤΟΤΕ
ΕΝΤΟΛΕΣ.....
..........
Αν και δεν πολυκαταλαβαίνω το λόγο για να τεντώσουμε τόσο το σκοινί :) ένα τρόπος που μου ήρθε είναι ο εξής:
λ<-ψευδής
Αν Σ1 τότε
λ<-Αληθής
Τέλος_αν
Αν Σ2 τότε
λ<-Αληθής
Τέλος_αν
Αν λ = αληθής τότε
εντολές
Τέλος_αν
Οταν λέμε απλές συνθήκες εννοούμε να μη χρησιμοποιούνται λογικοί τελεστές. Οπότε γράφεται:
αν Σ1 τότε
......αν Σ2 τότε
.............Ε1
......αλλιώς
.............Ε2
......Τέλος_αν
αλλιώς
......Ε2
Τέλος_αν
Δεν είμαι σίγουρος αλλά μήπως εννοεί το παρακάτω;
Αν Σ1 ή Σ2 τότε
Εντολές
Τέλος_αν
ότι είναι ισοδύναμο με
Αν Σ1 Τότε
Εντολές
Αλλιώς_Αν Σ2 Τότε
Εντολές
Τέλος_Αν
Νομίζω το πιο πάνω ισοδυναμεί καλύτερα γιατί δείχνει και το short-circuit evaluation
Πιστεύω και εγώ οτι πιο κοντά είναι η απάντηση του evry.
AN Σ1 ΤΟΤΕ
ΕΝΤ
ΤΕΛΟΣ_ΑΝ
ΑΝ Σ2 ΤΟΤΕ
ΕΝΤ
ΤΕΛΟΣ_ΑΝ
Ευχαριστώ πολύ :)
Βέβαια, έτσι μπορεί να εκτελεστούν 2 φορές οι εντολές, αν ισχύουν και οι δυο συνθήκες
Καλησπέρα.
Καταρχάς πολύ καλή ερώτηση .
ΑΝ Σ1 Η Σ2 ΤΟΤΕ
ΕΝΤΟΛΕΣ.....
Οι πίνακας αληθείας για την παραπάνω δομή είναι:
Σ1 Σ2 Σ1 ή Σ2 (στο αληθής εκτελούνται οι εντολές)
Α Α Εκτελούνται οι εντολές
Ψ Α Εκτελούνται οι εντολές
Α Ψ Εκτελούνται οι εντολές
Ψ Ψ ΔΕΝ Εκτελούνται οι εντολές
Άρα πετυχαίνω τον ίδιο πίνακα αληθείας με τον παρακάτω ισοδύναμο τμήμα αλγόριθμου:
ΑΝ Σ1 ΤΟΤΕ
ΕΝΤΟΛΕΣ
ΑΛΛΙΩΣ
ΑΝ Σ2 ΤΟΤΕ
ΕΝΤΟΛΕΣ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
Συμφωνώ ότι η παρακάτω λύση
AN Σ1 ΤΟΤΕ
ΕΝΤ
ΤΕΛΟΣ_ΑΝ
ΑΝ Σ2 ΤΟΤΕ
ΕΝΤ
ΤΕΛΟΣ_ΑΝ
Μπορεί να οδηγήσει στον να εκτελεστούν δύο φορές οι εντολές στην περίπτωση που
Σ1 Σ2 εξοδος
Α Α Εκτελούνται οι εντολές δύο φορές
Άρα δεν είναι σωστή σε αυτή την περίπτωση η παραπάνω λύση.
ΘΑ ΜΠΟΡΟΥΣΕΣ ΝΑ ΤΟ ΚΑΝΕΙΣ : ΑΝ Σ1 ΤΟΤΕ
ΕΝΤΟΛΕΣ
ΤΕΛΟΣ_ΑΝ
ΑΝ Σ2 ΚΑΙ ΟΧΙ Σ1 ΤΟΤΕ
ΕΝΤΟΛΕΣ
ΤΕΛΟΣ_ΑΝ
ΜΠΟΡΕΙΤΕ ΝΑ ΤΟ ΤΡΕΞΕΤΕ ΣΤΗ ΓΛΩΣΣΑ ΜΕ ΑΥΤΟ ΤΟ ΠΑΡΑΔΕΙΓΜΑ:
Αλγόριθμος ΠΧ
Διάβασε Β
Αν Β > 0 τότε
Β<-- 2*Β
Τέλος_αν
Αν Β < 0 και όχι Β > 0 τότε
Β <--2*Β
Τέλος_αν
Εμφάνισε Β
Τέλος ΠΧ
Το αποτέλεσμα είναι το ίδιο όσον αφορά την έξοδο αλλά τα βήματα και οι υπολογισμοί που γίνονται δεν είναι τα ίδια.
Δηλαδή αν θέλαμε να δείξουμε στους μαθητές πως υλοποιείται ο λογικός τελεστής Ή ή το ΚΑΙ εσωτερικά η επιλογή της αλλιώς_αν ή με εμφωλευμένα Αν είναι νομίζω η καλύτερη λύση
Μια προσέγγιση:
ΑΝ ΟΧΙ Σ1 ΤΟΤΕ
ΑΝ ΟΧΙ Σ2 ΤΟΤΕ
! Μην κάνεις τίποτα
ΑΛΛΙΩΣ
! ΕΝΤΟΛΕΣ
ΤΕΛΟΣ_ΑΝ
ΑΛΛΙΩΣ
! ΕΝΤΟΛΕΣ
ΤΕΛΟΣ_ΑΝ
Καλησπέρα,
Θα ήθελα να ρωτήσω εάν η πολλαπλή Δομή επιλογής μπορεί να φ=γραφεί και με διαφορετικό τρόπο.
Συγκεκριμένα:
Αν συνθήκη-1 τότε
εντολή1
αλλιώς_αν συνθήκη-2 τότε
εντολή2
αλλιώς
εντολή
Τέλος_αν
να γραφεί ως εξής:
Αν συνθήκη-1 τότε εντολή1
αλλιώς_αν συνθήκη-2 τότε εντολή2
εντολή
τέλος_αν
Και αν ναι γιατι?
Ευχαριστώ!!!
Δες παράδειγμα 5 σελ. 19 από το τετράδιο μαθητή.
Παράθεση από: marvic στις 23 Οκτ 2014, 12:55:58 ΜΜ
Καλησπέρα,
Θα ήθελα να ρωτήσω εάν η πολλαπλή Δομή επιλογής μπορεί να φ=γραφεί και με διαφορετικό τρόπο.
Συγκεκριμένα:
Αν συνθήκη-1 τότε
εντολή1
αλλιώς_αν συνθήκη-2 τότε
εντολή2
αλλιώς
εντολή
Τέλος_αν
να γραφεί ως εξής:
Αν συνθήκη-1 τότε εντολή1
αλλιώς_αν συνθήκη-2 τότε εντολή2
εντολή
τέλος_αν
Και αν ναι γιατι?
Ευχαριστώ!!!
Ευχαριστώ πολύ, ;)
αλλά στην περίπτωση αλλιώς? Πώς θα συνταχθεί?
Αν......
αλλιώς_αν....
αλλιώς_αν...
αλλιώς_αν..
αλλιώς
εντολή
τέλος_αν
Αν σ1 τότε εντολή1
αλλιώς_αν σ2 τότε εντολή2
αλλιώς_αν σ3 τότε εντολή3
αλλιώς εντολή4
τέλος_αν