4273 - Prod PP: Diferență între versiuni

De la Universitas MediaWiki
 
(Nu s-au afișat 14 versiuni intermediare efectuate de alți 2 utilizatori)
Linia 5: Linia 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 va afișa pe ecran numărul '''P''', reprezentând produsul primelor '''n''' pătrate perfecte nenule, în caz contrar programul va afisa "Datele introduse nu corespund cerintelor."
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 ==
Linia 14: Linia 14:
: 4
: 4
; Ieșire
; Ieșire
: Datele corespund cerințelor.
: 576
: 576
<br>
<br>
== Exemplul 2 ==
== Exemplul 2 ==
; Intrare
; Intrare
Linia 26: Linia 28:
: 7
: 7
; Ieșire
; Ieșire
: Datele corespund cerințelor.
: 25401600
: 25401600
<br>
<br>
== Rezolvare ==  
== Rezolvare ==  
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
mport math
#4273
def patrate_perfecte(n):
def patrate_perfecte(n):
     patrate = []
     patrate = []
Linia 39: Linia 43:
         i += 1
         i += 1
     return patrate
     return patrate


def calculeaza(numbers):
def calculeaza(numbers):
Linia 44: Linia 49:
     for number in numbers:
     for number in numbers:
         product *= number
         product *= number
     print(product)
     return product
 


def validare_numar(n):
def validare_numar(n):
     if n < 1 or n > 10:
     if n < 1 or n > 10:
         print("Datele introduse nu corespund cerintelor.")
         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.")
    product = calculeaza(squares)
     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.

Versiunea curentă din 9 aprilie 2023 13:01

Sursa: [1]

Cerinţa

Se dă numărul natural nenul n. Să se determine produsul primelor n pătrate perfecte nenule.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

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

  • 0 < n ⩽ 10

Exemplul 1

Intrare
4
Ieșire
Datele corespund cerințelor.
576


Exemplul 2

Intrare
16
Ieșire
Datele introduse nu corespund cerințelor.


Exemplul 3

Intrare
7
Ieșire
Datele corespund cerințelor.
25401600


Rezolvare

#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)

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.