Ficha 13 – Processamento de Texto. 13.1. Inverter uma sequência Implemente a função rev_str(s) que retorna um sequência correspondente à sequência s, mas escrita na ordem inversa. Por exemplo, rev_str(‘ab12cd’) = ‘dc21ba’ 13.2. Eliminar caracteres de controle Implementar a função ctrl_to_sp(s) que substitui, por espaços, todos os caracteres de controle que ocorrem na sequência s. Por exemplo, ctrl_to_sp(‘ AB\n 12\tcd ’) = ‘ AB 12 cd ’ 13.3. Eliminar espaços iniciais e finais Utilize as funções deblank(s), disponibilizada pelo Octave, e rev_str(s) para implementar a função rem_sp13(s) que elimina todos os espaços iniciais e finais da sequência s. Por exemplo, rem_sp13(‘ AB \n 12 \t cd ’) = ‘AB \n 12 \t cd’ 13.4. Eliminar espaços repetidos Implemente a função rem_rep_sp(s) que elimina todos os espaçoes repetidos da sequência s. Por exemplo, rem_rep_sp(‘AB 12 cd’) = ‘AB 12 cd’ 13.5. Normalizar uma sequência (diapositivos das teóricas) Utilize as funções anteriores para implementer a função norm_str(s) que retorna uma sequência correspondente à sequência s, mas limpando-a dos espaços e caracteres de controle que ocorrem antes da primeira palavra, depois da última palavra ou os repetidos entre palavras. Por exemplo, norm_str(‘ AB \n 12 \t cd ’) = ‘AB 12 cd’ 13.6. Capitalizar os nomes de uma sequência Implemente a função cap_names(s) que “capitaliza” uma sequência de nomes, i.e. escrevendo as primeiras letras em maiúsculas e as restantes em minúsculas, e normalize o resultado. Por exemplo, cap_names(“ Carlos Barata”) cap_names(“ CARLOS cap_names(“carlos BARATA barata”) = ‘Carlos Barata’ ; e ”) = ‘Carlos Barata’ ; e = ‘Carlos Barata’ 13.7. Encriptar uma sequência (código de Napoleão) Implemente a função cript_nap(s,n) que codifica uma sequência s deslocando todos os seus caracteres de n casas no alfabeto. Por exemplo, com n = 3, um ‘a’ é convertido num ‘d’ e com código -2, um ‘T’ é transformado num ‘R’. Em geral, assuma que todos os caracteres têm um código entre 0 e 127, e que n é um inteiro cujo valor absoluto não excede 127). Assim, com n = 80 um ‘a’ (código 97) é transformado num ‘1’ código 49, pois rem(97+80+128, 128) = 49. Com n = -40, o caracter ‘1’, com código 33, é transformado no caracter ‘y’, código 121, pois rem(33-40+128, 128) = 121. cript_nap(“Ab ~ 34”,1) = ‘Bc! !45’ Implemente a função inversa, decript_nap(s,n), que descodifica uma sequência s com chave n. 13.8. Encriptar uma sequência (chave variável) Implemente a função cript_key(s,chave) que transforma uma sequência s deslocando todos os seus caracteres de um número de casas indicado na chave key.Por exemplo se key = [1,0,3] os 1º, 4º, 7º 10º, 13º, ... caracteres são transformados nos caracteres “seguintes”, os 2º, 5º, 8º 11º, 14º, ... caracteres são mantidos e os 3º, 6º, 9º 12º, 15º, ... caracteres são transformados em caracteres 3 lugares à frente no alfabeto. Por exemplo, cript_key(“AB 123 cd”,[1,2,3]) = ‘BD#246!eg’ Implemente a função inversa, decript_key(s,key), que descodifica uma sequência s com chave key.