0990 - Sortare Cuvinte 1

From Bitnami MediaWiki
Revision as of 13:30, 14 December 2023 by AntalKrisztian (talk | contribs) (Pagină nouă: == 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...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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>

  1. 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")


  1. 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>