2997 - Prescurtat
Cerință
Scrieți funcția cu următorul antet:
void Prescurtat(char s[])
Funcția primește ca parametru un text de cel mult 50 de caractere, alcătuit din cuvinte separate prin câte un spațiu și formate din litere mari ale alfabetului englez, urmate eventual de caracterul . (punct), dacă sunt scrise prescurtat. Textul reprezintă numele unei instituții de învățământ și doar cuvintele din mulțimea {COLEGIUL, LICEUL, NATIONAL, TEORETIC} pot fi prescurtate, eliminându-se ultimele lor litere. Funcția va returna tot prin intermediul parametrului s numele instituției scris fără prescurtări.
Restricții de precizări
- Lungimea inițială a șirului s va fi de cel mult 50, iar la final de cel mult 100.
- Puteți utiliza funcțiile pentru șirurile de caractere din biblioteca cstring
Exemplul 1
- Intrare
- COLEG. NAT. DE INFORMATICA
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- COLEGIUL NATIONAL DE INFORMATICA
Rezolvare ver. 1
<syntaxhighlight lang="python" line="1" start="1"> def validare(s):
return s.isalpha()
def Prescurtat(s):
# lista cu cuvintele din text cuvinte = s.split()
# dictionarul cu prescurtarile si cuvintele complete prescurtari = { "COL.": "COLEGIUL", "LIC.": "LICEUL", "NAT.": "NATIONAL", "TEOR.": "TEORETIC" }
# lista cuvintelor complete cuvinte_complete = []
# parcurgem fiecare cuvant for cuvant in cuvinte: # verificam daca cuvantul este o prescurtare if cuvant in prescurtari: # adaugam cuvantul complet in lista cuvinte_complete.append(prescurtari[cuvant]) else: # altfel, adaugam cuvantul asa cum este in lista cuvinte_complete.append(cuvant)
# concatenam cuvintele complete in numele institutiei nume = " ".join(cuvinte_complete)
# eliminam punctul final, daca exista if nume[-1] == ".": nume = nume[:-1]
# actualizam parametrul s cu numele institutiei fara prescurtari s = nume
if __name__ == "__main__":
s = int(input("Introduceți s: "))
if validare(s): print("Datele introduse corespund restricțiilor impuse.") Prescurtat(s)
else: print("Datele introduse nu corespund restricțiilor impuse.")
</syntaxhighlight>