0013 - Prefixe
Cerința[edit | edit source]
Se dă un şir de caractere reprezentând un cuvânt. Să se afişeze lista prefixelor şi lista sufixelor cuvântului dat.
Date de intrare[edit | edit source]
Programul citeşte de la tastatură un şir de caractere
Date de ieșire[edit | edit source]
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 lista prefixelor, câte unul pe un rând al ecranului, şi lista sufixelor, câte unul pe un rând al ecranului. În caz contrar, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse".
Restricții și precizări[edit | edit source]
- şirul de caractere citit va conţine cel mult 10 litere mici ale alfabetului englez
Exemplu 1[edit | edit source]
- Intrare
- program
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- program
- progra
- progr
- prog
- pro
- pr
- p
- program
- rogram
- ogram
- gram
- ram
- am
- m
Exemplu 2[edit | edit source]
- Intrare
- $$%$%% 1234567898765432
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1">
- 0013 Prefixe
def validare(cuvant): # functia de validare a datelor de intrare
if len(cuvant) > 10: raise ValueError
# daca dsatele de intrare nu corespund, ridicam eroarea ValueError
for litera in cuvant: if litera < 'a' or litera > 'z': # verificam sa fie si doar litera mica raise ValueError
print("Datele de intrare corespund restrictiilor impuse") return True
def prefixe(cuvant): # functia de rezolvare
aux = len(cuvant) # ne trebuie capatul cuvantului pentru a afisa prefixele
while aux: print(cuvant[:aux]) # afisam pana in capat aux -= 1 # scadem capatul
aux = 0 # ne trebuie prima pozitie pentru a afisa sufixele while aux < len(cuvant): print(cuvant[aux:]) # afisam de la inceput pana la final aux += 1 # punem inceputul pe pozitia urmatoare ca sa fie urmatorul sufix
if __name__ == '__main__':
# din cauza datelor de intrare pot aparea 2 tipuri de erori, valueError sau IndexError pe care le tratam try: cuv = input(f"Introduceti textul ") # citirea textului validare(cuv) # apelul functiei de validare prefixe(cuv) # apelul functiei de rezolvare
except ValueError: print("Datele de intrare nu corespund restrictiilor impuse") except IndexError: print("Datele de intrare nu corespund restrictiilor impuse")
</syntaxhighlight>