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

2. Verifica se o dado de entrada tem nchar > 1

Cálculos

anagrama.png

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

6. Se a palavra não possui letras repetidas:

7. Se a palavra possui letras repetidas:

8. Obtém os arranjos das letras e guarda em arranjos

9. Retorna todos os arranjos armazenados em arranjos

Saída

Referências