0990 - Sortare Cuvinte 1
Cerinţa[edit | edit source]
Să se scrie un program care citește o listă de cuvinte şi le afişează în ordine alfabetică.
Date de intrare[edit | edit source]
Fișierul de intrare sortarecuvinte1in.txt conține mai multe cuvinte, câte unul pe o linie.
Date de ieşire[edit | edit source]
Fișierul de ieșire sortarecuvinte1out.txt va conține cuvintele date, ordonate alfabetic, fiecare pe câte o linie.
Restricții și precizări[edit | edit source]
- în listă sunt cel mult 200 de cuvinte, fiecare având cel mult 30 litere
Exemplul 1[edit | edit source]
- sortarecuvinte1in.txt
Dana Are Bomboane
- sortarecuvinte1out.txt
Datele de intrare corespund restrictiilor impuse. Are Bomboane Dana
Exemplul 2[edit | edit source]
- sortarecuvinte1in.txt
acestcuvantarepreamultelitereincuvant
- sortarecuvinte1out.txt
Datele de intrare nu corespund restrictiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- functia de validare verifica daca datele de intrare sunt in intervalul specificat
def validare(cuvinte_validare):
# verificam daca numarul de cuvinte este in intervalul 0-200 if len(cuvinte_validare) <= 0 or len(cuvinte_validare) > 200: raise ValueError # ridicam o eroare daca numarul de cuvinte nu este in intervalul 0-200 for cuvant_validare in cuvinte_validare: # parcurgem lista de cuvinte # verificam daca lungimea cuvantului este mai mica sau egala cu 30 if len(cuvant_validare) > 30: raise ValueError file_out.write("Datele de intrare corespund restrictiilor impuse.\n")
- functia sort_words sorteaza cuvintele in functie de ordinea alfabetica
def sort_words(cuvinte):
# sortam cuvintele in functie de ordinea alfabetica cuvinte.sort() return cuvinte
if __name__ == '__main__':
file_in = open("sortarecuvinte1in.txt", "r") file_out = open("sortarecuvinte1out.txt", "w")
try: # citim cuvintele cuvinte_main = [linie.strip() for linie in file_in] # validam datele de intrare validare(cuvinte_main) # sortam cuvintele in functie de ordinea alfabetica cuvinte_sortate = sort_words(cuvinte_main) # scriem cuvintele sortate in fisierul de iesire for cuvant in cuvinte_sortate: file_out.write(cuvant + '\n')
# daca datele de intrare nu sunt valide, afisam un mesaj de eroare except ValueError: file_out.write("Datele de intrare nu corespund restrictiilor impuse.") # daca datele de intrare sunt incomplete, afisam un mesaj de eroare except IndexError: file_out.write("Datele de intrare nu corespund restrictiilor impuse.")
</syntaxhighlight>