0095 - Perechi Vocale: Difference between revisions
Pagină nouă: == Cerința == Se dă un șir de caractere reprezentând o propoziție formată din litere mici ale alfabetului englez și spații. Determinați numărul de perechi de vocale consecutive din propoziție. == Date de intrare == Programul citește de la tastatură propoziția dată. == Date de ieșire == 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 numărul de perechi de vocale conse... |
No edit summary |
||
Line 23: | Line 23: | ||
<br> | <br> | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line="1"> | ||
# 0095 PerechiVocale | # 0095 PerechiVocale | ||
def validare(propozitie): | def validare(propozitie): # functia de validare a datelor de intrare | ||
if len(propozitie) > 255: | if len(propozitie) > 255: | ||
raise ValueError | raise ValueError | ||
# daca dsatele de intrare nu corespund, ridicam eroarea ValueError | |||
for litera in propozitie: | for litera in propozitie: | ||
if litera < 'a' or litera > 'z': | if litera < 'a' or litera > 'z': # trebuie sa fie litera sau spatiu | ||
if litera != ' ': | if litera != ' ': | ||
raise ValueError | raise ValueError | ||
Line 38: | Line 38: | ||
def vocala(litera): | def vocala(litera): # functie ce verifica daca litera e vocala | ||
lista_vocale = "aeiouAEIOU" | lista_vocale = "aeiouAEIOU" | ||
if litera in lista_vocale: | if litera in lista_vocale: | ||
Line 46: | Line 46: | ||
def perechivocale(propozitie): | def perechivocale(propozitie): # functia de rezolvare | ||
nr_perechi = 0 | nr_perechi = 0 # variabila in care numaram perechile | ||
for i in range(len(propozitie)-1): | for i in range(len(propozitie)-1): # parcurgem propozitia | ||
if vocala(propozitie[i]) is True and vocala(propozitie[i+1]) is True: | if vocala(propozitie[i]) is True and vocala(propozitie[i+1]) is True: | ||
# daca si caracterul curent si urmatorul sunt vocale, numaram perechea | |||
nr_perechi += 1 | nr_perechi += 1 | ||
Line 58: | Line 59: | ||
if __name__ == '__main__': | if __name__ == '__main__': | ||
# din cauza datelor de intrare pot aparea 2 tipuri de erori, valueError sau IndexError pe care le tratam | |||
try: | try: | ||
cuv = input(f"Introduceti textul ") | cuv = input(f"Introduceti textul ") # citirea textului | ||
validare(cuv) | validare(cuv) # apelul validarii | ||
perechivocale(cuv) | perechivocale(cuv) # apelul functiei de rezolvare | ||
except ValueError: | except ValueError: |
Latest revision as of 19:36, 2 May 2023
Cerința[edit | edit source]
Se dă un șir de caractere reprezentând o propoziție formată din litere mici ale alfabetului englez și spații. Determinați numărul de perechi de vocale consecutive din propoziție.
Date de intrare[edit | edit source]
Programul citește de la tastatură propoziția dată.
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 numărul de perechi de vocale consecutive. În caz contrar, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse".
Restricții și precizări[edit | edit source]
- -șirul de caractere citit conține cel mult 255 de caractere
- -se consideră vocale caracterele din mulțimea {a,e,i,o,u}
Exemplu 1[edit | edit source]
- Intrare
- aceasta familie are doua case
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 4
Exemplu 2[edit | edit source]
- Intrare
- 123
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1">
- 0095 PerechiVocale
def validare(propozitie): # functia de validare a datelor de intrare
if len(propozitie) > 255: raise ValueError # daca dsatele de intrare nu corespund, ridicam eroarea ValueError for litera in propozitie: if litera < 'a' or litera > 'z': # trebuie sa fie litera sau spatiu if litera != ' ': raise ValueError
print("Datele de intrare corespund restrictiilor impuse") return True
def vocala(litera): # functie ce verifica daca litera e vocala
lista_vocale = "aeiouAEIOU" if litera in lista_vocale: return True else: return False
def perechivocale(propozitie): # functia de rezolvare
nr_perechi = 0 # variabila in care numaram perechile
for i in range(len(propozitie)-1): # parcurgem propozitia if vocala(propozitie[i]) is True and vocala(propozitie[i+1]) is True: # daca si caracterul curent si urmatorul sunt vocale, numaram perechea nr_perechi += 1
print(nr_perechi)
if __name__ == '__main__':
# din cauza datelor de intrare pot aparea 2 tipuri de erori, valueError sau IndexError pe care le tratam try: cuv = input(f"Introduceti textul ") # citirea textului validare(cuv) # apelul validarii perechivocale(cuv) # 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>