Ir ao conteúdo

Posts recomendados

Postado

Boa Noite

Preciso desenvolver um programa em c nas seguintes condições:

 

A entrada contém vários casos de teste. A primeira linha de entrada contém um inteiro N que indica a quantidade
de casos de teste. Cada caso de teste é composto por duas linhas. A primeira linha contém uma string com até 50
caracteres maiúsculos ('A'-'Z'), que é a sentença após ela ter sido codificada através desta Cifra de César
modificada. A segunda linha contém um número que varia de 0 a 25 e que representa quantas posições cada letra
foi deslocada para a direita.

 

Já consegui desenvolver boa parte do programa mas não consigo deixar as strings somente de A a Z e maiúsculas. Pesquisei algumas coisas a respeito em outros tópicos daqui que mostram como utilizar somente o alfabeto maiúsculo mas não sei exatamente onde e de que forma acrescentar nesse modelo de programa que tenho.

Se alguém tiver alguma dica será de grande valor.

 

Programa segue anexado

 

Muito obrigado

ex_4.txt

Postado

Cifra de César, criptografia de texto de César

Citação

[...]É um tipo de cifra de substituição na qual cada letra do texto é substituída por outra, que se apresenta no alfabeto[...] Wikipédia 2016.

Basta entendermos que o alfabeto encontra se em um círculo onde vemos o A no início e o Z no fim, ou o Z antes, e após o A.

417034.jpgmontevideo.com

Se X := A, acrescentarmo +100 que nome daremos a X?

Resposta A, por quê? Primeiro temos que saber a distância que existe entre os extremos, d = Z - A

d := 25, de A a Z temos 25 elementos na tabela de códigos ASCII.

Se incrementamos X 1 a 1 até que quando X := Z, e +1 daí tornamos a chamar X := A.

Portanto o módulo(100,25) marca o limite X tendo a X.

Mod(100,25) := 0 + A - 0 = A

Mod(30,25)   := 5 + A - 1 = E

 

Mod(-100,25) := -0 + Z + 0 = Z

Mod(-30,25)   := -5 + Z + 1 = V

 

</code>

Mauro Britivaldo C Cifra de César.png

Postado

Boa noite Mauro.

Muito obrigado pela ajuda. Consegui ter uma noção melhor da lógica, ainda to com dificuldades em acertar o ponto adequado de onde implementar ela no programa que tenho. Como esse programa que tenho peguei uma base pronta e fui modificando ele, ainda tenho dificuldades. To criando alguns programas mais simples somente pra leitura de A a Z pra tentar pegar melhor o ponto ideal de acrescentar essa lógica.

De qualquer forma a explicação acima já me tirou do zero e já me deu um norte pra tentar resolver o meu problema. 

  • 2 semanas depois...
  • Moderador
Postado

@Ailton Reis Pinheiro Olá, poderia por gentileza postar a solução encontrada? Se possível o código completo! Assim você ajuda os demais que estiverem com a mesma dúvida.

Certo de sua compreensão,

Agradeço desde já.

Moderador DiF

Postado

@DiF Boa Noite

Segue parte do programa responsável por realizar a cifra de "A" a "Z".

Programa completo segue anexo.

 

i = 0;
while(palavra != '\0')
{
aux = palavra - chave;
if((palavra - chave) > 90)
{
aux -=26;
}
if((palavra - chave) < 65)
{
aux += 26;
}
i++;
}

 

Obrigado a todos pela colaboração.

ex_4.txt

  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!