e-ΜΑΘΗΜΑΤΑ |
Λύσεις ασκήσεων από θέματα Πανελλαδικών εξετάσεων |
Αλγόριθμος Ευρωεκλογές
!Ε2004-Θ4
!Σε κάποια χώρα της Ευρωπαϊκής Ένωσης διεξάγονται εκλογές για την ανάδειξη των
! μελών του Ευρωπαϊκού Κοινοβουλίου. Θεωρήστε ότι μετέχουν 15 συνδυασμοί κομμάτων,
! οι οποίοι θα μοιραστούν 24 έδρες σύμφωνα με το ποσοστό των έγκυρων ψηφοδελτίων
! που έλαβαν. Κόμματα που δεν συγκεντρώνουν ποσοστό έγκυρων ψηφοδελτίων τουλάχιστον
! ίσο με το 3% του συνόλου των έγκυρων ψηφοδελτίων δεν δικαιούνται έδρα.
! Για κάθε κόμμα, εκτός του πρώτου κόμματος, ο αριθμός των εδρών που θα λάβει
! υπολογίζεται ως εξής:
! Το ποσοστό των έγκυρων ψηφοδελτίων πολλαπλασιάζεται επί 24 και στη συνέχεια
! το γινόμενο διαιρείται με το άθροισμα των ποσοστών όλων των κομμάτων που
! δικαιούνται έδρα. Το ακέραιο μέρος του αριθμού που προκύπτει είναι ο αριθμός
! των εδρών που θα λάβει το κόμμα.
! Το πρώτο κόμμα λαμβάνει τις υπόλοιπες έδρες.
! Να γράψετε αλγόριθμο ο οποίος:
! α. να διαβάζει και να αποθηκεύει σε μονοδιάστατους πίνακες τα ονόματα των κομμάτων
! και τα αντίστοιχα ποσοστά των έγκυρων ψηφοδελτίων τους.
! β. να εκτυπώνει τα ονόματα και το αντίστοιχο ποσοστό έγκυρων ψηφοδελτίων των
! κομμάτων που δεν έλαβαν έδρα.
! γ. να εκτυπώνει το όνομα του κόμματος με το μεγαλύτερο ποσοστό έγκυρων ψηφοδελτίων.
! δ. να υπολογίζει και να εκτυπώνει το άθροισμα των ποσοστών όλων των κομμάτων
! που δικαιούνται έδρα.
! ε. να εκτυπώνει τα ονόματα των κομμάτων που έλαβαν έδρα και τον αντίστοιχο αριθμό
! των εδρών τους.
! Παρατηρήσεις:
!α) Υποθέτουμε ότι δεν υπάρχουν δύο κόμματα που να έχουν το ίδιο ποσοστό έγκυρων ψηφοδελτίων.
!β) Μπορείτε να χρησιμοποιήσετε τη συνάρτηση Α_Μ(x) που επιστρέφει το ακέραιο μέρος του
!πραγματικού αριθμού x.
!γ) Τα ποσοστά να θεωρηθούν επί τοις εκατό (%).
ΚΟΜΜΑΤΑ <- 15
! α. διάβασμα
Για i από 1 μέχρι ΚΟΜΜΑΤΑ
Εμφάνισε i, "ο κόμμα"
Εμφάνισε "Δώστε όνομα : "
Διάβασε όνομα[i]
Εμφάνισε "Δώστε ποσοστό (%) : "
Διάβασε ποσοστό[i]
Τέλος_επανάληψης
! β.
! (Κόμματα που δεν συγκεντρώνουν ποσοστό έγκυρων ψηφοδελτίων τουλάχιστον
! ίσο με το 3% του συνόλου των έγκυρων ψηφοδελτίων δεν δικαιούνται έδρα.)
Εμφάνισε "Ονόματα και ποσοστά κομμάτων που δεν έλαβαν έδρα"
Για i από 1 μέχρι ΚΟΜΜΑΤΑ
Αν ποσοστό[i] < 3 τότε
Εμφάνισε όνομα[i], ποσοστό[i]
Τέλος_αν
Τέλος_επανάληψης
! γ.
Εμφάνισε "Κόμμα με το μεγαλύτερο ποσοστό έγκυρων ψηφοδελτίων"
max <- ποσοστό[1]
θέση_πρώτου <- 1
Για i από 2 μέχρι ΚΟΜΜΑΤΑ
Αν ποσοστό[i] > max τότε
max <- ποσοστό[i]
θέση_πρώτου <- i
Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε όνομα[θέση_πρώτου], ποσοστό[θέση_πρώτου]
! δ.
Εμφάνισε "Αθροισμα των ποσοστών όλων των κομμάτων που δικαιούνται έδρα"
άθροισμα <- 0
Για i από 1 μέχρι ΚΟΜΜΑΤΑ
Αν ποσοστό[i] ≥ 3 τότε
άθροισμα <- άθροισμα + ποσοστό[i]
Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε άθροισμα
! ε.
! Για κάθε κόμμα, εκτός του πρώτου κόμματος, ο αριθμός των εδρών που θα λάβει
! υπολογίζεται ως εξής:
! Το ποσοστό των έγκυρων ψηφοδελτίων πολλαπλασιάζεται επί 24 και στη συνέχεια
! το γινόμενο διαιρείται με το άθροισμα των ποσοστών όλων των κομμάτων που
! δικαιούνται έδρα. Το ακέραιο μέρος του αριθμού που προκύπτει είναι ο αριθμός
! των εδρών που θα λάβει το κόμμα.
! Το πρώτο κόμμα λαμβάνει τις υπόλοιπες έδρες.
Εμφάνισε "ονόματα των κομμάτων που έλαβαν έδρα με αντίστοιχο αριθμό"
μοιρασμένες_έδρες <- 0
Για i από 1 μέχρι ΚΟΜΜΑΤΑ
Αν ποσοστό[i] > 3 και i <> θέση_πρώτου τότε
έδρες <- Α_Μ ((24* ποσοστό[i])/ άθροισμα)
μοιρασμένες_έδρες <- μοιρασμένες_έδρες + έδρες
Εμφάνισε όνομα[i], έδρες
Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε όνομα[θέση_πρώτου], 24 - μοιρασμένες_έδρες
Τέλος Ευρωεκλογές
|