e-ΜΑΘΗΜΑΤΑ
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό περιβάλλον

Λύσεις ασκήσεων από θέματα Πανελλαδικών εξετάσεων


Αλγόριθμος εκλογές
! Ε 2014 ΘΕΜΑ Δ
!Στις πρόσφατες δημοτικές εκλογές, σε κάποιο δήμο της χώρας,
!χρησιμοποιήθηκαν για την ψηφοφορία 217 αίθουσες (εκλογικά τμήματα), σε 34
!δημόσια κτήρια (εκλογικά καταστήματα). Τα τμήματα αριθμήθηκαν με τη σειρά,
!από τό 1 μέχρι το 217, έτσι ώστε οι αριθμοί των εκλογικών τμημάτων κάθε
!καταστήματος να είναι διαδοχικοί: αριθμήθηκαν πρώτα τα τμήματα του πρώτου
!καταστήματος, στη συνέχεια τα τμήματα του δεύτερου καταστήματος κ.ο.κ. Το
!ψηφοδέλτιο ενός από τους συμμετέχοντες συνδυασμούς είχε 65 υποψηφίους.
!Κάθε ψηφοφόρος ψηφίζει σημειώνοντας σταυρό δίπλα στο όνομα κάθε
!υποψηφίου που επιλέγει.
!Να αναπτύξετε αλγόριθμο, ο οποίος:
!Δ1. Να διαβάζει:
!α. Το πλήθος των εκλογικών τμημάτων για κάθε εκλογικό κατάστημα.
!Να γίνεται έλεγχος εγκυρότητας των τιμών που δίνονται, ώστε αυτές
!να είναι θετικές και το άθροισμά τους να είναι ίσο με 217. (μονάδες 4)
!β. Τα ονόματα των υποψηφίων του συνδυασμού. (μονάδα 1)
!γ. Τον αριθμό των σταυρών που έλαβε καθένας από τους 65 υποψηφίους
!του συνδυασμού, σε κάθε εκλογικό τμήμα. (μονάδα 1)        !Μονάδες 6
!Δ2. Να εμφανίζει τον συνολικό αριθμό σταυρών που έλαβε κάθε υποψήφιος. !Μονάδες 2
!Δ3. Να εμφανίζει τα ονόματα των υποψηφίων που έλαβαν τους περισσότερους
!συνολικούς σταυρούς στο δεύτερο εκλογικό κατάστημα.    Μονάδες 5
!Δ4. Να εμφανίζει, σε αλφαβητική σειρά, τα ονόματα των δέκα πρώτων σε
!σταυρούς υποψηφίων. Σε περίπτωση που υπάρχουν υποψήφιοι που έλαβαν
!τον ίδιο συνολικό αριθμό σταυρών με τον δέκατο, να εμφανίζει και τα δικά
!τους ονόματα.       Μονάδες 7


! Σταθερές από την εκφώνηση (πιο μικρές τιμές για έλεγχο εκτέλεσης)
ΑΙΘΟΥΣΕΣ <- 217                                                             ! 217
ΚΤΗΡΙΑ <- 34                                                                 ! 34
ΥΠΟΨΗΦΙΟΙ <- 65                                                               !65


!Δ1.
!α. Το πλήθος των εκλογικών τμημάτων για κάθε εκλογικό κατάστημα.
!Να γίνεται έλεγχος εγκυρότητας των τιμών που δίνονται, ώστε αυτές
!να είναι θετικές και το άθροισμά τους να είναι ίσο με 217. (μονάδες 4)

Αρχή_επανάληψης
  αθροισμα <- 0
  Για i από 1 μέχρι ΚΤΗΡΙΑ
    Εμφάνισε "Κτήριο: ", i

    Αρχή_επανάληψης
      Εμφάνισε "Δώστε πλήθος των εκλογικών τμημάτων "
      Διάβασε πλήθος_ΕΤ[i] 
      Αν πλήθος_ΕΤ[i]  0 τότε
        Εμφάνισε "Λάθος τιμή! Ξανά ..."
      Τέλος_αν
    Μέχρις_ότου πλήθος_ΕΤ[i] > 0
    αθροισμα <- αθροισμα + πλήθος_ΕΤ[i] 
  Τέλος_επανάληψης
  Αν αθροισμα  <>  ΑΙΘΟΥΣΕΣ τότε
    Εμφάνισε "Λάθος άθροισμα! Ξανά ..."
  Τέλος_αν
