2997 - Prescurtat
Cerință[edit | edit source]
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[edit | edit source]
- 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[edit | edit source]
- Intrare
- COLEG. NAT. DE INFORMATICA
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- COLEGIUL NATIONAL DE INFORMATICA
Rezolvare ver. 1[edit | edit source]
<syntaxhighlight lang="python" line="1" start="1"> def validare(s):
return s.isalpha()
def Prescurtat(s):
con = "" # Variabila pentru stocarea sirului prescurtat tokens = s.split(" ") # Impartirea sirului s in token-uri folosind spatiul ca delimitator for token in tokens: lp = len(token) # Lungimea token-ului curent if token[lp-1] == '.': # Verificam daca token-ul se termina cu punct if token[:2] == 'CO': # Verificam daca primele doua caractere ale token-ului sunt 'CO' con += "COLEGIUL " # Adaugam la sirul prescurtat 'COLEGIUL ' elif token[:2] == 'LI': # Verificam daca primele doua caractere ale token-ului sunt 'LI' con += "LICEUL " # Adaugam la sirul prescurtat 'LICEUL ' elif token[:2] == 'NA': # Verificam daca primele doua caractere ale token-ului sunt 'NA' con += "NATIONAL " # Adaugam la sirul prescurtat 'NATIONAL ' elif token[:2] == 'TE': # Verificam daca primele doua caractere ale token-ului sunt 'TE' con += "TEORETIC " # Adaugam la sirul prescurtat 'TEORETIC ' else: con += token + " " # Daca token-ul nu se termina cu punct, il adaugam la sirul prescurtat cu un spatiu la final con = con.rstrip() # Stergem spatiile de la sfarsitul sirului prescurtat return con
if __name__ == "__main__":
s = input("Introduceti sirul de caractere: ") # Citim sirul de la tastatura print("Inainte:", s) # Afisam sirul inainte de prescurtare s = Prescurtat(s) # Apelam functia Prescurtat pentru a prescurta sirul print("Dupa:", s) # Afisam sirul dupa prescurtare
if validare(s): print("Datele introduse corespund restricțiilor impuse.") else: print("Datele introduse nu corespund restricțiilor impuse.")
</syntaxhighlight>