2828 - Acronim

De la Universitas MediaWiki
Versiunea din 27 martie 2023 13:44, autor: Hotico Iulia Denisa (discuție | contribuții) (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...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)

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):
    if len(propozitie) > 100:
        raise 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 != ' ':
                    raise ValueError

    print("Datele de intrare corespund restrictiilor impuse")
    return True


def acronim(propozitie):

    propozitie = propozitie.split()
    for cuvant in propozitie:
        if 'A' <= cuvant[0] <= 'Z':
            print(cuvant[0], end="")


if __name__ == '__main__':

    try:
        sir = input(f"Introduceti textul ")
        validare(sir)
        acronim(sir)

    except ValueError:
        print("Datele de intrare nu corespund restrictiilor impuse")
    except IndexError:
        print("Datele de intrare nu corespund restrictiilor impuse")