2747 - Log: Difference between revisions
Paul Ungur (talk | contribs) |
Paul Ungur (talk | contribs) No edit summary |
||
(3 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
==Date de ieșire== | ==Date de ieșire== | ||
Dacă datele sunt introduse corect, pe ecran se va afișa: '''"Datele sunt introduse corect."''', apoi programul va afișa pe ecran exponentul la care se ridică <span style="color: red;"> n </span> pentru a obține <span style="color: red;"> m</span>. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: '''"Datele nu corespund restricțiilor impuse."''' | |||
==Restricții și precizări== | ==Restricții și precizări== | ||
Line 14: | Line 14: | ||
==Exemplu:== | ==Exemplu:== | ||
Intrare | : Intrare | ||
2 4 | : 2 4 | ||
Ieșire | Ieșire | ||
2 | : Datele sunt introduse corect | ||
: 2 | |||
==Rezolvare== | ==Rezolvare== | ||
<syntaxhighlight lang="python" line="1"> | <syntaxhighlight lang="python" line="1"> | ||
n, m = | def validare_date(n, m): | ||
if not (1 <= n <= 1000000) or not (1 <= m <= 1000000): | |||
print("n și m trebuie să fie între 1 și 1.000.000.") | |||
return False | |||
if n == 1: | |||
print("n trebuie să fie diferit de 1.") | |||
return False | |||
if m % n != 0: | |||
print("m trebuie să fie putere a lui n.") | |||
return False | |||
return True | |||
print(exponent) | def compute_exponent(n, m): | ||
#Determină exponentul la care trebuie ridicat n pentru a obține m. | |||
exponent = 1 | |||
while m > n: | |||
m //= n | |||
exponent += 1 | |||
print(f"Exponentul la care trebuie ridicat {n} pentru a obține {m} este: {exponent}") | |||
if __name__ == "__main__": | |||
# Citire input și validare | |||
n, m = map(int, input("Introduceți n și m, separate prin spațiu: ").split()) | |||
if validare_date(n, m): | |||
exponent = compute_exponent(n, m) | |||
else: | |||
while not validare_date(n, m): | |||
n, m = map(int, input("Introduceți n și m, separate prin spațiu: ").split()) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
==Explicatie cod:== | |||
Codul Python de mai sus definește două funcții: validare_date și compute_exponent. Iată o explicație pentru fiecare dintre ele: | |||
Funcția validare_date(n, m): | |||
Această funcție primește doi parametri, n și m, reprezentând două numere întregi. | |||
Verifică mai multe condiții pentru a valida datele introduse: | |||
Verifică dacă n și m sunt ambele între 1 și 1.000.000. Dacă nu sunt, afișează un mesaj de eroare și returnează False. | |||
Verifică dacă n este diferit de 1. Dacă nu este, afișează un mesaj de eroare și returnează False. | |||
Verifică dacă m este o putere a lui n. Dacă nu este, afișează un mesaj de eroare și returnează False. | |||
Dacă toate verificările sunt trecute fără a găsi probleme, funcția returnează True, semnalând că datele sunt valide. | |||
Funcția compute_exponent(n, m): | |||
Această funcție primește doi parametri, n și m, reprezentând două numere întregi. | |||
Funcția calculează exponentul la care trebuie ridicat n pentru a obține m. | |||
Inițial, exponentul este setat la 1. Apoi, într-un ciclu while, m este împărțit la n până când m devine mai mic sau egal cu n. În fiecare iterație, exponentul este incrementat cu 1. | |||
La final, funcția afișează exponentul. | |||
În cadrul secțiunii if __name__ == "__main__": se realizează următoarele acțiuni: | |||
Se citește de la tastatură două numere întregi separate prin spațiu, n și m, și sunt convertite în variabilele corespunzătoare. | |||
Se apelează funcția validare_date(n, m) pentru a verifica validitatea datelor. Dacă datele sunt valide, se apelează funcția compute_exponent(n, m) pentru a calcula și afișa exponentul. | |||
Dacă datele nu sunt valide, se intră într-un ciclu while până când se introduc date valide. În fiecare iterație se solicită introducerea valorilor n și m, iar apoi se reevaluează validitatea acestora. Ciclul se oprește când se introduc date valide și se calculează și afișează exponentul corespunzător. |
Latest revision as of 18:00, 29 June 2023
Cerința[edit | edit source]
Se dau numerele n și m. Să se determine exponentul la care se ridică n pentru a obține m.
Date de intrare[edit | edit source]
Programul citește de la tastatură numerele n și m, separate prin spații.
Date de ieșire[edit | edit source]
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi programul va afișa pe ecran exponentul la care se ridică n pentru a obține m. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse."
Restricții și precizări[edit | edit source]
1 ≤ n , m ≤ 1.000.000 n ≠ 1 se garantează ca m este putere a lui n</span.
Exemplu:[edit | edit source]
- Intrare
- 2 4
Ieșire
- Datele sunt introduse corect
- 2
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1"> def validare_date(n, m):
if not (1 <= n <= 1000000) or not (1 <= m <= 1000000): print("n și m trebuie să fie între 1 și 1.000.000.") return False if n == 1: print("n trebuie să fie diferit de 1.") return False if m % n != 0: print("m trebuie să fie putere a lui n.") return False return True
def compute_exponent(n, m):
#Determină exponentul la care trebuie ridicat n pentru a obține m. exponent = 1 while m > n: m //= n exponent += 1 print(f"Exponentul la care trebuie ridicat {n} pentru a obține {m} este: {exponent}")
if __name__ == "__main__":
# Citire input și validare n, m = map(int, input("Introduceți n și m, separate prin spațiu: ").split()) if validare_date(n, m): exponent = compute_exponent(n, m) else: while not validare_date(n, m): n, m = map(int, input("Introduceți n și m, separate prin spațiu: ").split())
</syntaxhighlight>
Explicatie cod:[edit | edit source]
Codul Python de mai sus definește două funcții: validare_date și compute_exponent. Iată o explicație pentru fiecare dintre ele:
Funcția validare_date(n, m): Această funcție primește doi parametri, n și m, reprezentând două numere întregi. Verifică mai multe condiții pentru a valida datele introduse: Verifică dacă n și m sunt ambele între 1 și 1.000.000. Dacă nu sunt, afișează un mesaj de eroare și returnează False. Verifică dacă n este diferit de 1. Dacă nu este, afișează un mesaj de eroare și returnează False. Verifică dacă m este o putere a lui n. Dacă nu este, afișează un mesaj de eroare și returnează False. Dacă toate verificările sunt trecute fără a găsi probleme, funcția returnează True, semnalând că datele sunt valide. Funcția compute_exponent(n, m): Această funcție primește doi parametri, n și m, reprezentând două numere întregi. Funcția calculează exponentul la care trebuie ridicat n pentru a obține m. Inițial, exponentul este setat la 1. Apoi, într-un ciclu while, m este împărțit la n până când m devine mai mic sau egal cu n. În fiecare iterație, exponentul este incrementat cu 1. La final, funcția afișează exponentul. În cadrul secțiunii if __name__ == "__main__": se realizează următoarele acțiuni:
Se citește de la tastatură două numere întregi separate prin spațiu, n și m, și sunt convertite în variabilele corespunzătoare. Se apelează funcția validare_date(n, m) pentru a verifica validitatea datelor. Dacă datele sunt valide, se apelează funcția compute_exponent(n, m) pentru a calcula și afișa exponentul. Dacă datele nu sunt valide, se intră într-un ciclu while până când se introduc date valide. În fiecare iterație se solicită introducerea valorilor n și m, iar apoi se reevaluează validitatea acestora. Ciclul se oprește când se introduc date valide și se calculează și afișează exponentul corespunzător.