PROPOSTA C: ANAGRAMAS
Contextualização
Anagramas são rearranjos das letras que compõem uma determinada palavra e servem para obter diferentes palavras a partir de um mesmo conjunto de letras (https://pt.wikipedia.org/wiki/Anagrama; Santos, 2014).
Exemplo
Quais os anagramas da palavra CUBO?
Anagramas = {CUBO, CUOB, COUB, COBU, CBOU, CBUO, UBCO, UBOC, UCOB, UCBO, UOCB, UOBC, BUOC, BUCO, BOUC, BOCU, BCUO, BCOU, OBCU, OBUC, OCBU, OCUB, OUBC, OUCB}
→ O que nos retorna um total de 24 anagramas.
(Exemplo retirado de: Santos, 2014)
Planejamento da função
Entrada: anagrama(“palavra”)
palavra: pode ser qualquer palavra que se tenha interesse de obter os anagramas.
Verificando os parâmetros
1. Verifica se o dado de entrada é da classe character
- if(class(“palavra”)!=“character”)
- stop(“palavra precisa ser um character”)
2. Verifica se o dado de entrada tem nchar > 1
- if(nchar(palavra)==1)
- stop(“palavra precisa ter mais do que 1 letra”)
Cálculos
- Fonte: Santos (2014)
Pseudocódigo
1. Estabelece que sejam reconhecidas letras maiúsculas e minúsculas como uma letra apenas (por exemplo: a=A)
2. Estabelece que letras com acentuação sejam reconhecidas como a mesma letra (À=a)
3. Conta o número total de letras da palavra de entrada e guarda (tl)
4. Conta o número de letras repetidas
5. conta o número de letras repetidas por letra; se não tiver letras repetidas segue para o passo
- se tiver letras repetidas:
- faz o fatorial de cada letra repetida
- multiplica o resultado do fatorial entre as letras repetidas e guarda (lr)
6. Se a palavra não possui letras repetidas:
- Calcula o número de anagramas e guarda (no.rep)
7. Se a palavra possui letras repetidas:
- Calcula o número de anagramas e guarda (rep)
8. Obtém os arranjos das letras e guarda em arranjos
9. Retorna todos os arranjos armazenados em arranjos
Saída
- Retorna ao usuário o número de anagramas possíveis de serem criados e os anagramas (os arranjos) da palavra de entrada.
Referências
- Santos, M.V.F. Combinatória e Probabilidade. Revisão: Letícia Alves dos Santos. Publicado por: X AO CUBO, 1. ed., 2014, 71p.
- Wikipedia. Disponível em: <https://pt.wikipedia.org/wiki/Anagrama>. Acessado em: 12 de maio de 2018.
