0348 - Afisare Puteri: Difference between revisions

From Bitnami MediaWiki
Paul Ungur (talk | contribs)
No edit summary
Paul Ungur (talk | contribs)
No edit summary
 
Line 6: Line 6:


==Date de ieşire:==
==Date de ieşire:==
Programul afișează pe ecran, în ordine crescătoare, puterile lui <span style="color: red;"> n </span> mai mici sau egale cu <span style="color: red;"> p </span>, separate prin câte un spațiu.
Dacă datele sunt introduse corect, pe ecran se va afișa: '''"Date de intrare valide."''', apoi programul afișează pe ecran, în ordine crescătoare, puterile lui <span style="color: red;"> n </span> mai mici sau egale cu <span style="color: red;"> p </span>, separate prin câte un spațiu. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: '''"Date de intrare invalide".'''
 


==Restricţii şi precizări:==
==Restricţii şi precizări:==
Line 15: Line 16:


Date de intrare
Date de intrare
3 100
: 3 100


Date de ieșire
Date de ieșire
1 3 9 27 81
: Date de intrare valide
: 1 3 9 27 81


==Rezolvare==
==Rezolvare==

Latest revision as of 18:07, 29 June 2023

Cerinţa:[edit | edit source]

Se dau două numere naturale nenule n și p. Afișați în ordine crescătoare puterile lui n mai mici sau egale cu p .

Date de intrare:[edit | edit source]

Programul citește de la tastatură numerele n și p .

Date de ieşire:[edit | edit source]

Dacă datele sunt introduse corect, pe ecran se va afișa: "Date de intrare valide.", apoi programul afișează pe ecran, în ordine crescătoare, puterile lui n mai mici sau egale cu p , separate prin câte un spațiu. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Date de intrare invalide".


Restricţii şi precizări:[edit | edit source]

2 ≤ n ≤ 10 1 ≤ p < 1.000.000.000

Exemplu:[edit | edit source]

Date de intrare

3 100

Date de ieșire

Date de intrare valide
1 3 9 27 81

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line="1"> def validare(n, p):

   if not isinstance(n, int) or not isinstance(p, int):
       return False
   if n <= 1 or p <= 0 or p >= 1000000000:
       return False
   return True


def rezolvare(n, p):

   i = 0
   while n ** i <= p:
       print(n ** i, end=' ')
       i += 1


if __name__ == "__main__":

   n = int(input("Introduceti n: "))
   p = int(input("Introduceti p: "))
   if validare(n, p):
       rezolvare(n, p)
       print("Date de intrare valide")
   else:
       print("Date de intrare invalide")

</syntaxhighlight>

Explicatie cod:[edit | edit source]

Codul Python de mai sus definește două funcții: validare și rezolvare. Iată o explicație pentru fiecare dintre ele:

Funcția validare(n, p): Această funcție primește doi parametri, n și p, reprezentând două numere întregi. Verifică mai multe condiții pentru a valida datele introduse: Verifică dacă atât n cât și p sunt de tipul int. Dacă nu sunt, funcția returnează False, semnalând că datele sunt invalide. Verifică dacă n este mai mic sau egal cu 1 sau p este mai mic sau egal cu 0 sau mai mare sau egal cu 1.000.000.000. Dacă una dintre aceste condiții nu este îndeplinită, funcția returnează False, semnalând că datele sunt invalide. Dacă toate verificările sunt trecute fără a găsi probleme, funcția returnează True, semnalând că datele sunt valide. Funcția rezolvare(n, p): Această funcție primește doi parametri, n și p, reprezentând două numere întregi. Funcția calculează și afișează toate puterile lui n care sunt mai mici sau egale cu p. Într-un ciclu while, se verifică condiția n ** i <= p, unde i este un contor inițializat cu 0. În fiecare iterație, se afișează rezultatul n ** i și se incrementează i cu 1. Afișarea este realizată cu ajutorul funcției print, iar valorile sunt separate prin spațiu. În cadrul secțiunii if __name__ == "__main__": se realizează următoarele acțiuni:

Se citește de la tastatură două numere întregi n și p folosind funcția input(). Se apelează funcția validare(n, p) pentru a verifica validitatea datelor. Dacă datele sunt valide, se apelează funcția rezolvare(n, p) pentru a calcula și afișa rezultatul. Dacă datele nu sunt valide, se afișează mesajul "Date de intrare invalide". În cazul în care datele sunt valide, se afișează mesajul "Date de intrare valide" după ce funcția rezolvare(n, p) a afișat toate puterile lui n.