Σάββατο, 15 Αυγούστου 2009

Δομή Επιλογής


Πολλές φορές, ανάλογα με τα δεδομένα του προβλήματος καλούμαστε να πάρουμε αποφάσεις μέσα στον αλγόριθμο και να εκτελέσουμε κάποια συγκεκριμένα κομμάτια του αλγορίθμου και να αγνοήσουμε κάποια άλλα. Προκύπτει, λοιπόν, η έννοια της δομής επιλογής.

Η δομή επιλογής είναι από τις βασικότερες δομές για την ανάπτυξη ενός αλγορίθμου. Χρησιμοποιείται για τη λήψη απόφασης μεταξύ δύο διαφορετικών καταστάσεων, εκ των οποίων η μία είναι
αληθής και η άλλη ψευδής. Στα περισσότερα προβλήματα περιλαμβάνονται κάποιοι έλεγχοι δεδομένων. Ανάλογα με τα αποτελέσματά τους επιλέγονται οι ενέργειες (επεξεργασίες) που θα ακολουθήσουν. Για τη διατύπωση των ελέγχων χρησιμοποιούνται λογικές προτάσεις που λέγονται συνθήκες.


Η δομή επιλογής χρησιμοποιείται με τρεις διαφορετικές εκδοχές (μορφές): Τη δομή απλής επιλογής, τη δομή σύνθετης επιλογής και τη δομή πολλαπλής επιλογής.


Η δομή απλής επιλογής συντάσσεται ως εξής:

Αν συνθήκη τότε
εντολή_1
εντολή_2

………
εντολή_ν
Τέλος_αν


Στο παραπάνω σχήμα δίνεται το διάγραμμα ροής της δομής απλής επιλογής.


Η λειτουργία της δομής απλής επιλογής περιγράφεται ως εξής:
  • Αν ισχύει η συνθήκη (δηλαδή αν η συνθήκη είναι αληθής), εκτελούνται οι εντολές μεταξύ τότε και Τέλος_αν.
  • Αν δεν ισχύει η συνθήκη, εκτελείται η εντολή του αλγορίθμου που ακολουθεί μετά το Τέλος_αν.
Παράδειγμα

Να γράψετε αλγόριθμο που να δέχεται είσοδο έναν αριθμό και να επιστρέφει την απόλυτη τιμή του.

Λύση


Με τη δομή σύνθετης επιλογής επιλέγεται η μία από τις δύο ενέργειες (επεξεργασίες) που μπορούν να γίνουν, ανάλογα με την τιμή της συνθήκης.

Συντάσσεται ως εξής:

Αν συνθήκη τότε
ομάδα_εντολών_1
αλλιώς
oμάδα_εντολών_2
Τέλος_αν


Στο παραπάνω σχήμα δίνεται το διάγραμμα ροής δομής σύνθετης επιλογής.

Η λειτουργία της δομής αυτής περιγράφεται ως εξής:
  • Αν ισχύει η συνθήκη εκτελείται η ομάδα_εντολών_1.
  • Διαφορετικά εκτελείται η ομάδα_εντολών_2.

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

Παράδειγμα
Για τον παρακάτω αλγόριθμο να κάνετε το διάγραμμα ροής και να περιγράψετε τι εμφανίζεται στην έξοδο για δύο διαφορετικές εκτελέσεις με εισόδους: i) 5 και ii) -5.

Αρχή
Διάβασε x
Αν x > 0 τότε
Γράψε 'Ο αριθμός είναι θετικός'
Αλλιώς
Γράψε 'Ο αριθμός είναι αρνητικός'
Τέλος_αν
Τέλος

Λύση



Ο παραπάνω αλγόριθμος χρησιμοποιεί τη δομή επιλογής για να περιγράψει έναν αριθμό εισόδου ως αρνητικό ή θετικό. Έτσι για τις παραπάνω εισόδους έχουμε:



Δείτε τη σχετική παρουσίαση


Με τη δομή πολλαπλής επιλογής επιλέγεται μία από τις ενέργειες (επεξεργασίες) που μπορούν να γίνουν, ανάλογα με την τιμή της συνθήκης. Υπάρχουν δύο είδη.

Η πρώτη συντάσσεται ως εξής:


Αν συνθήκη_1 τότε

ομάδα_εντολών_1

αλλιώς_αν συνθήκη_2 τότε
ομάδα_εντολών_2

………
αλλιώς
ομάδα_εντολών_ν
Τέλος_αν

Στο παραπάνω σχήμα δίνεται το διάγραμμα ροής δομής πολλαπλής επιλογής.

