0348 - Afisare Puteri: Difference between revisions
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:== | ||
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.