0236 - Sort 2

From Bitnami MediaWiki

Cerinţa[edit | edit source]

Fişierul text sort2.in conţine, dispuse pe mai multe linii, cel mult 100 de numere naturale, cu cel mult 4 cifre fiecare. Să se afişeze în fişierul sort2.out, în ordine crescătoare, toate numerele din fişierul sort2.in care au cel mult 2 cifre.

Date de intrare[edit | edit source]

Fişierul de intrare sort2.in conţine, dispuse pe mai multe linii, cel mult 100 de numere naturale, cu cel mult 4 cifre fiecare.

Date de ieşire[edit | edit source]

Fişierul de ieşire sort2.out va conţine, pe prima linie, în ordine crescătoare, separate prin exact un spaţiu, toate numerele din fişierul sort2.in care au cel mult 2 cifre.

Restricții și precizări[edit | edit source]

  • dacă în fişierul de intrare nu există numere cu cel mult 2 cifre, se va afişa în fişierul de ieşire, pe prima linie, mesajul “NU EXISTA”.

Exemplu[edit | edit source]

sort2.in
86 18 7210 73 15 5
7989 825
562 732 5 911
sort2.out
5 5 15 18 73 86

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line> def sorteaza_numere(fisier_intrare, fisier_iesire):

   # Deschidem fișierul de intrare și citim numerele
   with open(fisier_intrare, 'r') as fisier:
       # Creăm o listă cu numerele care au cel mult două cifre
       numere = [int(numar) for linie in fisier for numar in linie.split() if len(numar) <= 2]
   # Deschidem fișierul de ieșire pentru a scrie rezultatul
   with open(fisier_iesire, 'w') as fisier:
       # Dacă există numere cu cel mult două cifre, le sortăm și le scriem în fișier
       if numere:
           fisier.write(' '.join(str(numar) for numar in sorted(numere)))
       # Dacă nu există numere cu cel mult două cifre, scriem mesajul "NU EXISTA"
       else:
           fisier.write('NU EXISTA')
  1. Acest cod va fi executat doar dacă scriptul este rulat direct

if __name__ == "__main__":

   # Apelăm funcția cu numele fișierelor de intrare și de ieșire
   sorteaza_numere('sort2.in', 'sort2.out')

</syntaxhighlight>