Εμφωλευμένες δομές επιλογής

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

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

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

Έτη υπηρεσίαςΜισθόςΜπόνους
< 10 
> 10< 300.00010 %
> 300.00012 %
Αλγόριθμος Παράδειγμα_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_εναλλακτικός