Τετάρτη 13 Απριλίου 2011

Άσκηση : απάντηση σε ερώτηση+δοσμένο ανώτατο πλήθος+πίνακας

Γράψτε αλγόριθμο που διαβάζει τους αριθμούς δελτίου
ταυτότητας, τα ονοματεπώνυμα και την ηλικία των κατοίκων
μιας πόλης που δεν υπερβαίνει τα 10000 άτομα (η είσοδος
δεδομένων ολοκληρώνεται μόλις δοθεί η απάντηση 'ΟΧΙ'
στην υποβαλλόμενη προς το χρήστη ερώτηση 'Υπάρχει άλλος
κάτοικος;' ή όταν το πλήθος των καταχωρημένων ατόμων
φτάσει το 10000), υπολογίζει και εμφανίζει:
α) πόσα άτομα έχουν ηλικία τουλάχιστον 20 έτη,
β) το ονοματεπώνυμο του γηραιότερου ατόμου.
Στη συνέχεια :
γ) διαβάζει τον αριθμό δελτίου ταυτότητας ενός
    ανθρώπου,
δ) ελέγχει αν ο άνθρωπος αυτός είναι κάτοικος της
    παραπάνω πόλης,
ε) σε περίπτωση που η απάντηση στο ερώτημα δ) είναι
    καταφατική, εμφανίζει το ονοματεπώνυμο και την
    ηλικία του,
στ) αν η απάντηση στο ερώτημα δ) είναι αρνητική,
     εμφανίζεται κατάλληλο ενημερωτικό μήνυμα.

Λύση

      Αλγόριθμος Κάτοικοι
      Φ20 <-- 0
      ΜΑΧ <-- -1
      Πληθ <-- 0
      Αρχή_επανάληψης
            Διάβασε ΑΔΤ, ΟΝ, Ηλικ
            Πληθ <-- Πληθ+1
            Αν Ηλικ >= 20 τότε
                 Φ20 <-- Φ20+1
            Τέλος_αν
            Αν Ηλικ > ΜΑΧ τότε
                 ΜΑΧ <-- Ηλικ
                 ΟνΜΑΧ <-- ΟΝ
            Τέλος_αν
            ΟΝΟΜ[Πληθ] <-- ΟΝ
            ΗΛ[Πληθ] <-- Ηλικ
            ΔΕΛΤΙΟ[Πληθ] <-- ΑΔΤ
            Εμφάνισε 'Υπάρχει άλλος κάτοικος;'
            Διάβασε Απ
      Μέχρις_ότου (Απ = 'ΟΧΙ') Ή (Πληθ = 10000)
      Εμφάνισε Φ20, ΟνΜΑΧ
      Διάβασε Αδελτ
      done <-- Ψευδής
      pos <-- 0
      κ <-- 1
      Όσο (κ <= Πληθ) ΚΑΙ (done = Ψευδής) επανάλαβε
              Αν ΔΕΛΤΙΟ[κ] = Αδελτ τότε
                  done <-- Αληθής
                  pos <-- κ
              αλλιώς
                  κ <-- κ+1
              Τέλος_αν
      Τέλος_επανάληψης
      Αν done = Αληθής τότε
             Εμφάνισε ΟΝΟΜ[pos], ΗΛ[pos]
      αλλιώς
             Εμφάνισε 'Αυτός ο ΑΔΤ δεν ανήκει σε κάτοικο'
             Εμφάνισε 'αυτής της πόλης'
      Τέλος_αν
      Τέλος Κάτοικοι

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου