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

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

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

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

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

Αλγόριθμος Παράδειγμα_2
   Διάβασε αριθμός
   Αν αριθμός < 0 τότε
      αριθμός αριθμός * (-1)           
   Τέλος_Αν
   Εκτύπωσε αριθμός
Τέλος Παράδειγμα_2

Σχολιασμός διαγράμματος ροής: Ο ρόμβος (έλεγχος συνθήκης) ελέγχει συνθήκες και έχει δυο εξόδους (μια θετική και μια αρνητική στην ερώτηση)

Σχολιασμός ψευδοκώδικα:

  •   Η γενική σύνταξη της δομής επιλογής είναι:

Αν συνθήκη τότε
     
Εντολή1
     

     
ΕντολήN

Τέλος_αν

Παράδειγμα 3: Να διαβαστεί ένας αριθμός και να εκτυπωθεί ο αντίστροφός του αριθμός

Αλγόριθμος Παράδειγμα_3
   Διάβασε αριθμός
   Αν αριθμός <> 0 τότε
      αριθμός 1 / αριθμός           
   Τέλος_Αν
   Εκτύπωσε αριθμός
Τέλος Παράδειγμα_3

Δομή Σύνθετης επιλογής


Η δομή σύνθετης επιλογής χρησιμοποιείται στην περίπτωση που επιθυμούμε να εκτελέσουμε εναλλακτικά δυο ομάδες εντολών. Κριτήριο για το ποιο σετ εντολών θα εκτελεστεί αποτελεί κάποια συνθήκη. Στην περίπτωση που η συνθήκη ισχύει θα εκτελεστεί η πρώτη ομάδα εντολών διαφορετικά θα εκτελεστεί η δεύτερη

Παράδειγμα 4: Να διαβαστούν δύο αριθμοί και να εκτυπωθεί ο μεγαλύτερος από τους δυο

Αλγόριθμος Παράδειγμα_4
   Διάβασε αριθμός1, αριθμός2
   Αν αριθμός1 < αριθμός2 τότε       
        αριθμός αριθμός2
   Αλλιώς
        αριθμός αριθμός1
   Τέλος_Αν
   Εκτύπωσε αριθμός
Τέλος Παράδειγμα_4

 

Παράδειγμα 5: Να διαβαστεί αριθμός και να εκτυπωθεί αντίστοιχο μήνυμα για το αν είναι άρτιος ή περιττός

Αλγόριθμος Παράδειγμα_5             
   Διάβασε αριθμός
   Αν αριθμός mod 2 = 0 τότε
       Εκτύπωσε "Άρτιος"
   Αλλιώς
       Εκτύπωσε "Περιττός"
   Τέλος_Αν
Τέλος Παράδειγμα_5

Δομή πολλαπλής επιλογής

Κάποια προβλήματα απαιτούν την επιλογή μεταξύ περισσοτέρων από δυο περιπτώσεις

Παράδειγμα 6: Να διαβαστεί ο μέσος όρος ενός μαθητή και να εκτυπωθεί χαρακτηρισμός του

Αλγόριθμος Παράδειγμα_6
   Διάβασε βαθμός

    Αν βαθμός < 9,5 τότε
        Εκτύπωσε "Απορρίπτεται"
   Αλλιώς_Αν βαθμός < 16 τότε
        Εκτύπωσε "Καλώς"
   Αλλιώς_Αν βαθμός < 18 τότε
        Εκτύπωσε "Λίαν καλώς"
   Αλλιώς_Αν βαθμός < 20 τότε
        Εκτύπωσε "Άριστα"
   Αλλιώς
        Εκτύπωσε "Λάθος δεδομένο"
   Τέλος_Αν
Τέλος Παράδειγμα_6

    

Αλγόριθμος Παράδειγμα_6
   Διάβασε βαθμός
   Επίλεξε βαθμός
      Περίπτωση < 9,5
           Εκτύπωσε "Απορρίπτεται"
      Περίπτωση < 16
           
Εκτύπωσε "Καλώς"
      Περίπτωση < 18
           
Εκτύπωσε "Λίαν καλώς"
      Περίπτωση < 20
           
Εκτύπωσε "Άριστα"
      Περίπτωση Αλλιώς
     
     
Εκτύπωσε "Λάθος δεδομένο"
   Τέλος_Επιλογών
Τέλος Παράδειγμα_6

Σχολιασμός:

Εμφωλευμένες Δομές

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

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

Έτη υπηρεσίας

Μισθός

Μπόνους

< 10

 

> 10

< 300.000

10 %

> 300.000

12 %

Αλγόριθμος Παράδειγμα_7
   Διάβασε έτη_υπηρεσίας, μισθός
   Αν έτη_υπηρεσίας < 10 τότε
       μπόνους   0
   Αλλιώς
       Αν μισθός < 300000 τότε
              μπόνους   0,1 * μισθός    
       Αλλιώς
              μπόνους   0,12 * μισθός             
       Τέλος_Αν
   Τέλος_Αν
   Εκτύπωσε μπόνους
Τέλος Παράδειγμα_7

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

Πρόταση Α

Πρόταση Β

Α ή Β

Α και Β

όχι Α

Αληθής

Αληθής

Αληθής

Αληθής

Ψευδής

Αληθής

Ψευδής

Αληθής

Ψευδής

Ψευδής

Ψευδής

Αληθής

Αληθής

Ψευδής

Αληθής

Ψευδής

Ψευδής

Ψευδής

Ψευδής

Αληθής

Σχολιασμός πίνακα:

 Η ιεραρχία των πράξεων των λογικών τελεστών είναι: όχι, και, ή

Έτσι, ας υποθέσουμε ότι:             Α=8, Β=2

(Α>=7)

και

(Β=1)

 Ψευδής

 

Ψευδής

 

Ψευδής

         

Α <20

ή

Β<>4

αληθής

 

αληθής

 

Ψευδής

         

Α > Β

και

Β <> 6

 αληθής

 

αληθής

 

αληθής

         

 

όχι

Β < 6

 ψευδής

     

αληθής

         

Α mod 2 = 0

ή

Β mod 2 = 1

αληθής

 

αληθής

 

Ψευδής

Σύμφωνα με τα παραπάνω ο αλγόριθμός του παραδείγματος 7 τροποποιείται ως εξής:

Αλγόριθμος Παράδειγμα_7_εναλλακτικός
   Διάβασε έτη_υπηρεσίας, μισθός
   Αν έτη_υπηρεσίας < 10 τότε
         μπόνους   0
   Τέλος_Αν
   Αν (έτη_υπηρεσίας > 10) και (μισθός < 300000) τότε
         μπόνους   0,1 * μισθός
   Τέλος_Αν
   Αν (έτη_υπηρεσίας > 10) και (μισθός > 300000) τότε
         μπόνους   0,12 * μισθός
   Τέλος_Αν
   Εκτύπωσε μπόνους
Τέλος Παράδειγμα_7_εναλλακτικός


Ημερομηνία τελευταίας τροποποίησης: 14/8/2004
Επικοινωνία: Τσιωτάκης Παναγιώτης