0032 - EliminareCifre: Difference between revisions
Pagină nouă: ==Cerinţa== Să se scrie definiția completă a funcției Python P care primește prin intermediul parametrului n un număr natural cu cel mult 9 cifre, iar prin intermediul parametrului c o cifră. Funcția întoarce tot prin intermediul parametrului n numărul obținut prin eliminarea tuturor aparițiilor cifrei c. ==Restricţii şi precizări== * numele funcției va fi P * funcția va avea doi parametri: primul parametru este n, iar al doilea este c * dacă după elimina... |
No edit summary |
||
Line 6: | Line 6: | ||
* funcția va avea doi parametri: primul parametru este n, iar al doilea este c | * funcția va avea doi parametri: primul parametru este n, iar al doilea este c | ||
* dacă după eliminare numărul obținut nu mai conține nici o cifră sau conține doar cifre 0, rezultatul va fi 0 | * dacă după eliminare numărul obținut nu mai conține nici o cifră sau conține doar cifre 0, rezultatul va fi 0 | ||
==Date de intrare== | |||
Programul citește de la tastatură numerele n și c. | |||
==Date de ieșire== | |||
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele introduse sunt valide.", apoi pe un rând nou numărul n fără cifrele c. În cazul în care n sau c depășesc limitele date ori nu sunt numere întregi, se va afișa un mesaj corespunzător în funcție de eroarea generată. | |||
==Exemplu== | ==Exemplu== | ||
; Intrare | |||
: Introduceți un număr natural cu cel mult 9 cifre: 2524722 | |||
: Introduceți o cifră între 0 și 9: 5 | |||
; Ieșire | |||
: Datele introduse sunt valide. | |||
: Numărul obținut prin eliminarea cifrei 5 din 2524722 este: 224722 | |||
==Rezolvare== | ==Rezolvare== | ||
Line 31: | Line 39: | ||
if __name__ == "__main__": | |||
try: | try: | ||
n = int(input("Introduceți un număr natural cu cel mult 9 cifre: ")) | n = int(input("Introduceți un număr natural cu cel mult 9 cifre: ")) | ||
c = int(input("Introduceți o cifră între 0 și 9: ")) | c = int(input("Introduceți o cifră între 0 și 9: ")) | ||
validare_P(n, c) | validare_P(n, c) | ||
print("Datele introduse sunt valide.") | |||
rezultat = P(n, c) | rezultat = P(n, c) | ||
print(f"Numărul obținut prin eliminarea cifrei {c} din {n} este: {rezultat}") | print(f"Numărul obținut prin eliminarea cifrei {c} din {n} este: {rezultat}") | ||
Line 41: | Line 50: | ||
print(f"O eroare a survenit: {ex}") | print(f"O eroare a survenit: {ex}") | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Explicație== | |||
Funcția `validare_P(n, c)` este utilizată pentru a verifica dacă argumentele primite de funcția `P(n, c)` respectă anumite condiții. Aceasta verifică dacă `n` este un număr natural (întreg pozitiv) și dacă `c` este o cifră între 0 și 9. Dacă oricare dintre aceste condiții nu este îndeplinită, se va arunca o excepție de tip `ValueError` cu un mesaj corespunzător. | |||
Funcția `P(n, c)` primește două argumente: `n`, un număr natural cu cel mult 9 cifre și `c`, o cifră între 0 și 9. Aceasta mai întâi verifică dacă argumentele primite sunt valide, folosind funcția `validare_P(n, c)`. Apoi, convertește numărul `n` la un șir de caractere și elimină toate aparițiile cifrei `c` din șirul obținut, folosind o listă de comprimare și funcția `join()`. Dacă șirul obținut are lungimea 0 sau conține doar cifra 0, se va returna 0. În caz contrar, se va returna numărul format din șirul obținut, folosind funcția `int()`. | |||
În blocul `if __name__ == "__main__":` se citește numărul `n` și cifra `c` de la tastatură. Se verifică apoi dacă acestea sunt valide, folosind funcția `validare_P(n, c)`. Dacă acestea sunt valide, se afișează un mesaj de confirmare și se calculează rezultatul apelând funcția `P(n, c)`. În caz contrar, se va afișa mesajul de eroare corespunzător. |
Latest revision as of 04:03, 3 May 2023
Cerinţa[edit | edit source]
Să se scrie definiția completă a funcției Python P care primește prin intermediul parametrului n un număr natural cu cel mult 9 cifre, iar prin intermediul parametrului c o cifră. Funcția întoarce tot prin intermediul parametrului n numărul obținut prin eliminarea tuturor aparițiilor cifrei c.
Restricţii şi precizări[edit | edit source]
- numele funcției va fi P
- funcția va avea doi parametri: primul parametru este n, iar al doilea este c
- dacă după eliminare numărul obținut nu mai conține nici o cifră sau conține doar cifre 0, rezultatul va fi 0
Date de intrare[edit | edit source]
Programul citește de la tastatură numerele n și c.
Date de ieșire[edit | edit source]
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele introduse sunt valide.", apoi pe un rând nou numărul n fără cifrele c. În cazul în care n sau c depășesc limitele date ori nu sunt numere întregi, se va afișa un mesaj corespunzător în funcție de eroarea generată.
Exemplu[edit | edit source]
- Intrare
- Introduceți un număr natural cu cel mult 9 cifre: 2524722
- Introduceți o cifră între 0 și 9: 5
- Ieșire
- Datele introduse sunt valide.
- Numărul obținut prin eliminarea cifrei 5 din 2524722 este: 224722
Rezolvare[edit | edit source]
<syntaxhighlight lang="python"> def validare_P(n, c):
if not isinstance(n, int) or n < 0: raise ValueError("n trebuie să fie un număr natural") if not isinstance(c, int) or not 0 <= c <= 9: raise ValueError("c trebuie să fie o cifră între 0 și 9")
def P(n, c):
validare_P(n, c) n_str = str(n) n_fara_c = "".join([cifra for cifra in n_str if cifra != str(c)]) if len(n_fara_c) == 0 or all(cifra == "0" for cifra in n_fara_c): return 0 return int(n_fara_c)
if __name__ == "__main__":
try: n = int(input("Introduceți un număr natural cu cel mult 9 cifre: ")) c = int(input("Introduceți o cifră între 0 și 9: ")) validare_P(n, c) print("Datele introduse sunt valide.") rezultat = P(n, c) print(f"Numărul obținut prin eliminarea cifrei {c} din {n} este: {rezultat}") except Exception as ex: print(f"O eroare a survenit: {ex}")
</syntaxhighlight>
Explicație[edit | edit source]
Funcția `validare_P(n, c)` este utilizată pentru a verifica dacă argumentele primite de funcția `P(n, c)` respectă anumite condiții. Aceasta verifică dacă `n` este un număr natural (întreg pozitiv) și dacă `c` este o cifră între 0 și 9. Dacă oricare dintre aceste condiții nu este îndeplinită, se va arunca o excepție de tip `ValueError` cu un mesaj corespunzător.
Funcția `P(n, c)` primește două argumente: `n`, un număr natural cu cel mult 9 cifre și `c`, o cifră între 0 și 9. Aceasta mai întâi verifică dacă argumentele primite sunt valide, folosind funcția `validare_P(n, c)`. Apoi, convertește numărul `n` la un șir de caractere și elimină toate aparițiile cifrei `c` din șirul obținut, folosind o listă de comprimare și funcția `join()`. Dacă șirul obținut are lungimea 0 sau conține doar cifra 0, se va returna 0. În caz contrar, se va returna numărul format din șirul obținut, folosind funcția `int()`.
În blocul `if __name__ == "__main__":` se citește numărul `n` și cifra `c` de la tastatură. Se verifică apoi dacă acestea sunt valide, folosind funcția `validare_P(n, c)`. Dacă acestea sunt valide, se afișează un mesaj de confirmare și se calculează rezultatul apelând funcția `P(n, c)`. În caz contrar, se va afișa mesajul de eroare corespunzător.