0011 - Vocale: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == Cerința == 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 == Programul va citi de la tastatură şirul 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 se va afişa şirul transformat corespunzător....
 
No edit summary
 
(One intermediate revision by the same user not shown)
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="")




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>