0011 - Vocale: Difference between revisions

From Bitnami MediaWiki
No edit summary
 
Line 21: Line 21:
<br>
<br>
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line="1">
# 0011 Vocale
# 0011 Vocale
def validare(propozitie):
def validare(propozitie):               # functia de validare a datelor de intrare
     if len(propozitie) > 20:
     if len(propozitie) > 20:
         raise ValueError
         raise ValueError


     for caracter in propozitie:
     for caracter in propozitie:         # verificam caracterele sa fie doar litere mici si spatii
         if ord(caracter) < ord('a') and caracter != ' ':
         if (ord(caracter) < ord('a') or ord(caracter) > ord('z')) and caracter != ' ':
             raise ValueError
             raise ValueError


Line 35: Line 35:




def vocala(litera):
def vocala(litera):                 # functia de verificare daca litera e vocala
     lista_vocale = "aeiou"
     lista_vocale = "aeiou"
     if litera in lista_vocale:
     if litera in lista_vocale:
Line 43: Line 43:




def vocale(propozitie):
def vocale(propozitie):             # functia de rezolvare


     for litera in propozitie:
     for litera in propozitie:
         if vocala(litera) is True:
         if vocala(litera) is True:
             print(chr(ord(litera) - 32), end="")
             print(chr(ord(litera) - 32), end="")
            # daca e vocala scadem din codul ascii 32 ca sa obtinem echivalentul literei in litera mare
         else:
         else:
             print(litera, end="")
             print(litera, end="")
Line 53: Line 54:


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:
         sir = input(f"Introduceti sirul ")
         sir = input(f"Introduceti sirul ")         # citirea propozitiei
         validare(sir)
         validare(sir)                               # apelul functiei de validare
         vocale(sir)
         vocale(sir)                                 # apelul functiei de rezolvare


     except ValueError:
     except ValueError:

Latest revision as of 17:44, 2 May 2023

Cerința[edit | edit source]

Se dă un şir de cel mult 20 caractere ce conţine numai litere mici ale alfabetului englez.Să se afişeze şirul obţinut prin înlocuirea fiecărei vocale cu litera mare corespunzătoare.

Date de intrare[edit | edit source]

Programul va citi de la tastatură şirul 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 se va afişa şirul transformat corespunzător. În caz contrar, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse".

Restricții și precizări[edit | edit source]

se consideră vocale literele din multimea {a,e,i,o,u}

Exemplu 1[edit | edit source]

Intrare
romancier
Ieșire
Datele introduse corespund restricțiilor impuse.
rOmAncIEr


Exemplu 2[edit | edit source]

Intrare
pătrat
Ieșire
Datele de intrare nu corespund restricțiilor impuse.


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line="1">

  1. 0011 Vocale

def validare(propozitie): # functia de validare a datelor de intrare

   if len(propozitie) > 20:
       raise ValueError
   for caracter in propozitie:         # verificam caracterele sa fie doar litere mici si spatii
       if (ord(caracter) < ord('a') or ord(caracter) > ord('z')) and caracter != ' ':
           raise ValueError
   print("Datele de intrare corespund restrictiilor impuse")
   return True


def vocala(litera): # functia de verificare daca litera e vocala

   lista_vocale = "aeiou"
   if litera in lista_vocale:
       return True
   else:
       return False


def vocale(propozitie): # functia de rezolvare

   for litera in propozitie:
       if vocala(litera) is True:
           print(chr(ord(litera) - 32), end="")
           # daca e vocala scadem din codul ascii 32 ca sa obtinem echivalentul literei in litera mare
       else:
           print(litera, end="")


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 sirul ")          # citirea propozitiei
       validare(sir)                               # apelul functiei de validare
       vocale(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>