Διαγράμματα Ροής και Μετατροπές στο ΑΕΠΠ
Οι βασικές δομές ελέγχου ενός αλγορίθμου είναι η ακολουθία, η επιλογή και η επανάληψη. Στη σελίδα αυτή παρουσιάζονται οι μορφές των δομών επιλογής και επανάληψης, οι ισοδύναμες μετατροπές τους και τα αντίστοιχα διαγράμματα ροής. Θα πρέπει να ξεκαθαρίσουμε πως τα διαγράμματα ροής και οι μετατροπές είναι δυο πολύ κλασικές κατηγορίες για ΘΕΜΑ Α ή ΘΕΜΑ Β στις πανελλήνιες εξετάσεις.
Θα αναλύσουμε κάθε πιθανή μετατροπή στην δομή επιλογής και στη δομή επανάληψης καθώς και τις πιθανές εξαιρέσεις αυτών για να είσαστε έτοιμοι να αντιμετωπίσετε θέματα απο την τράπεζα θεμάτων αλλά και από παλαιότερα έτη πανελλαφικών εξετάσεων κλιμακούμενης δυσκολίας. Το ίδιο ακριβώς θα κάνουμε και με τα διαγράμματα ροής τα οποία μπορούν να μας τα ζητήσουν στις εξετάσεις αμφίδρομα. Από αλγόριθμο σε διάγραμμα ροής ή απο διάγραμμα ροής σε αλγόριθμο. Πολύ μεγάλη προσοχή και εδώ γιατί υπάρχουν περιπτώσεις εξαιρέσεων.
Σύμβολα διαγραμμάτων ροής
Στον πίνακα παρακάτω μπορείτε να δείτε όλα τα σύμβολα που θα μας χρησιμεύσουν για να κατασκευάσουμε διαγράμματα ροής στα πρότυπα των πανελλαδικών εξετάσεων. Προσοχή ! Τα σχήματα πρέπει να είναι ξεκάθαρα και όχι περίεργα γραμμένα, γιατί έτισ μπορείτε να χάσετε μόρια από τον διορθώτη, επειδή θα υποθέσει ότι δεν ξέρετε το ακριβές σχήμα. Πχ. το οβάλ πρέπει να είναι οβαλ και όχι κύκλος, το πλάγιο παραλληλόγραμμό πρέπει να είναι πλάγιο και όχι μισό ορθογώνιο.| Σχήμα | Χρήση |
|---|---|
| Οβάλ | Αρχή ή τέλος του αλγορίθμου. |
| Πλάγιο παραλληλόγραμμο | Είσοδος ή έξοδος δεδομένων, όπως Διάβασε, Εμφάνισε και Γράψε. |
| Ορθογώνιο | Επεξεργασία, υπολογισμός ή εκχώρηση. |
| Ρόμβος | Έλεγχος συνθήκης ή απόφαση. |
| Βέλος | Κατεύθυνση εκτέλεσης του αλγορίθμου. |
Διαγράμματα Ροής Δομής Επιλογής
Η δομή επιλογής επιτρέπει την εκτέλεση διαφορετικών εντολών ανάλογα με το αποτέλεσμα μιας συνθήκης. Η συνθήκη μπορεί να είναι αληθής ή ψευδής. Σε αυτή τη δομή μπορεί να συνατήσουμε στις πανελλήνιες εξετάσεις περιπτώσεις Απλής δομής, σύνθετης δομής, πολλαπλής δομής, εμφωλευμένης δομής καθώς και ΕΠΙΛΕΞΕ. Σε όλες τις περιπτώσεις διαγράμματος ροής της δομής επιλογής βασικό ρόλο παίζει η συνθηκη ελέγχου η οποία συμβολίζεται με ρόμβο.
Απλή επιλογή
Στην απλή επιλογή οι εντολές εκτελούνται μόνο όταν η συνθήκη είναι αληθής. Αν η συνθήκη είναι ψευδής, η εκτέλεση συνεχίζεται μετά το τέλος της επιλογής. Προφανώς λοιπόν στην απλή δομή επιλογής αν η συνθήκη δεν ισχύει τότε στο διάγραμμα ροής το Ψευδές θα παραμείνει κενό και θα ενωθεί κατευθείαν με το Αληθές.
| Παράδειγμα | Διάγραμμα ροής |
|---|---|
Αν η τιμή του x είναι μεγαλύτερη από το μηδέν, εμφανίζεται το μήνυμα «Θετικός». Αν η συνθήκη είναι ψευδής, δεν εκτελείται καμία εντολή μέσα στην επιλογή. |
Σύνθετη επιλογή
Στη σύθετη επιλογή εκτελείται ένα σύνολο εντολών όταν η συνθήκη είναι αληθής και διαφορετικό σύνολο εντολών όταν η συνθήκη είναι ψευδής. Στο αληθής (ναι) της συνθήκης πηγαίνουν οι εντολές που ισχύουν όταν ισχύει το Αν και στο ψευδές (όχι) πηγαίνουν οι εντολές που ισχύουν όταν το Αν δεν εκτελείται. Δεν μπορεί λοιπόν να ισχύει και το Ναι και το Οχι, μόνο μία πό τις δύο περιπτώσεις.
| Παράδειγμα | Διάγραμμα ροής |
|---|---|
Αν ο βαθμός είναι μεγαλύτερος ή ίσος με 10, εμφανίζεται «Επιτυχία». Διαφορετικά εμφανίζεται «Αποτυχία». Δεν χρειάζεται να αιτιολογήσουμε την περίπτωση που παίρνουμε στο αλλιώς, μιας και θεωρείται από το σύστημα ότι είναι το αντίθετο του Αν. Δεν χρειάζεται δηλαδή να πούμε "αλλιώς_αν βαθμπος < 10 τότε" . |
Πολλαπλή επιλογή με ΑΛΛΙΩΣ_ΑΝ
Η μορφή ΑΛΛΙΩΣ_ΑΝ χρησιμοποιείται όταν υπάρχουν περισσότερες από δύο εναλλακτικές περιπτώσεις. Οι συνθήκες ελέγχονται διαδοχικά μέχρι να βρεθεί η πρώτη αληθής συνθήκη και αφού εκτελεστεί αυτή τότε όλες οι υπόλοιπες δεν εκτελούνται. Το αλλιώς_αν ελέγχει την κάθε περίπτωση που θέλει αναφέροντας τη συνθήκη από δίπλα τους
| Παράδειγμα | Διάγραμμα ροής |
|---|---|
Ελέγχεται πρώτα αν ο βαθμός είναι τουλάχιστον 18. Αν όχι, ελέγχεται αν είναι τουλάχιστον 10. Αν καμία συνθήκη δεν είναι αληθής, εμφανίζεται «Αποτυχία». |
Πολλαπλή επιλογή με ΕΠΙΛΕΞΕ
Η εντολή ΕΠΙΛΕΞΕ χρησιμοποιείται όταν η επιλογή εξαρτάται από τις διαφορετικές τιμές μιας έκφρασης. Στην πραγματικότητα δεν θα χρειαστεί να εκτελέσετε την εντολή ΕΠΙΛΕΞΕ σε θέμα Γ και θέμα Δ των πανελλαδικών εξετάσεων, μιας και αυτό μπορεί να γίνει με πολλαπλή δομή επογής ΑΝ. Αυτό όμως που είναι πολύ πιθανό να σας ζητηθεί είναι το διάγραμμα ροής του ΕΠΙΛΕΞΕ ή η μετατροπή σε πρώτη φάση του ΑΝ...ΑΛΛΙΩΣ_ΑΝ σε ΕΠΙΛΕΞΕ και μετά το διάγραμμα ροής.
| Παράδειγμα | Διάγραμμα ροής |
|---|---|
Η τιμή της μεταβλητής επιλογή συγκρίνεται με τις διαθέσιμες περιπτώσεις. Αν δεν ταιριάζει με καμία από αυτές, εκτελείται η ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ. ΠΡΟΣΟΧΗ, ελέγχονται όλες οι περιπτώσεις που αναφέρονται μέχρι και να βρέθει αυτή που ισχύει, όπως ακριβώς και στην πολλαπλή δομή επιλογής με ΑΝ. Το ουσιαστικό σκέλος που εξετάζεται στις πανελλήνιες εξετάσεις είναι η γνώση της επιλογής που θα μπέι στο ΕΠΙΛΕΞΕ. |
Μετατροπές δομών επιλογής στο ΑΕΠΠ
Μετατροπή σύνθετης επιλογής σε δύο απλές επιλογές
Η μετατροπή είναι ισοδύναμη όταν οι δύο συνθήκες είναι συμπληρωματικές και οι εντολές της μίας περίπτωσης δεν επηρεάζουν τον έλεγχο της άλλης. Πολύ μεγάλη προσοχή, το αλλιώς εξετάζει το ανάποδο της συνθήκης του ΑΝ, αυτό σημαίνει ότι αν λέει πχ το ΑΝ α<0 τότε το αλλιώς εννοεί >= του 0. Οι περισσότεροι μαθητές στις εξετάσεις της πληροφορικής μπερδεύονται και δεν βάζουν το =.
ΑΝ x > 0 ΤΟΤΕ
Εμφάνισε 'Θετικός'
ΑΛΛΙΩΣ
Εμφάνισε 'Μη θετικός'
ΤΕΛΟΣ_ΑΝ
Ισοδύναμη μορφή μετά τη μετατροπή που είναι αποδεκτή στις πανελλαδικές εξετάσεις του ΑΕΠΠ:
ΑΝ x > 0 ΤΟΤΕ
Εμφάνισε 'Θετικός'
ΤΕΛΟΣ_ΑΝ
ΑΝ x <= 0 ΤΟΤΕ
Εμφάνισε 'Μη θετικός'
ΤΕΛΟΣ_ΑΝ
Μετατροπή ΑΛΛΙΩΣ_ΑΝ σε εμφωλευμένες ΑΝ
ΑΝ βαθμός >= 18 ΤΟΤΕ
Εμφάνισε 'Άριστα'
ΑΛΛΙΩΣ_ΑΝ βαθμός >= 10 ΤΟΤΕ
Εμφάνισε 'Επιτυχία'
ΑΛΛΙΩΣ
Εμφάνισε 'Αποτυχία'
ΤΕΛΟΣ_ΑΝ
Ισοδύναμη μορφή μετά τη μετατροπή που είναι αποδεκτή στις πανελλήνιες εξετάσεις της Πληροφορικής:
ΑΝ βαθμός >= 18 ΤΟΤΕ
Εμφάνισε 'Άριστα'
ΑΛΛΙΩΣ
ΑΝ βαθμός >= 10 ΤΟΤΕ
Εμφάνισε 'Επιτυχία'
ΑΛΛΙΩΣ
Εμφάνισε 'Αποτυχία'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
Μετατροπή πολλαπλής επιλογής με ΑΝ σε ΕΠΙΛΕΞΕ
Όταν πολλές εναλλακτικές περιπτώσεις βασίζονται στις διαφορετικές τιμές της ίδιας μεταβλητής, η διαδοχική επιλογή μπορεί να μετατραπεί σε εντολή ΕΠΙΛΕΞΕ.
| Αρχική μορφή με ΠΟΛΛΑΠΛΗ ΔΟΜΗ ΑΝ | Ισοδύναμη μορφή με ΕΠΙΛΕΞΕ |
|---|---|
|
|
Μετατροπή επιλογής με λογικούς τελεστές σε επιλογή χωρίς λογικούς τελεστές
Μια σύνθετη συνθήκη με τους λογικούς τελεστές ΚΑΙ, Η και ΟΧΙ μπορεί να μετατραπεί σε εμφωλευμένες δομές επιλογής. Με αυτόν τον τρόπο ελέγχουμε κάθε επιμέρους συνθήκη χωριστά.
| Αρχική μορφή με λογικούς τελεστές | Ισοδύναμη μορφή χωρίς λογικούς τελεστές |
|---|---|
|
|
Παρατήρηση για τη μετατροπή
Η δεύτερη μορφή δεν χρησιμοποιεί τους λογικούς τελεστές ΚΑΙ, Η ή ΟΧΙ. Η λειτουργία του ΚΑΙ αποδίδεται με εμφώλευση: πρώτα ελέγχεται η πρώτη συνθήκη και, μόνο αν είναι αληθής, ελέγχεται η δεύτερη. Σε περίπτωση που έχουμε 'Η και θέλουμε να το αντικαταστήσουμε, τότε μπορούμε να χρησιμοποιήσουμε αλλιώς_αν. Στην περίπτωση που έχουμε το λογικό τελεστή ΟΧΙ, τότε τα πράγματα είναι απλά μιας και για να τον αντικαταστήσουμε χρειάζεται να βάλουμε τα αντίστροφα που έχει η συνθήκη του.
Διαγράμματα δομών επανάληψης
Η δομή επανάληψης εκτελεί μια ομάδα εντολών περισσότερες από μία φορές. Η επιλογή της κατάλληλης δομής εξαρτάται από το πότε ελέγχεται η συνθήκη και από το αν είναι γνωστό το πλήθος των επαναλήψεων. Σε περίπτωση που δεν ξέρουμε πόσες επαναλήψεις θα γίνουν, αλλά ξέρουμε πότε θα τερματίζεται η επανάληψη, τότε χρησιμοποιούμε την εντολή του ΟΣΟ ή την εντολή του ΜΕΧΡΙΣ_ΟΤΟΥ. Σε περίπτωση που ξέρουμε το ακριβές πλήθος επαναλήψεων τότε χρησιμοποιούμε την επανάληψη του ΓΙΑ.
Διάγραμμα Επανάληψης του Οσο
ΟΣΟ συνθήκη ΕΠΑΝΑΛΑΒΕ
εντολές
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Η συνθήκη ελέγχεται στην αρχή. Αν είναι εξαρχής ψευδής, το σώμα της επανάληψης δεν εκτελείται. ΠΡΟΣΟΧΗ όμως, η συνθήκη του Όσο ελέγχεται πάντα τουλάχιστον 1 φορά.
Διάγραμμα Επανάληψης με ΜΕΧΡΙΣ_ΟΤΟΥ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
εντολές
ΜΕΧΡΙΣ_ΟΤΟΥ συνθήκη
Η συνθήκη ελέγχεται στο τέλος. Επομένως, το σώμα της επανάληψης εκτελείται τουλάχιστον μία φορά. Αυτή είναι και η βασική διαφορά με το ΌΣΟ, δεν υπάρχει κάποιος κανόνας για τον λόγο που πρέπει να επιλέξουμε όσο ή μέχρις_ότου. Οπότε η επιλογή την εντολής επανάληψης στις εξετάσεις ΑΕΠΠ είναι δική σας.
Διάγραμμα Επανάληψης με ΓΙΑ
ΓΙΑ i ΑΠΟ αρχική_τιμή ΜΕΧΡΙ τελική_τιμή με_βήμα τιμή
εντολές
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Η δομή ΓΙΑ χρησιμοποιείται όταν είναι γνωστό ή μπορεί να προσδιοριστεί το πλήθος των επαναλήψεων. Προσοχή, όταν έχουμε βήμα 0 εκτελούνται άπειρες επαναλήψεις και δεν έχουμε αλγόριθμο αλλά υπολογιστική διαδικασία.
Μετατροπές μεταξύ δομών επανάληψης
Μετατροπή από ΓΙΑ σε ΟΣΟ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
Εμφάνισε i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
i <- 1
ΟΣΟ i <= 10 ΕΠΑΝΑΛΑΒΕ
Εμφάνισε i
i <- i + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Μετατροπή φθίνουσας ΓΙΑ σε ΟΣΟ
ΓΙΑ i ΑΠΟ 10 ΜΕΧΡΙ 1 ΜΕ_ΒΗΜΑ -1
Εμφάνισε i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
i <- 10
ΟΣΟ i >= 1 ΕΠΑΝΑΛΑΒΕ
Εμφάνισε i
i <- i - 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Μετατροπή από ΟΣΟ σε ΜΕΧΡΙΣ_ΟΤΟΥ
Η απλή αντικατάσταση δεν είναι πάντα ισοδύναμη, επειδή η ΟΣΟ μπορεί να εκτελεστεί μηδέν φορές, ενώ η ΜΕΧΡΙΣ_ΟΤΟΥ εκτελείται τουλάχιστον μία φορά. Για το λόγο αυτό στις πανελλαδικές εξετάσεις επιλέγουμε όταν μετατρέπουμε το όσο σε μέχρις_ότου να βάζουμε και ένα εξτρα αν πάνω από το αρχή _επανάληψης ώστε αν δεν γίνει το όσο να μην γίνει και το μέχρις_ότου. ΠΡΟΣΟΧΗ:το αν θα αναφέρει τη συνθήκη που αναφέρει και το όσο.
ΟΣΟ x <= 100 ΕΠΑΝΑΛΑΒΕ
x <- x + 10
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ x <= 100 ΤΟΤΕ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
x <- x + 10
ΜΕΧΡΙΣ_ΟΤΟΥ x > 100
ΤΕΛΟΣ_ΑΝ
Μετατροπή από ΜΕΧΡΙΣ_ΟΤΟΥ σε ΟΣΟ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
Διάβασε x
ΜΕΧΡΙΣ_ΟΤΟΥ x > 0
Διάβασε x
ΟΣΟ x <= 0 ΕΠΑΝΑΛΑΒΕ
Διάβασε x
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Συμπεράσματα Διαγραμμάτων Ροής και Μετατροπών στο ΑΕΠΠ
1) Η επιλογή της κατάλληλης δομής εξαρτάται από το πρόβλημα.
2) Η δομή επιλογής ΑΝ και η
ΕΠΙΛΕΞΕ χρησιμοποιούνται για πολλαπλές επιλογές,
3) οι δομές επανάληψης ΟΣΟ, ΜΕΧΡΙΣ_ΟΤΟΥ και ΓΙΑ
χρησιμοποιούνται για επαναλήψεις γνωστου και άγνωστου πλήθους φορών.
4) Σε κάθε μετατροπή πρέπει να διατηρείται
η ίδια λογική εκτέλεσης και να ελέγχεται ιδιαίτερα το πλήθος των επαναλήψεων, πολύ προσοχή στη μετατροπή από και προς το μέχρις_ότου.
Συχνές Ερωτήσεις
Ποια είναι η βασική διαφορά ανάμεσα στην επιλογή και την επανάληψη;
Η επιλογή εκτελεί διαφορετικές εντολές ανάλογα με μια συνθήκη, ενώ η επανάληψη εκτελεί την ίδια ομάδα εντολών πολλές φορές. Στην επιλογή οι κλάδοι συνήθως ολοκληρώνονται και ενώνονται, ενώ στην επανάληψη υπάρχει επιστροφή στον έλεγχο.
Ποιο σχήμα χρησιμοποιούμε για είσοδο και έξοδο δεδομένων;
Για είσοδο και έξοδο δεδομένων χρησιμοποιούμε πλάγιο παραλληλόγραμμο. Σε αυτό το σχήμα γράφονται εντολές όπως Διάβασε, Εμφάνισε και Γράψε.
Ποιο σχήμα χρησιμοποιούμε για τον έλεγχο μιας συνθήκης;
Για τον έλεγχο μιας συνθήκης χρησιμοποιούμε ρόμβο. Από τον ρόμβο ξεκινούν οι διαφορετικές διαδρομές, όπως «ΝΑΙ» και «ΟΧΙ» ή «Αληθής» και «Ψευδής».
Πότε χρησιμοποιούμε τη δομή ΓΙΑ;
Χρησιμοποιούμε τη δομή ΓΙΑ όταν είναι γνωστό ή μπορεί να προσδιοριστεί το πλήθος των επαναλήψεων. Η μεταβλητή ελέγχου αρχικοποιείται, συγκρίνεται με την τελική τιμή και μεταβάλλεται αυτόματα.
Ποια επανάληψη μπορεί να εκτελεστεί μηδέν φορές;
Η επανάληψη ΟΣΟ μπορεί να εκτελεστεί μηδέν φορές, επειδή η συνθήκη ελέγχεται πριν από την εκτέλεση του σώματος. Αν η συνθήκη είναι εξαρχής ψευδής, το σώμα δεν εκτελείται.
Ποια επανάληψη εκτελείται τουλάχιστον μία φορά;
Η επανάληψη ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ... ΜΕΧΡΙΣ_ΟΤΟΥ εκτελείται τουλάχιστον μία φορά, επειδή η συνθήκη ελέγχεται μετά την εκτέλεση του σώματος.
Πώς μετατρέπουμε μια επανάληψη ΓΙΑ σε ΟΣΟ;
Μεταφέρουμε την αρχικοποίηση πριν από την ΟΣΟ, τη συνθήκη στην εντολή ΟΣΟ και τη μεταβολή της μεταβλητής στο τέλος του σώματος της επανάληψης.
Τι πρέπει να προσέχουμε όταν μετατρέπουμε ΟΣΟ σε ΜΕΧΡΙΣ_ΟΤΟΥ;
Πρέπει να μετατρέψουμε τη συνθήκη συνέχισης σε συνθήκη τερματισμού, δηλαδή να χρησιμοποιήσουμε την άρνησή της. Επίσης, πρέπει να ελέγξουμε αν η αρχική ΟΣΟ μπορεί να μην εκτελεστεί καθόλου, επειδή η ΜΕΧΡΙΣ_ΟΤΟΥ εκτελείται υποχρεωτικά τουλάχιστον μία φορά.

