2828 - Acronim: Difference between revisions

From Bitnami MediaWiki
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...
 
No edit summary
 
Line 23: Line 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


Line 39: Line 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:
Line 58: Line 60:
     except IndexError:
     except IndexError:
         print("Datele de intrare nu corespund restrictiilor impuse")
         print("Datele de intrare nu corespund restrictiilor impuse")
</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 18:51, 2 May 2023

Cerința[edit | edit source]

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[edit | edit source]

Programul citește de la tastatură șirul.

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 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[edit | edit source]

cuvantul nu conține cifre sau simboluri

Exemplu 1[edit | edit source]

Intrare
Universitatea de Arte Plastice BUCURESTI
Ieșire
Datele introduse corespund restricțiilor impuse.
UAPB


Exemplu 2[edit | edit source]

Intrare
1848 Revolutie
Ieșire
Datele de intrare nu corespund restricțiilor impuse.


Rezolvare[edit | edit source]

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

  1. 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")

</syntaxhighlight>