0011 - Vocale: Difference between revisions
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 | 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">
- 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>