Μέχρις_ότου αθροισμα = ΑΙΘΟΥΣΕΣ


!β. Τα ονόματα των υποψηφίων του συνδυασμού. (μονάδα 1)
!γ. Τον αριθμό των σταυρών που έλαβε καθένας από τους 65 υποψηφίους
!του συνδυασμού, σε κάθε εκλογικό τμήμα. (μονάδα 1)
Για i από 1 μέχρι ΥΠΟΨΗΦΙΟΙ
  Εμφάνισε "Δώστε όνομα υποψηφίου ", i
  Διάβασε όνομα[i] 
  Για j από 1 μέχρι ΑΙΘΟΥΣΕΣ
    Εμφάνισε "Δώστε σταυρούς υποψηφίου στο ε.τ ", j
    Διάβασε σταυροί[i, j] 
  Τέλος_επανάληψης
Τέλος_επανάληψης


!Δ2.
Εμφάνισε "Συνολικός αριθμός σταυρών που έλαβε κάθε υποψήφιος"
Για i από 1 μέχρι ΥΠΟΨΗΦΙΟΙ
  σύνολο_σταυρών[i] <- 0
  Για j από 1 μέχρι ΑΙΘΟΥΣΕΣ
    σύνολο_σταυρών[i] <- σύνολο_σταυρών[i] + σταυροί[i, j] 
  Τέλος_επανάληψης
  Εμφάνισε i, " υποψήφιος :", όνομα[i], " ", σύνολο_σταυρών[i] 
Τέλος_επανάληψης

!Δ3
Εμφάνισε "Υποψήφιοι με περισσότερους σταυρούς στο 2ο Ε.Τ"
max <- σταυροί[1, 2] 
Για i από 2 μέχρι ΥΠΟΨΗΦΙΟΙ
  Αν max < σταυροί[i, 2] τότε
    max <- σταυροί[i, 2] 
  Τέλος_αν
Τέλος_επανάληψης

Για i από 1 μέχρι ΥΠΟΨΗΦΙΟΙ
  Αν max = σταυροί[i, 2] τότε
    Εμφάνισε όνομα[i] 
  Τέλος_αν
Τέλος_επανάληψης


!Δ4. Να εμφανίζει, σε αλφαβητική σειρά, τα ονόματα των δέκα πρώτων σε
!σταυρούς υποψηφίων. Σε περίπτωση που υπάρχουν υποψήφιοι που έλαβαν
!τον ίδιο συνολικό αριθμό σταυρών με τον δέκατο, να εμφανίζει και τα δικά
!τους ονόματα.

! Ταξινόμηση ως προς σύνολο_σταυρών φθίνουσα
Για i από 2 μέχρι ΥΠΟΨΗΦΙΟΙ
  Για j από ΥΠΟΨΗΦΙΟΙ μέχρι i με_βήμα -1
    Αν (σύνολο_σταυρών[j - 1] < σύνολο_σταυρών[j]) τότε
      Αντιμετάθεσε σύνολο_σταυρών[j - 1], σύνολο_σταυρών[j] 
      Αντιμετάθεσε όνομα[j - 1], όνομα[j] 
    Τέλος_αν
  Τέλος_επανάληψης
Τέλος_επανάληψης

! Εύρεση ισοψηφισάντων με τον δέκατο
N <- 10
Όσο σύνολο_σταυρών[N + 1] = σύνολο_σταυρών[10] και Ν  < ΥΠΟΨΗΦΙΟΙ επανάλαβε
  N <- N + 1
Τέλος_επανάληψης

! Ταξινόμηση ως προς όνομα αύξουσα
Για i από 2 μέχρι N
  Για j από N μέχρι i με_βήμα -1
    Αν (όνομα[j - 1] < όνομα[j]) τότε
      Αντιμετάθεσε όνομα[j - 1], όνομα[j] 
    Τέλος_αν
  Τέλος_επανάληψης
Τέλος_επανάληψης

Εμφάνισε "Ονόματα 10+ πρώτων "
Για i από 1 μέχρι N
  Εμφάνισε όνομα[i] 
Τέλος_επανάληψης

Τέλος εκλογές

 

Κεντρική Σελίδα Αλλα e-μαθήματα ΑΕΠΠ Αλλη άσκησηΕπιστροφή στην κορυφή της σελίδας
© 2014 - 2ο Γενικό Λύκειο Γέρακα - Βασίλειος Αναστόπουλος