2997 - Prescurtat: Difference between revisions

From Bitnami MediaWiki
Line 65: Line 65:


if __name__ == "__main__":
if __name__ == "__main__":
     s = int(input("Introduceți s: ")
     s = input("Introduceți s: ")





Revision as of 15:37, 22 April 2023

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 = 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>