Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ Κεφάλαιο 8: Επιλογή και Επανάληψη
8.1 Εντολές επιλογής (1/13) Μια από τις βασικότερες δομές που εμφανίζονται σε ένα πρόγραμμα είναι η δομή επιλογής. Σε πολλά προβλήματα απαιτούνται έλεγχοι. Ανάλογα με τα αποτελέσματα των ελέγχων επιλέγονται οι ενέργειες που θα ακολουθήσουν. Στη δομή επιλογή οι έλεγχοι γίνονται με χρήση λογικών εκφράσεων (ή λογικών συνθηκών). Ανάλογα με την αποτίμηση της έκφρασης (ως ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ) ακολουθείται η κατάλληλη σειρά ενεργειών.
8.1 Εντολές επιλογής (2/13) Οι λογικές εκφράσεις χρησιμοποιούν: Σταθερές Μεταβλητές Αριθμητικές παραστάσεις Συγκριτικούς και λογικούς τελεστές Παρενθέσεις Συγκρίνεται η τιμή μια έκφρασης στα αριστερά από το συγκριτικό τελεστή με την τιμή της έκφρασης δεξιά. Το αποτέλεσμα είναι μια λογική τιμή ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ.
8.1 Εντολές επιλογής (3/13)
8.1 Εντολές επιλογής (4/13) Κανόνες συγκρίσεων: Οι συγκρίσεις γίνονται σε δεδομένα αριθμητικά, αλφαριθμητικά και λογικά. Η σύγκριση μεταξύ δύο αριθμών γίνεται με τον κλασσικό μαθηματικό τρόπο. Η σύγκριση ατομικών χαρακτήρων στηρίζεται στην αλφαβητική σειρά, (Π.χ. το 'α' θεωρείται μικρότερο από το 'β‘). Η σύγκριση αλφαριθμητικών δεδομένων γίνεται χαρακτήρα προς χαρακτήρα σε κάθε θέση μέχρις ότου βρεθεί κάποια διαφορά (π.χ. 'κακός' < 'καλός' αφού το ‘κ’ προηγείται του ‘λ’). Η σύγκριση λογικών έχει έννοια μόνο στην περίπτωση του ίσου ( = ) και του διάφορου (<>) (αφού οι τιμές που μπορούν να έχουν είναι ΑΛΗΘΗΣ και ΨΕΥΔΗΣ).
8.1 Εντολές επιλογής (5/13) Σύνθετες λογικές εκφράσεις: Συχνά χρειάζεται ο συνδυασμός περισσότερων απλών λογικών εκφράσεων. Επιτυγχάνεται με χρήση των τριών λογικών τελεστών: ΟΧΙ ΚΑΙ Ή Οι λογικοί τελεστές έχουν χαμηλότερη προτεραιότητα από τους αριθμητικούς και τους συγκριτικούς.
8.1 Εντολές επιλογής (6/13) Η εντολή ΑΝ: Υλοποιεί τη δομή επιλογής στη ΓΛΩΣΣΑ Έχει τρεις μορφές: ΑΝ…ΤΟΤΕ ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ_ΑΝ Κάθε εντολή αν κλείνει με την εντολή ΤΕΛΟΣ_ΑΝ
8.1 Εντολές επιλογής (7/13) Η εντολή ΑΝ…ΤΟΤΕ:
8.1 Εντολές επιλογής (8/13) Η εντολή ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ:
8.1 Εντολές επιλογής (9/13) Η εντολή ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ (συνέχεια):
8.1 Εντολές επιλογής (10/13) Εμφωλευμένες ΑΝ: Όταν οι εναλλακτικές περιπτώσεις είναι περισσότερες από τις δύο, τότε μπορούν να χρησιμοποιηθούν πολλές εντολές ΑΝ η μία μέσα στην άλλη. Δύο ή περισσότερες εντολές ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ που περιέχονται η μία στην άλλη ονομάζονται εμφωλευμένες ΑΝ.
8.1 Εντολές επιλογής (11/13) Εμφωλευμένες ΑΝ: Συχνά η χρήση των εμφωλευμένων ΑΝ μπορεί να αντικατασταθεί από τη χρήση σύνθετων λογικών εκφράσεων σε μια απλή εντολή ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ
8.1 Εντολές επιλογής (12/13) Η εντολή ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ_ΑΝ:
8.1 Εντολές επιλογής (13/13) Η εντολή ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ_ΑΝ:
8.1 Εντολές επανάληψης (1/13) Η δομή επανάληψης είναι η τρίτη βασική αλγοριθμική δομή που εμφανίζονται σε ένα πρόγραμμα. Χρησιμοποιείται κάθε φορά που έχουμε μια ομάδα εντολών οι οποίες πρέπει να εκτελεστούν πολλές φορές (επαναληπτικά) Οι επαναλήψεις ελέγχονται πάντοτε από κάποια (λογική) συνθήκη, η οποία καθορίζει την έξοδο από το βρόχο (loop) της επανάληψης.
8.2 Εντολές επανάληψης (1/2) Η δομή επανάληψης είναι η τρίτη βασική αλγοριθμική δομή που εμφανίζονται σε ένα πρόγραμμα. Χρησιμοποιείται κάθε φορά που έχουμε μια ομάδα εντολών οι οποίες πρέπει να εκτελεστούν πολλές φορές (επαναληπτικά) Οι επαναλήψεις ελέγχονται πάντοτε από κάποια (λογική) συνθήκη, η οποία καθορίζει την έξοδο από το βρόχο (loop) της επανάληψης.
8.2 Εντολές επανάληψης (2/2) Η ΓΛΩΣΣΑ υποστηρίζει τρεις μορφές της δομή επανάληψης: Η εντολή ΟΣΟ…ΕΠΑΝΑΛΑΒΕ Η επανάληψη ελέγχεται από μία συνθήκη και εκτελείται όσο η συνθήκη παραμένει αληθής. Η εντολή ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ…ΜΕΧΡΙΣ_ΟΤΟΥ Η επανάληψη ελέγχεται από μία συνθήκη και εκτελείται μέχρις ότου η συνθήκη ελέγχου γίνει αληθής Η εντολή ΓΙΑ…ΑΠΟ…ΜΕΧΡΙ Η επανάληψη εκτελείται συγκεκριμένες φορές. Ο αριθμός των επαναλήψεων ελέγχεται από έναν μετρητή.
8.2.1 ΟΣΟ…ΕΠΑΝΑΛΑΒΕ (1/3) Είναι η πιο γενική μορφή της δομής επανάληψης (μπορεί να χρησιμοποιηθεί σε κάθε περίπτωση επανάληψης). Η λογική συνθήκη που ελέγχει την επανάληψη βρίσκεται στην αρχή της επανάληψης και ο βρόχος επαναλαμβάνεται συνεχώς, όσο η συνθήκη αυτή ισχύει
8.2.1 ΟΣΟ…ΕΠΑΝΑΛΑΒΕ (2/3)
8.2.1 ΟΣΟ…ΕΠΑΝΑΛΑΒΕ (3/3)
8.2.2 ΜΕΧΡΙΣ_ΟΤΟΥ (1/3) Η λογική συνθήκη που ελέγχει την επανάληψη ελέγχεται στο τέλος της επανάληψης και ο βρόχος επαναλαμβάνεται συνεχώς μέχρις ότου η συνθήκη αυτή γίνει αληθής
8.2.2 ΜΕΧΡΙΣ_ΟΤΟΥ (2/3)
8.2.2 ΜΕΧΡΙΣ_ΟΤΟΥ (3/3)
8.2.3 ΓΙΑ…ΑΠΟ…ΜΕΧΡΙ (1/5) Χρησιμοποιείται όταν ο αριθμός των επαναλήψεων είναι γνωστός. Λειτουργεί με χρήση μιας μεταβλητής μετρητή Ο μετρητής: Ξεκινά από μια αρχική τιμή Μεταβάλλεται μετά από κάθε εκτέλεση του βρόχου Αν δεν ορίζεται κάποιο ΒΗΜΑ μεταβολής ο μετρητής αυξάνεται κατά ένα (1) Αν ορίζεται ΒΗΜΑ μεταβολής ο μετρητής μεταβάλλεται κατά ΒΗΜΑ (θετικό ή αρνητικό) Η επανάληψη σταματά όταν ο μετρητής ξεπεράσει ένα δεδομένο όριο
8.2.3 ΜΕΧΡΙΣ_ΟΤΟΥ (2/5)
8.2.2 ΜΕΧΡΙΣ_ΟΤΟΥ (3/5)
8.2.3 ΓΙΑ…ΑΠΟ…ΜΕΧΡΙ (4/5) Πολύ συχνά για την επίλυση των προβλημάτων απαιτείται η χρήση εμφωλευμένων βρόχων. Ο ένας βρόχος βρίσκεται μέσα στον άλλο. Κανόνες εμφωλευμένων βρόχων: Ο εσωτερικός βρόχος πρέπει να βρίσκεται ολόκληρος μέσα στον εξωτερικό. Ο βρόχος που ξεκινάει τελευταίος, πρέπει να ολοκληρώνεται πρώτος. Η είσοδος σε κάθε βρόχο υποχρεωτικά γίνεται από την αρχή του. Δεν μπορεί να χρησιμοποιηθεί η ίδια μεταβλητή ως μετρητής δύο ή περισσοτέρων βρόχων που ο ένας βρίσκεται στο εσωτερικό του άλλου.
8.2.2 ΜΕΧΡΙΣ_ΟΤΟΥ (4/4)