Διδακτικά Βιβλία του Παιδαγωγικού Ινστιτούτου

Αναζήτηση

Βρες
Εμφάνιση

8.1.1 Εντολή ΑΝ

Η δομή επιλογής υλοποιείται στη ΓΛΩΣΣΑ με την εντολή ΑΝ. Η εντολή ΑΝ εμφανίζεται με τρεις διαφορετικές μορφές. Την απλή εντολή ΑΝ…ΤΟΤΕ, την εντολή ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ και τέλος την εντολή ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ ΑΝ. Κάθε εντολή ΑΝ πρέπει να κλείνει με ΤΕΛΟΣ_ΑΝ.

Στην απλούστερη μορφή της η εντολή ΑΝ ελέγχει τη συνθήκη και αν αυτή ισχύει (είναι αληθής), τότε εκτελούνται οι εντολές που περιλαμβάνονται μεταξύ των λέξεων ΤΟΤΕ και ΤΕΛΟΣ_ΑΝ.

Αν για παράδειγμα θέλουμε να υπολογίσουμε τη τετραγωνική ρίζα των αριθμών που διαβάζουμε από το πληκτρολόγιο, τότε το αντίστοιχο τμήμα προγράμματος είναι ΔΙΑΒΑΣΕ α ΑΝ α >=0 ΤΟΤΕ Ρίζα

Η γενική μορφή της εντολής ΑΝ είναι η εξής:

Σύνταξη ΑΝ συνθήκη ΤΟΤΕ εντολή-1 εντολή-2 … εντολή-ν ΤΕΛΟΣ_ΑΝ Παράδειγμα ΑΝ αριθμός > 0 ΤΟΤΕ ΓΡΑΨΕ `Ο αριθμός είναι θετικός' Πλήθος_θετικών

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

Η μορφή αυτής της εντολής ονομάζεται ΑΝ… ΤΟΤΕ… ΑΛΛΙΩΣ.

Στο παράδειγμα του υπολογισμού της τετραγωνικής ρίζας έχουμε ΔΙΑΒΑΣΕ α ΑΝ α >=0 ΤΟΤΕ Ρίζα

Η γενική μορφή της εντολής ΑΝ… ΤΟΤΕ… ΑΛΛΙΩΣ έχει ως εξής:

Σύνταξη ΑΝ συνθήκη ΤΟΤΕ εντολή-1 εντολή-2 … εντολή-ν ΑΛΛΙΩΣ εντολή-1 εντολή-2 … εντολή-ν ΤΕΛΟΣ_ΑΝ Παράδειγμα ΑΝ αριθμός > 0 ΤΟΤΕ ΓΡΑΨΕ `Ο αριθμός είναι θετικός' Πλήθος_θετικών

Η γενική μορφή της εντολής ΑΝ καλύπτει την επιλογή μιας από δύο εναλλακτικές περιπτώσεις.

Όταν οι εναλλακτικές περιπτώσεις είναι περισσότερες από τις δύο, τότε μπορούν να χρησιμοποιηθούν πολλές εντολές ΑΝ η μία μέσα στην άλλη, οι εμφωλευμένες εντολές ΑΝ, όπως ονομάζονται.

Εμφωλευμένα ΑΝ ονομάζονται δύο ή περισσότερες εντολές της μορφής ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ που περιέχονται η μία μέσα στην άλλη.

Για παράδειγμα οι παρακάτω εντολές προγράμματος ,,,,,,, ΔΙΑΒΑΣΕ Βάρος, Ύψος ΑΝ Βάρος < 80 ΤΟΤΕ ΑΝ Ύψος < 1.70 ΤΟΤΕ ΓΡΑΨΕ `Ελαφρύς, κοντός' ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΑΝ ,,,,, Η χρήση εμφωλευμένων εντολών ΑΝ οδηγεί συνήθως σε πολύπλοκες δομές που αυξάνουν την πιθανότητα του λάθους καθώς και τη δυσκολία κατανόησης του προγράμματος.

Πολύ συχνά οι εντολές που έχουν γραφεί με εμφωλευμένα ΑΝ, μπορούν να γραφούν πιο απλά χρησιμοποιώντας σύνθετες εκφράσεις ή την εντολή επιλογής ΑΝ_ΑΛΛΙΩΣ_ΑΝ, που θα παρουσιαστεί στη συνέχεια.

Το προηγούμενο τμήμα προγράμματος μπορεί να γραφεί ως εξής ,,,,,,, ΔΙΑΒΑΣΕ Βάρος, Ύψος ΑΝ Βάρος < 80 ΚΑΙ Ύψος < 1.70 ΤΟΤΕ ΓΡΑΨΕ `Ελαφρύς, κοντός' ΤΕΛΟΣ_ΑΝ ,,,,,

Μία άλλη μορφή επιλογής είναι η εντολή ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ_ΑΝ

Σύνταξη ΑΝ συνθήκη-1 ΤΟΤΕ εντολή-1 εντολή-2 … εντολή-ν ΑΛΛΙΩΣ_AN συνθήκη-2 ΤΟΤΕ εντολή-1 εντολή-2 … εντολή-ν … ΑΛΛΙΩΣ εντολή-1 εντολή-2 … εντολή-ν ΤΕΛΟΣ_ΑΝ Παράδειγμα ΑΝ αριθμός > 0 ΤΟΤΕ ΓΡΑΨΕ `Ο αριθμός είναι θετικός' Πλήθος-θετικών

Παράδειγμα 1 Στο πρόγραμμα του προηγούμενου κεφαλαίου (πωλήσεις υπολογιστών) υποθέτουμε ότι η τιμή των υπολογιστών εξαρτάται από την ποσότητα παραγγελίας. Συγκεκριμένα ισχύουν οι παρακάτω τιμές αγοράς υπολογιστών.

ΠΟΣΟΤΗΤΑ ΤΙΜΗ ΜΟΝΑΔΑΣ 1-50 200,000 51-100 180,000 101-200 160,000 πάνω από 200 150,000

Ο υπολογισμός με χρήση εμφωλευμένων εντολών ΑΝ είναι: ΑΝ Ποσότητα= Κόστος ΑΛΛΙΩΣ ΑΝ Ποσότητα =< 100 ΤΟΤΕ Κόστος ΑΛΛΙΩΣ ΑΝ Ποσότητα =< 200 ΤΟΤΕ Κόστος ΑΛΛΙΩΣ Κόστος ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΑΝ

Το ίδιο πρόγραμμα με τη χρήση της εντολής ΑΝ… ΤΟΤΕ… ΑΛΛΙΩΣ_ΑΝ έχει ως εξής: ΑΝ Ποσότητα= Κόστος Κόστος

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

Ένα συχνό λάθος που παρατηρείται στα προγράμματα είναι ο έλεγχος περιττών συνθηκών. Οι επιπλέον έλεγχοι αυξάνουν την πολυπλοκότητα του προγράμματος.

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

ΑΝ Ποσότητα Κόστος ΑΛΛΙΩΣ_ΑΝ Ποσότητα>50 ΚΑΙ Ποσότητα = Κόστος ΑΛΛΙΩΣ_ΑΝ Ποσότητα>100 ΚΑΙ Ποσότητα = Κόστος ΑΛΛΙΩΣ Κόστος ΤΕΛΟΣ_ΑΝ

Στην πρώτη εντολή ΑΛΛΙΩΣ_ΑΝ ο έλεγχος της συνθήκης Ποσότητα>50 είναι περιττός