Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Benfeitor

Criptografia - Pascal

Recommended Posts

Galera,

 

Estou tendo um problema neste tipo de criptografia, o programa compila cria o arquivo mais infelizmente não está criptografando o contúdo do arquivo. Será que alguem poderia me dar uma dica de como faço para resolver esse probleminha?

 

Eis o código:

 

program  criptoJC;
var nome1, nome2: string;
		 arq1, arq2: text;
		 i: char;
begin
   writeln;
		write ('Nome do arquivo a ser lido: ');
		readln (nome1);
		write ('Nome do arquivo a ser criado: ');
		readln (nome2);
		assign(arq1, nome1);
		assign(arq2, nome2);
		reset (arq1);
		rewrite (arq2);
		while not eof(arq1) do
		begin
			 read(arq1,i);
			 write(arq2,chr(ord(i)+3));
		end;
			readkey;
   end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido:

Lógica de Programação e Algoritmos http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Outras Linguagens de Programação

 

oq aparece pois ORD() é a função para pegar o valor ascii da letra digitada!

no pascal qnd você declara um tipo char ele armazena soh 1 caracter neh?

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

write(arq2,chr(ord(i)+3));

 

Suponho que você só queira símbolos mesmo,nada de tabulações ou \n no arquivo...

O que acontece quando você tem um ORD©=124? O programa vai escrever algo e nos casos de 125,126 e 127, o símbolo é indefinido.

você tem usar o operador % p/ mapear esses três ultimos casos para os três primeiros símbolos do alfabeto.

Veja esse exemplo em C:

 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
 char *s=NULL;
 size_t n;
 int i;

 getline(&s,&n,stdin);
 n = strlen(s)-1;
 s[n] = '\0';

 for(i=0;i<n;i++)
  s[i] = (char)((i+3)%128);

 printf("\nNova mensagem:%s",s);
 free(s);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.