1456 - Cuvant: Difference between revisions
No edit summary |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 39: | Line 39: | ||
<br> | <br> | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line="1"> | ||
# 1456 Cuvant | # 1456 - Cuvant | ||
def validare(propozitie): | def validare(propozitie): # functia de verificare a datelor de intrare | ||
if len(propozitie) > 100: | if len(propozitie) > 100: | ||
raise ValueError | raise ValueError | ||
# daca dsatele de intrare nu corespund, ridicam eroarea ValueError | |||
for caracter in propozitie: | for caracter in propozitie: # verificam sa fie litera mica | ||
if ord(caracter) > ord('z') or ord(caracter) < ord('a'): | if ord(caracter) > ord('z') or ord(caracter) < ord('a'): | ||
raise ValueError | raise ValueError | ||
Line 53: | Line 53: | ||
def vocala(litera): | def vocala(litera): # functie de verificare vocale | ||
lista_vocale = "aeiou" | lista_vocale = "aeiou" | ||
if litera in lista_vocale: | if litera in lista_vocale: | ||
Line 63: | Line 63: | ||
def cuvant(propozitie): | def cuvant(propozitie): | ||
nr_consoane = 0 | nr_consoane = 0 # trebuie sa numaram cate consoane are cuvantul | ||
for litera in propozitie: | for litera in propozitie: | ||
if vocala(litera) is True and litera != 'i': | if vocala(litera) is True and litera != 'i': # daca e vocala si nu e i atunci cuvantul nu e valid | ||
print("NU") | print("NU") | ||
return | return | ||
if vocala(litera) is False: | if vocala(litera) is False: # numaram consoanele | ||
nr_consoane += 1 | nr_consoane += 1 | ||
if nr_consoane == 0: | if nr_consoane == 0: # daca nu sunt consoane, cuvantul nu e valid | ||
print("NU") | print("NU") | ||
return | return | ||
print("DA") | print("DA") # daca am trecut de verificari, e valid | ||
if | if __name__ == '__main__': | ||
# din cauza datelor de intrare pot aparea 2 tipuri de erori, valueError sau IndexError pe care le tratam | |||
try: | try: | ||
sir = input(f"Introduceti cuvantul ") | sir = input(f"Introduceti cuvantul ") # citirea cuvantului | ||
validare(sir) | validare(sir) # apelul functiei de validare | ||
cuvant(sir) | cuvant(sir) # apelul functiei de rezolvare | ||
except ValueError: | except ValueError: | ||
Line 89: | Line 89: | ||
except IndexError: | except IndexError: | ||
print("Datele de intrare nu corespund restrictiilor impuse") | print("Datele de intrare nu corespund restrictiilor impuse") | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 18:44, 2 May 2023
Cerința[edit | edit source]
Se consideră un cuvânt format din cel puțin două și cel mult 100 de caractere, numai litere mici ale alfabetului englez. Scrieţi un program care citeşte de la tastatură un cuvânt de tipul precizat și afișează pe ecran mesajul DA în cazul în care cuvântul conține doar consoane şi, eventual, vocala i, sau mesajul NU în caz contrar.
Date de intrare[edit | edit source]
Programul citește de la tastatură un cuvânt.
Date de ieșire[edit | edit source]
Dacă datele sunt introduse corect, pe ecran se va afișa: " Datele de intrare corespund restrictiilor impuse", apoi pe un rand nou va afișa mesajul DA în cazul în care cuvântul conține doar consoane şi, eventual, vocala i, sau mesajul NU în caz contrar.. În caz contrar, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse".
Restricții și precizări[edit | edit source]
- cuvântul format din cel puțin două și cel mult 100 de caractere
- cuvântul are numai litere mici ale alfabetului englez
Exemplu 1[edit | edit source]
- Intrare
- inscriptibil
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- DA
Exemplu 2[edit | edit source]
- Intrare
- brr
- Ieșire
- DA
Exemplu 3[edit | edit source]
- Intrare
- inestimabil
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- NU
Exemplu 4[edit | edit source]
- Intrare
- iii
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- NU
Exemplu 5[edit | edit source]
- Intrare
- MaGaZIn
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1">
- 1456 - Cuvant
def validare(propozitie): # functia de verificare a datelor de intrare
if len(propozitie) > 100: raise ValueError # daca dsatele de intrare nu corespund, ridicam eroarea ValueError for caracter in propozitie: # verificam sa fie litera mica if ord(caracter) > ord('z') or ord(caracter) < ord('a'): raise ValueError
print("Datele de intrare corespund restrictiilor impuse") return True
def vocala(litera): # functie de verificare vocale
lista_vocale = "aeiou" if litera in lista_vocale: return True else: return False
def cuvant(propozitie):
nr_consoane = 0 # trebuie sa numaram cate consoane are cuvantul for litera in propozitie: if vocala(litera) is True and litera != 'i': # daca e vocala si nu e i atunci cuvantul nu e valid print("NU") return if vocala(litera) is False: # numaram consoanele nr_consoane += 1
if nr_consoane == 0: # daca nu sunt consoane, cuvantul nu e valid print("NU") return
print("DA") # daca am trecut de verificari, e valid
if __name__ == '__main__':
# din cauza datelor de intrare pot aparea 2 tipuri de erori, valueError sau IndexError pe care le tratam try: sir = input(f"Introduceti cuvantul ") # citirea cuvantului validare(sir) # apelul functiei de validare cuvant(sir) # apelul functiei de rezolvare
except ValueError: print("Datele de intrare nu corespund restrictiilor impuse") except IndexError: print("Datele de intrare nu corespund restrictiilor impuse")
</syntaxhighlight>