2997 - Prescurtat

From Bitnami MediaWiki
Revision as of 14:11, 26 April 2023 by Carla Chereji (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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):

   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>