0095 - Perechi Vocale

From Bitnami MediaWiki

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">

  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>