Η λειτουργία της δομής αυτής περιγράφεται ως εξής:
  • Αν ισχύει η συνθήκη_1 εκτελείται η ομάδα_εντολών_1.
  • Διαφορετικά αν ισχύει η συνθήκη_2 εκτελείται η ομάδα_εντολών_2.
  • Οπότε η πρώτη συνθήκη που θα βρεθεί αληθής εκτελείται και η ομάδα εντολών.

Παράδειγμα

Να αναπτυχθεί αλγόριθμος ο οποίος θα ζητάει τις τιμές των παραμέτρων a και b και θα επιλύει την πρωτοβάθμια εξίσωση ax + b = 0.
Η ανάπτυξη να γίνει σε διάγραμμα ροής και ΓΛΩΣΣΑ.

Υπόδειξη: Ας θυμηθούμε τη διερεύνηση της πρωτοβάθμιας εξίσωσης από τα Μαθηματικά.
Βάσει των παραπάνω στοιχείων, αποφασίστε ποια δομή είναι η καταλληλότερη και ποιες είναι οι περιπτώσεις που χρειάζονται.

Λύση


Πρόγραμμα σε ΓΛΩΣΣΑ

ΠΡΟΓΡΑΜΜΑ πρωτοβάθμια_εξίσωση
! Πρόγραμμα επίλυσης εξίσωσης α' βαθμού
ΑΡΧΗ
ΓΡΑΨΕ 'Δώσε α:'
ΔΙΑΒΑΣΕ α
ΓΡΑΨΕ 'Δώσε b:'
ΔΙΑΒΑΣΕ b
ΑΝ α <> 0 ΤΟΤΕ
x <- -b/α ΓΡΑΨΕ 'Λύση: ' , x
ΑΛΛΙΩΣ_ΑΝ
b = 0 ΤΟΤΕ
ΓΡΑΨΕ 'Εξίσωση αόριστη'
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'Εξίσωση αδύνατη'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ

Δείτε το σχετικό video:



Η εντολή ΕΠΙΛΕΞΕ ενσωματώνει, στην ουσία, πολλές διαφορετικές επιλογές σε μια συμπαγή δομή. Διευκολύνει σημαντικά τη σύνταξη ενός αλγορίθμου, ιδιαίτερα όταν οι εναλλακτικές επιλογές είναι πολλές. Η γενική μορφή της είναι η εξής:

ΕΠΙΛΕΞΕ επιλογέα
ΠΕΡΙΠΤΩΣΗ λίστα_τιμών_1
ομάδα_εντολών_1
ΠΕΡΙΠΤΩΣΗ λίστα_τιμών_2
ομάδα_εντολών_2
………

ΠΕΡΙΠΤΩΣΗ λίστα_τιμών_ν
ομάδα_εντολών_ν
ΠΕΡIΠΤΩΣΗ_ΑΛΛΙΩΣ
ομάδα_εντολών_αλλιώς
ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ

Λειτουργία της Εντολής

  • Υπολογίζεται η τιμή του επιλογέα.
  • Ανάλογα με την τιμή του επιλογέα, επιλέγεται μία από τις εναλλακτικές ομάδες εντολών και εκτελείται.
  • Αν η τιμή του επιλογέα δεν αντιστοιχεί σε καμία περίπτωση, τότε εκτελούνται οι εντολές μετά τη λέξη ΑΛΛΙΩΣ.


Παράδειγμα


Να γίνει αλγόριθμος ο οποίος θα δέχεται μια τιμή από το 1 έως το 7 και θα επιστρέφει την αντίστοιχη ημέρα της εβδομάδας. Αν η τιμή που θα δοθεί είναι έξω από αυτό το διάστημα να εμφανίζεται ένα μήνυμα λάθους.

Λύση

Αρχή
Διάβαζε τιμή_ημέρας
Επίλεξε τιμή_ημέρας
Περίπτωση 1
Γράψε ’’Κυριακή’’
Περίπτωση 2
Γράψε ’’Δευτέρα’’
Περίπτωση 3
Γράψε ’’Τρίτη’’
Περίπτωση 4
Γράψε ’’Τετάρτη’’
Περίπτωση 5
Γράψε ’’Πέμπτη’’
Περίπτωση 6
Γράψε ’’Παρασκευή’’
Περίπτωση 7
Γράψε ’’Σάββατο’’
Περίπτωση_αλλιώς
Γράψε ’’Λάθος δεδομένα’’
Τέλος_επιλογών
Τέλος

Δείτε το σχετικό video:




Δείτε το 2ο φύλλο εργασίας

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου