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
3285 - Mos Craciun
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!
Sursă: [https://www.pbinfo.ro/probleme/3285/moscraciun] == Cerință == Cei '''n''' copii de la grădiniță stau cuminți în șir și așteaptă cadourile de la Moș Crăciun. Ei sunt numerotați de la 1 la '''n''' (se consideră că '''n''' este par) și în prima jumătate sunt copiii de la grupa mare iar în a doua jumătate sunt cei de la grupa mică (numărul de copii din fiecare grupă este același, '''n/2'''). După ce trece Moș Crăciun se știe câte cadouri a primit fiecare copil și noi dorim să aflăm câți copii din grupa mică au primit mai multe cadouri decât orice copil din grupa mare. == Date de intrare == Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale, separate prin spații, reprezentând, în ordine, numărul de cadouri ale fiecărui copil. == Date de ieșire == Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt corecte.".Programul va afișa pe ecran numărul '''c''', valoarea cerută. În caz contrar, se va afișa pe ecran: "Datele nu sunt comform restricțiilor impuse.". == Restricții și precizări == * '''2 ≤ n ≤ 20''', par * cele '''n''' numere citite vor fi naturale nenule mai mici decât '''1.000.000.000''' == Exemple == === Exemplu 1 === ; Intrare : 6 : 1 6 3 6 8 2 ; Ieșire : 1 === Exemplu 2 === ; Intrare : 1 : 1 5 3 8 ; Ieșire : Datele nu sunt comform restricțiilor impuse === Exemplu 3 === ; Intrare : 21 : 1 6 3 6 8 2 5 6 2 3 4 2 1 5 3 2 1 5 3 6 4 ; Ieșire : Datele nu sunt comform restricțiilor impuse == Rezolvare == <syntaxhighlight lang="python" line="1"> def citeste_n(): while True: try: n = int(input("Introduceti numarul de valori: ")) if n >= 2 and n <= 20: print("Datele sunt corecte.") return n else: print("Datele nu sunt conform restricțiilor impuse.") except ValueError: print("Trebuie introduse doar numere intregi.") def citeste_valori(n): valori = [] for i in range(n): while True: try: valoare = int(input("Introduceti o valoare: ")) if valoare <= 1000000000: print("Datele sunt corecte.") valori.append(valoare) break else: print("Datele nu sunt conform restricțiilor impuse.") except ValueError: print("Trebuie introduse doar valori numerice.") return valori def cadouri(valori): maxi = 0 k = 0 for i in range(1, len(valori) // 2 + 1): if valori[i - 1] > maxi: maxi = valori[i - 1] for i in range(len(valori) // 2 + 1, len(valori) + 1): if valori[i - 1] > maxi: k += 1 return k if __name__ == '__main__': n = citeste_n() valori = citeste_valori(n) k = cadouri(valori) print("Numarul de copii este:", k) </syntaxhighlight> == Explicații == citeste_n(): Această funcție citește de la tastatură numărul de valori pe care utilizatorul dorește să le introducă și verifică dacă acestea respectă restricțiile impuse (între 2 și 20). În caz contrar, utilizatorul este notificat că datele nu sunt conform restricțiilor și i se cere să introducă din nou un număr corect. citeste_valori(n): Această funcție primește ca parametru numărul de valori introduse de utilizator și citește aceste valori de la tastatură, verificând dacă acestea sunt valori numerice și respectă restricțiile impuse (mai mici sau egale cu 1 miliard). În caz contrar, utilizatorul este notificat că datele nu sunt conform restricțiilor și i se cere să introducă din nou valori corecte. cadouri(valori): Această funcție primește ca parametru lista de valori introduse de utilizator și calculează numărul de copii care vor primi cadouri în funcție de restricția dată: copiii vor primi cadouri de la jumătatea listei în sus numai dacă valoarea cadoului este mai mare decât orice valoare anterioară. Dacă valoarea maximă se găsește în prima jumătate a listei, atunci niciun copil nu va primi cadouri. Funcția returnează numărul de copii care primesc cadouri. În funcția cadouri(valori), prima buclă for calculează valoarea maximă din prima jumătate a listei, iar cea de-a doua buclă for numără câți copii primesc cadouri în a doua jumătate a listei. Funcția returnează valoarea acestui număr, care este apoi afișată pe ecran în funcția main().
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