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
1030 - Sume Produse
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/1030/sumeproduse] == Cerinţa == Se dau '''n''' numere naturale, unde '''n''' este număr natural par. Să se calculeze suma produselor dintre fiecare număr din prima jumătate și fiecare număr din a doua jumătate a șirului de numere date. == Date de intrare == Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale, separate prin spații. == Date de ieșire == Programul dat mai sus citeste de la utilizator o lista de numere și calculează suma produselor dintre toate perechile de numere din lista, unde primul număr din pereche se află în prima jumătate a listei, iar al doilea număr se află în a doua jumătate a listei. Datele de ieșire ale programului sunt o valoare numerică reprezentând suma produselor dintre toate perechile de numere din lista, așa cum a fost descris mai sus și mesajul "Datele introduse corespund cerintelor". Această valoare este afișată la ieșirea programului. În cazul în care datele de intrare nu corespund restricțiilor, se va afișa un mesajul "Datele introduse nu corespund cerintelor." == Restricţii şi precizări == * 1 ⩽ '''n''' ⩽ 100.000 * cele '''n''' numere citite vor fi mai mici sau egale cu '''10.000''' == Exemplul 1 == ; Intrare : 4 : 2 3 4 5 ; Ieșire : Datele introduse corespund cerintelor. : 45 <br> == Exemplul 2 == ; Intrare : 0 : 0 ; Ieșire : Datele introduse nu corespund cerintelor. <br> == Exemplul 3 == ; Intrare : 2 : 1000000000 45 ; Ieșire : Datele introduse nu corespund cerintelor. <br> == Rezolvare == <syntaxhighlight lang="python" line> #1030 def calculeaza_suma_produse(numere): suma = 0 # parcurgem toate numerele din prima jumatate a sirului for i in range(len(numere)//2): # parcurgem toate numerele din a doua jumatate a sirului for j in range(len(numere)//2, len(numere)): # calculam produsul dintre cele doua numere curente produs = int(numere[i]) * int(numere[j]) # adaugam produsul la suma totala suma += produs return suma def valideaza_datele(n, numere): if not (1 <= n <= 100000): print("Datele introduse nu corespund cerintelor.") return False elif len(numere) != n: print("Datele introduse nu corespund cerintelor.") return False else: for numar in numere: if int(numar) > 10000: print("Datele introduse nu corespund cerintelor.") return False return True if __name__ == '__main__': while True: n = int(input("Numar de numere: ")) numere = input("Șirul de numere: ").split() if valideaza_datele(n, numere): break print("Datele introduse corespund cerintelor.") suma = calculeaza_suma_produse(numere) print(suma) </syntaxhighlight> ==Explicatie rezolvare== Acest program calculează suma produselor a două numere dintr-un șir dat de numere. Programul are două funcții principale: 1. Funcția "calculeaza_suma_produse" primește ca argument un șir de numere și calculează suma produselor a două numere din șirul respectiv. În primul for loop, parcurgem toate numerele din prima jumătate a șirului și în al doilea for loop, parcurgem toate numerele din a doua jumătate a șirului. Pentru fiecare pereche de numere, calculăm produsul lor și îl adăugăm la suma totală. La final, funcția returnează suma. 2. Funcția "valideaza_datele" primește ca argument un număr "n" și un șir de numere și verifică dacă datele introduse sunt valide. Se verifică dacă numărul "n" se află în intervalul [1, 100000], dacă lungimea șirului este egală cu "n" și dacă toate numerele din șir sunt mai mici sau egale cu 10000. Dacă toate aceste verificări trec, funcția returnează True, altfel returnează False și afișează un mesaj de eroare. În cadrul funcției principale "if __name__ == '__main__':", programul primește datele de intrare de la utilizator prin intermediul funcției "input". Se citește întâi numărul "n", apoi șirul de numere. Înainte de a apela funcția "calculeaza_suma_produse", se validează datele introduse folosind funcția "valideaza_datele". Dacă datele sunt valide, se calculează suma produselor și se afișează rezultatul.
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