0012 - Initiale
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. Transformaţi şirul dat astfel încât prima şi ultima literă a fiecărui cuvânt să fie înlocuite cu litera mare corespunzătoare.
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 se va afișa propoziţia transformată. Î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
Exemplu 1[edit | edit source]
- Intrare
- mare frig rosu
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- MarE FriG RosU
Exemplu 2[edit | edit source]
- Intrare
- Este Rece CAld
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1">
- 0012 Initiale
def validare(propozitie): # functia de validare a datelor de intrare
if len(propozitie) > 255: raise ValueError # daca nu sunt respectate datele de intrare ridicam eroarea 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 initiale(propozitie): # functia de rezolvare
for iterator in range(len(propozitie)): # parcurgem fiecare pozitie din sir litera = propozitie[iterator] if (iterator == 0 or iterator == len(propozitie) - 1) and 'a' <= litera <= 'z': # daca e litera si se afla la inceputul sau finalul sirului o facem litera mare # scadem 32 din codul ascii pentru a deveni majuscula print(chr(ord(litera) - 32), end="") elif (propozitie[iterator - 1] == ' ' or propozitie[iterator + 1] == ' ') and 'a' <= litera <= 'z': # acelasi lucru daca e litera si unul din vecini e spatiu print(chr(ord(litera) - 32), end="") 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 sirului validare(sir) # validarea sirului initiale(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>