Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Bitnami MediaWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
0633 - paritate1
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
Sursa: [https://www.pbinfo.ro/probleme/633/paritate1 - Paritate1] ---- == Cerinţa == Se dă un șir cu '''n''' elemente, numere naturale. Determinați diferența în valoare absolută dintre numărul de valori pare din șir și numărul de valori impare din șir. == Date de intrare == Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale, reprezentând elementele șirului. == Date de ieșire == Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele introduse sunt corecte. rezultat:", apoi se va afișa numărul c, reprezentând valoarea cerută. În caz contrar, pe se va afișa ecran: "Datele nu corespund restricțiilor impuse.". == Restricţii şi precizări == * 1 ⩽ '''n''' ⩽ 1.000 * cele '''n''' numere citite vor fi mai mici decât 1.000.000.000 == Exemplu == ===Exemplul 1=== ; Intrare : 5 : 15 245 28 33 11 ; Ieșire : Datele introduse sunt corecte. rezultat: 3 ===Exemplul 2=== ; Intrare : 1234 : 1 2 3 ; Ieșire : Datele nu corespund restricțiilor impuse. == Explicație exemplu 1== : Sunt '''4''' numere impare și un număr par în șir, deci diferența este '''3'''. <br> == Rezolvare == <syntaxhighlight lang="python" line> # 0633 - Paritate1 def diferenta_absoluta_dintre_nr_de_valori_impare_si_nr_de_valori_pare(vector, n): pare = 0 impare = 0 for i in range(n): if vector[i] % 2 == 0: pare += 1 else: impare += 1 if impare > pare: c = impare - pare return c else: c = pare - impare return c def citire_conform_restrictiilor(vector, n): if n < 1 or n > 1000: print("Datele nu corespund restricțiilor impuse.") exit() for x in vector: if x >= 1000000000: print("Datele nu corespund restricțiilor impuse.") exit() if len(vector) != n: print("Datele nu corespund restricțiilor impuse.") exit() if __name__ == '__main__': n = int(input()) vector = list(map(int, input().split())) citire_conform_restrictiilor(vector, n) c = diferenta_absoluta_dintre_nr_de_valori_impare_si_nr_de_valori_pare(vector, n) print("Datele introduse sunt corecte. rezultat:",c) </syntaxhighlight> == Explicație rezolvare == Programul de mai sus începe prin execuția mainului ('''if __name__ == '__main__' ''', linia 31) unde se citește valoarea n și cele n numere pe care le vom pune într-un vector numit „vector” (liniile 32, 33), apoi verifică dacă ele au fost citite conform restricțiilor cu ajutorul funcției '''citire_conform_restrictiilor(vector, n)''', care verifică dacă:<br>-> n este între 1 și 1000;<br>-> elementele vectorului sunt mai mici decât 1.000.000.000;<br>-> n este lungimea șirului de elemente dat.<br> Dacă nu respectă restricțiile, se va afișa mesajul „Datele nu corespund restricțiilor impuse.” și se va ieși din program cu comanda exit(), iar dacă ele sunt în regulă se va continua programul.<br> În continuarea programului, se dă unei variabile c valoarea returnată de funcția '''diferenta_absoluta_dintre_nr_de_valori_impare_si_nr_de_valori_pare(vector, n)'''. Funcția '''diferenta_absoluta_dintre_nr_de_valori_impare_si_nr_de_valori_pare(vector, n)''' are două variabile pare și impare, care, prin parcurgerea vectorului și verificarea parității elementului vector[i] (dacă restul împărțirii la 2 al elementului vector[i] este 0, atunci elementul este par, iar dacă e 1 este impar), crește apoi valorile pare și impare în funcție de paritatea elementelor din vector. După ce s-a parcurs tot vectorul, se verifică dacă impare este mai mare decât pare, pentru a se face corect diferența absolută a numărului acestora (valoarea absolută nu poate fi negativă), iar apoi se returnează valoarea c, care reprezintă diferența în valoare absolută dintre numărul de valori pare din vector și numărul de valori impare din vector.<br> În final, afișăm mesajul '''„Datele introduse sunt corecte. rezultat:”''' și valoarea c, care reprezintă valoarea cerută în problemă.
Summary:
Please note that all contributions to Bitnami MediaWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Bitnami MediaWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Toggle limited content width