4273 - Prod PP: Difference between revisions
Dragos1234 (talk | contribs) No edit summary |
Dragos1234 (talk | contribs) |
||
(19 intermediate revisions by 2 users not shown) | |||
Line 5: | Line 5: | ||
Programul citește de la tastatură numărul '''n'''. | Programul citește de la tastatură numărul '''n'''. | ||
== Date de ieșire == | == Date de ieșire == | ||
Programul | Programul va afișa pe ecran, mesajul "Datele introduse corespund cerințelor" și pe o linie nouă numărul '''P''' , reprezentând produsul primelor '''n''' pătrate perfecte nenule, în caz contrar programul va afișa pe o linie noua mesajul "Datele introduse nu corespund cerintelor." | ||
== Restricţii şi precizări == | == Restricţii şi precizări == | ||
* 0 & | * 0 < '''n''' ⩽ 10 | ||
== Exemplul 1 == | == Exemplul 1 == | ||
; Intrare | ; Intrare | ||
: 4 | : 4 | ||
; Ieșire | ; Ieșire | ||
: Datele corespund cerințelor. | |||
: 576 | : 576 | ||
<br> | <br> | ||
== Exemplul 2 == | == Exemplul 2 == | ||
; Intrare | ; Intrare | ||
: | : 16 | ||
; Ieșire | ; Ieșire | ||
: Datele introduse nu corespund cerințelor. | : Datele introduse nu corespund cerințelor. | ||
Line 23: | Line 26: | ||
== Exemplul 3 == | == Exemplul 3 == | ||
; Intrare | ; Intrare | ||
: | : 7 | ||
; Ieșire | ; Ieșire | ||
: | : Datele corespund cerințelor. | ||
: 25401600 | |||
<br> | <br> | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
#4273 | #4273 | ||
def patrate_perfecte(n): | def patrate_perfecte(n): | ||
patrate = [] | patrate = [] | ||
Line 39: | Line 43: | ||
i += 1 | i += 1 | ||
return patrate | return patrate | ||
def calculeaza(numbers): | def calculeaza(numbers): | ||
Line 44: | Line 49: | ||
for number in numbers: | for number in numbers: | ||
product *= number | product *= number | ||
return product | |||
def validare_numar(n): | def validare_numar(n): | ||
if n < 1 or n > 10: | if n < 1 or n > 10: | ||
return False | |||
return True | |||
if __name__ == '__main__': | if __name__ == '__main__': | ||
n = int(input("Introduceți numărul n: ")) | n = int(input("Introduceți numărul n: ")) | ||
validare_numar(n) | if not validare_numar(n): | ||
squares = patrate_perfecte(n) | print("Datele introduse nu corespund cerintelor.") | ||
else: | |||
squares = patrate_perfecte(n) | |||
product = calculeaza(squares) | |||
print("Datele introduse corespund cerintelor.") | |||
print(product) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== Explicatie rezolvare == | |||
Acest program primește de la utilizator un număr întreg n și calculează produsul primelor n pătrate perfecte. | |||
Funcția patrate_perfecte(n) primește n ca parametru și întoarce o listă de n pătrate perfecte. Funcția utilizează un loop while pentru a genera pătrate perfecte, adăugându-le într-o listă numită patrate. | |||
Funcția calculeaza(numbers) primește o listă de numere și calculează produsul lor folosind un loop for. | |||
Funcția validare_numar(n) primește n ca parametru și verifică dacă numărul este între 1 și 10. | |||
În funcția principală (if __name__ == '__main__':), programul începe prin citirea inputului de la utilizator și apoi verifică dacă numărul introdus este valid prin intermediul funcției validare_numar(n). Dacă inputul este invalid, programul afișează un mesaj de eroare. Dacă inputul este valid, programul apelează funcția patrate_perfecte(n) și calculeaza(numbers) pentru a calcula produsul pătratelor perfecte. Afișează apoi mesajul "Datele introduse corespund cerințelor" și produsul calculat. |
Latest revision as of 13:01, 9 April 2023
Sursa: [1]
Cerinţa[edit | edit source]
Se dă numărul natural nenul n. Să se determine produsul primelor n pătrate perfecte nenule.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran, mesajul "Datele introduse corespund cerințelor" și pe o linie nouă numărul P , reprezentând produsul primelor n pătrate perfecte nenule, în caz contrar programul va afișa pe o linie noua mesajul "Datele introduse nu corespund cerintelor."
Restricţii şi precizări[edit | edit source]
- 0 < n ⩽ 10
Exemplul 1[edit | edit source]
- Intrare
- 4
- Ieșire
- Datele corespund cerințelor.
- 576
Exemplul 2[edit | edit source]
- Intrare
- 16
- Ieșire
- Datele introduse nu corespund cerințelor.
Exemplul 3[edit | edit source]
- Intrare
- 7
- Ieșire
- Datele corespund cerințelor.
- 25401600
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- 4273
def patrate_perfecte(n):
patrate = [] i = 1 while len(patrate) < n: patrat = i * i patrate.append(patrat) i += 1 return patrate
def calculeaza(numbers):
product = 1 for number in numbers: product *= number return product
def validare_numar(n):
if n < 1 or n > 10: return False return True
if __name__ == '__main__':
n = int(input("Introduceți numărul n: ")) if not validare_numar(n): print("Datele introduse nu corespund cerintelor.") else: squares = patrate_perfecte(n) product = calculeaza(squares) print("Datele introduse corespund cerintelor.") print(product)
</syntaxhighlight>
Explicatie rezolvare[edit | edit source]
Acest program primește de la utilizator un număr întreg n și calculează produsul primelor n pătrate perfecte.
Funcția patrate_perfecte(n) primește n ca parametru și întoarce o listă de n pătrate perfecte. Funcția utilizează un loop while pentru a genera pătrate perfecte, adăugându-le într-o listă numită patrate.
Funcția calculeaza(numbers) primește o listă de numere și calculează produsul lor folosind un loop for.
Funcția validare_numar(n) primește n ca parametru și verifică dacă numărul este între 1 și 10.
În funcția principală (if __name__ == '__main__':), programul începe prin citirea inputului de la utilizator și apoi verifică dacă numărul introdus este valid prin intermediul funcției validare_numar(n). Dacă inputul este invalid, programul afișează un mesaj de eroare. Dacă inputul este valid, programul apelează funcția patrate_perfecte(n) și calculeaza(numbers) pentru a calcula produsul pătratelor perfecte. Afișează apoi mesajul "Datele introduse corespund cerințelor" și produsul calculat.