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