Skip to content

Instantly share code, notes, and snippets.

@jeffersonchaves
Created April 5, 2022 20:19
Show Gist options
  • Save jeffersonchaves/0e31f0fb0022e7bfc66dcc891cd28279 to your computer and use it in GitHub Desktop.
Save jeffersonchaves/0e31f0fb0022e7bfc66dcc891cd28279 to your computer and use it in GitHub Desktop.
programa
{
inclua biblioteca Tipos
inclua biblioteca Texto
caracter alfabeto[26] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}
funcao inicio()
{
para(inteiro chave=0; chave < 26; chave++){
cadeia x = descriptografar("tvisgyte", chave)
escreva(chave, "->", x, "\n")
}
}
funcao cadeia criptografar (cadeia frase, inteiro chave){
cadeia frase_criptografada = ""
inteiro num_letras = Texto.numero_caracteres(frase)
//vai percorrer cada letra da frase
para(inteiro i=0; i < num_letras; i++){
//posicao de uma letra
caracter letra = Texto.obter_caracter(frase, i)
para(inteiro j=0; j < 26; j++){
se(letra == alfabeto[j]){
inteiro res = j + chave
inteiro pos = res % 26
frase_criptografada += Tipos.caracter_para_cadeia(alfabeto[pos])
pare
}
}
}
retorne frase_criptografada
}//fim da funcao
funcao cadeia descriptografar(cadeia frase, inteiro chave){
cadeia frase_descriptografada = ""
inteiro num_letras = Texto.numero_caracteres(frase)
//vai percorrer cada letra da frase
para(inteiro i=0; i < num_letras; i++){
//posicao de uma letra
caracter letra = Texto.obter_caracter(frase, i)
para(inteiro j=0; j < 26; j++){
se(letra == alfabeto[j]){
inteiro posicao = j - chave
se(posicao < 0) {
posicao = posicao + 26
}
frase_descriptografada += Tipos.caracter_para_cadeia(alfabeto[posicao])
pare
}
}
}
retorne frase_descriptografada
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment