0272 - Pare Sort: Difference between revisions
No edit summary |
|||
Line 2: | Line 2: | ||
Se dă un şir cu n elemente, numere naturale nenule cu cel mult 4 cifre fiecare. Afişaţi, în ordine crescătoare, valorile pare din şir. Dacă şirul nu conţine nici o valoare pară, se va afişa mesajul nu exista. | Se dă un şir cu n elemente, numere naturale nenule cu cel mult 4 cifre fiecare. Afişaţi, în ordine crescătoare, valorile pare din şir. Dacă şirul nu conţine nici o valoare pară, se va afişa mesajul nu exista. | ||
== Date de intrare == | == Date de intrare == | ||
Fişierul de intrare | Fişierul de intrare paresortin.txt conţine pe prima linie numărul n; urmează cele n elemente ale şirului, dispuse pe mai multe linii, separate prin spaţii. | ||
== Date de ieșire == | == Date de ieșire == | ||
Dacă datele sunt introduse corect, | Dacă datele sunt introduse corect, în fișierul paresortout.txt se va afișa: " Datele de intrare corespund restrictiilor impuse", fişierul de ieşire paresort.out va conţine pe prima linie numărul m, numărul de valori pare din şir, iar pe a două linie aceste valori, în ordine crescătoare, separate printr-un spaţiu. Dacă şirul nu conţine nici un număr par, fişierul va conţine doar mesajul nu exista, situat pe prima linie. Iar dacă condițiile nu sunt îndeplinite, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse". | ||
== Restricții și precizări == | == Restricții și precizări == | ||
Line 10: | Line 10: | ||
== Exemplu 1 == | == Exemplu 1 == | ||
; | ; paresortin.txt | ||
: 9 | : 9 | ||
: 2 3 1 4 7 2 5 8 6 | : 2 3 1 4 7 2 5 8 6 | ||
; | ; paresortout.txt | ||
: Datele introduse corespund restricțiilor impuse. | : Datele introduse corespund restricțiilor impuse. | ||
: 5 | : 5 | ||
Line 19: | Line 19: | ||
<br> | <br> | ||
== Exemplu 2 == | == Exemplu 2 == | ||
; | ; paresortin.txt | ||
: 0 | : 0 | ||
; | ; paresortout.txt | ||
: Datele de intrare nu corespund restricțiilor impuse. | : Datele de intrare nu corespund restricțiilor impuse. | ||
<br> | <br> |
Revision as of 16:35, 25 April 2023
Cerința
Se dă un şir cu n elemente, numere naturale nenule cu cel mult 4 cifre fiecare. Afişaţi, în ordine crescătoare, valorile pare din şir. Dacă şirul nu conţine nici o valoare pară, se va afişa mesajul nu exista.
Date de intrare
Fişierul de intrare paresortin.txt conţine pe prima linie numărul n; urmează cele n elemente ale şirului, dispuse pe mai multe linii, separate prin spaţii.
Date de ieșire
Dacă datele sunt introduse corect, în fișierul paresortout.txt se va afișa: " Datele de intrare corespund restrictiilor impuse", fişierul de ieşire paresort.out va conţine pe prima linie numărul m, numărul de valori pare din şir, iar pe a două linie aceste valori, în ordine crescătoare, separate printr-un spaţiu. Dacă şirul nu conţine nici un număr par, fişierul va conţine doar mesajul nu exista, situat pe prima linie. Iar dacă condițiile nu sunt îndeplinite, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse".
Restricții și precizări
- 1 ≤ n ≤ 1000
Exemplu 1
- paresortin.txt
- 9
- 2 3 1 4 7 2 5 8 6
- paresortout.txt
- Datele introduse corespund restricțiilor impuse.
- 5
- 2 2 4 6 8
Exemplu 2
- paresortin.txt
- 0
- paresortout.txt
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare
<syntaxhighlight lang="python" line>
- 0272 PareSort
def validare(nr_elemente, sir_numere):
if nr_elemente > 255: raise ValueError
for numar in sir_numere: if numar <= 0 or numar >= 10000: raise ValueError
if nr_elemente != len(sir_numere): raise ValueError
file_out.write("Datele de intrare corespund restrictiilor impuse\n")
def paresort(sir_numere):
sir_pare = [] for numar in sir_numere: if numar % 2 == 0: sir_pare.append(numar)
if len(sir_pare) == 0: file_out.write("nu exista") return
file_out.write(str(len(sir_pare)) + "\n")
sir_pare.sort()
for numar in sir_pare: file_out.write(str(numar) + " ")
if __name__ == '__main__':
file_in = open("paresortin.txt", "r") file_out = open("paresortout.txt", "w")
try: n = file_in.readline() sir = file_in.readline() n = int(n)
sir = sir.split() sir = list(map(int, sir))
validare(n, sir)
paresort(sir)
except ValueError: file_out.write("Datele de intrare nu corespund restrictiilor impuse") except IndexError: file_out.write("Datele de intrare nu corespund restrictiilor impuse")
</syntaxhighlight>