Γράψτε αλγόριθμο που διαβάζει τους αριθμούς δελτίου
ταυτότητας, τα ονοματεπώνυμα και την ηλικία των κατοίκων
μιας πόλης που δεν υπερβαίνει τα 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]
αλλιώς
Εμφάνισε 'Αυτός ο ΑΔΤ δεν ανήκει σε κάτοικο'
Εμφάνισε 'αυτής της πόλης'
Τέλος_αν
Τέλος Κάτοικοι
ταυτότητας, τα ονοματεπώνυμα και την ηλικία των κατοίκων
μιας πόλης που δεν υπερβαίνει τα 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]
αλλιώς
Εμφάνισε 'Αυτός ο ΑΔΤ δεν ανήκει σε κάτοικο'
Εμφάνισε 'αυτής της πόλης'
Τέλος_αν
Τέλος Κάτοικοι
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου