2828 - Acronim: Diferență între versiuni
(Pagină nouă: == Cerința == Se consideră un text cu cel mult 100 de caractere, în care cuvintele sunt formate numai din litere mari și mici ale alfabetului englez și sunt separate prin câte un spațiu. Textul reprezintă numele unei instituții sau al unei organizații. Scrieți un program care citește de la tastatură un text de tipul precizat și construiește în memorie, apoi afișează pe ecran, un șir de caractere ce reprezintă acronimul corespunzător numelui citit. Acroni...) |
Fără descriere a modificării |
||
Linia 23: | Linia 23: | ||
<br> | <br> | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line="1"> | ||
#2828 Acronim | # 2828 Acronim | ||
def validare(propozitie): | def validare(propozitie): # functia de validare a datelor de intrare | ||
if len(propozitie) > 100: | if len(propozitie) > 100: | ||
raise ValueError | raise ValueError | ||
# daca dsatele de intrare nu corespund, ridicam eroarea ValueError | |||
for caracter in propozitie: | for caracter in propozitie: | ||
if ord(caracter) > ord('z') or ord(caracter) < ord('a'): | if ord(caracter) > ord('z') or ord(caracter) < ord('a'): | ||
if ord(caracter) > ord('Z') or ord(caracter) < ord('A'): | if ord(caracter) > ord('Z') or ord(caracter) < ord('A'): | ||
if caracter != ' ': | if caracter != ' ': # verificam sa fie litera sau spatiu | ||
raise ValueError | raise ValueError | ||
Linia 39: | Linia 41: | ||
def acronim(propozitie): | def acronim(propozitie): # functia de rezolvare | ||
propozitie = propozitie.split() | propozitie = propozitie.split() # impartim textul in cuvinte | ||
for cuvant in propozitie: | for cuvant in propozitie: | ||
if 'A' <= cuvant[0] <= 'Z': | if 'A' <= cuvant[0] <= 'Z': # daca prima litera din cuvant e majuscula, o afisam | ||
print(cuvant[0], end="") | print(cuvant[0], 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 textul ") | sir = input(f"Introduceti textul ") # citirea textului | ||
validare(sir) | validare(sir) # apelul functiei de validare | ||
acronim(sir) | acronim(sir) # apelul functiei de rezolvare | ||
except ValueError: | except ValueError: | ||
Linia 58: | Linia 60: | ||
except IndexError: | except IndexError: | ||
print("Datele de intrare nu corespund restrictiilor impuse") | print("Datele de intrare nu corespund restrictiilor impuse") | ||
</syntaxhighlight> | </syntaxhighlight> |
Versiunea curentă din 2 mai 2023 18:51
Cerința
Se consideră un text cu cel mult 100 de caractere, în care cuvintele sunt formate numai din litere mari și mici ale alfabetului englez și sunt separate prin câte un spațiu. Textul reprezintă numele unei instituții sau al unei organizații.
Scrieți un program care citește de la tastatură un text de tipul precizat și construiește în memorie, apoi afișează pe ecran, un șir de caractere ce reprezintă acronimul corespunzător numelui citit. Acronimul este format din primul caracter al fiecărui cuvânt al numelui care începe cu majusculă.
Date de intrare
Programul citește de la tastatură șirul.
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 acronimul construit.. În caz contrar, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse".
Restricții și precizări
- cuvantul nu conține cifre sau simboluri
Exemplu 1
- Intrare
- Universitatea de Arte Plastice BUCURESTI
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- UAPB
Exemplu 2
- Intrare
- 1848 Revolutie
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare
# 2828 Acronim
def validare(propozitie): # functia de validare a datelor de intrare
if len(propozitie) > 100:
raise ValueError
# daca dsatele de intrare nu corespund, ridicam eroarea ValueError
for caracter in propozitie:
if ord(caracter) > ord('z') or ord(caracter) < ord('a'):
if ord(caracter) > ord('Z') or ord(caracter) < ord('A'):
if caracter != ' ': # verificam sa fie litera sau spatiu
raise ValueError
print("Datele de intrare corespund restrictiilor impuse")
return True
def acronim(propozitie): # functia de rezolvare
propozitie = propozitie.split() # impartim textul in cuvinte
for cuvant in propozitie:
if 'A' <= cuvant[0] <= 'Z': # daca prima litera din cuvant e majuscula, o afisam
print(cuvant[0], 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 textul ") # citirea textului
validare(sir) # apelul functiei de validare
acronim(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")