0990 - Sortare Cuvinte 1
De la Universitas MediaWiki
Cerinţa
Să se scrie un program care citește o listă de cuvinte şi le afişează în ordine alfabetică.
Date de intrare
Fișierul de intrare sortarecuvinte1in.txt conține mai multe cuvinte, câte unul pe o linie.
Date de ieşire
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
- în listă sunt cel mult 200 de cuvinte, fiecare având cel mult 30 litere
Exemplul 1
- sortarecuvinte1in.txt
Dana Are Bomboane
- sortarecuvinte1out.txt
Datele de intrare corespund restrictiilor impuse. Are Bomboane Dana
Exemplul 2
- sortarecuvinte1in.txt
acestcuvantarepreamultelitereincuvant
- sortarecuvinte1out.txt
Datele de intrare nu corespund restrictiilor impuse.
Rezolvare
# 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.")