0095 - Perechi Vocale: Difference between revisions

From Bitnami MediaWiki
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

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 consecutive. În caz contrar, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse".

Restricții și precizări

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

Intrare
aceasta familie are doua case
Ieșire
Datele introduse corespund restricțiilor impuse.
4


Exemplu 2

Intrare
123
Ieșire
Datele de intrare nu corespund restricțiilor impuse.


Rezolvare

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