4273 - Prod PP: Difference between revisions

From Bitnami MediaWiki
Dragos1234 (talk | contribs)
Dragos1234 (talk | contribs)
 
(4 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 va afișa pe ecran, pe o linie numărul '''P''' și mesajul "Datele introduse corespund cerințelor", 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."
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 ==
Line 35: Line 35:
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
#4273
#4273
import math
def patrate_perfecte(n):
def patrate_perfecte(n):
     patrate = []
     patrate = []
Line 44: Line 43:
         i += 1
         i += 1
     return patrate
     return patrate


def calculeaza(numbers):
def calculeaza(numbers):
Line 50: Line 50:
         product *= number
         product *= number
     return product
     return product


def validare_numar(n):
def validare_numar(n):
Line 56: Line 57:
     return True
     return True


def main():
 
if __name__ == '__main__':
     n = int(input("Introduceți numărul n: "))
     n = int(input("Introduceți numărul n: "))
     if not validare_numar(n):
     if not validare_numar(n):
         print("Datele introduse nu corespund cerintelor.")
         print("Datele introduse nu corespund cerintelor.")
         return
    else:
    squares = patrate_perfecte(n)
         squares = patrate_perfecte(n)
    product = calculeaza(squares)
        product = calculeaza(squares)
    print("Datele introduse corespund cerintelor.")
        print("Datele introduse corespund cerintelor.")
    print(product)
        print(product)
 
 
</syntaxhighlight>


== Explicatie rezolvare ==
Acest program primește de la utilizator un număr întreg n și calculează produsul primelor n pătrate perfecte.


if __name__ == '__main__':
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.
    main()
 
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.


</syntaxhighlight>
Î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>

  1. 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.