hola estoy haciendo en ejercicio sobre archivos..En el archivo tiene numeros y quiere cambiar los numeros...tengo errores de compilacion..y estube por horas tratando de ver pero no se mas que cambiar... haber si alguien me puede dar una mano porfavor...
el archivo "cifrado.txt" contiene estos datos
4849
9753
y el codigo del programa es:
Código: Seleccionar todo
(* Ejercicio #49 - Lenguaje 1
Una empresa desea transmitir datos mediante el telefono pero estan preocupados
de que sus telefonos pudieran estar intervenidos. Todos sus datos se transmiten
como enteros de cuatro digitos. Le han solicitado a usted que codifique sus
datos de tal forma de que puedan ser transmitidos con mayor seguridad.
Debe desarrollar una funcion que reciba un entero de cuatro digitos y lo
codifique como sigue: reemplazar cada digito por (la suma del digito mas 7)
modulo 10. A continuacion intercambiar el primer digito con el tercero y el
segundo con el cuarto, retornando el entero cifrado.
Escriba igualmente otra funcion que reciba un entero codificado de cuatro
digitos y lo codifique para formar y retornar el numero original.
Asimismo, preparar el programa principal para codificar y decodificar datos
que esten almacenados en archivos.
*)
program cifrado(archivo);
uses
crt;
var
dato, dato_codificado, dato_decodificado : string[4];
archivo : text;
{ Funcion convertir de cadena a entero }
function convertir_entero(cad : string): string;
const
M = 48;
var
i, num : integer;
aux : string;
begin
for i:= 1 to 1 do
num := ord(cad[i]) - M;
str(num,aux);
convertir_entero := aux;
end;
{ Funcion codificar }
function codificar (num : string) : string;
const
N = 4;
modificador1 = '7';
modificador2 = '10';
var
i, valor_num, codigo : integer;
aux : string[4];
begin
for i := 1 to N do
begin
num[i] := convertir_entero(num[i]) + convertir_entero(modificador1);
num[i] := num[i] mod convertir_entero(modificador2);
end;
for i:= 1 to (N div 2) do
begin
aux := num[i];
num[i] := num[i + 2];
num[i + 2] := aux;
end;
codificar := num;
end;
{ Funcion decodificar }
function decodificar(num : string) : string;
const
N = 4;
modificador1 = '7';
modificador2 = '10';
var
i, valor_num, codigo : integer;
aux : string;
begin
for i := 1 to (N div 2) do
begin
aux := num[i];
num[i] := num[i + 2];
num[i + 2] := aux;
end;
for i := 1 to N do
begin
num[i] := convetir_entero(num[i]) + convertir_entero(modificador2);
num[i] := num[i] - convertir_entero(modificador1);
end;
decodificar := num;
end;
{ Programa principal }
begin
clrscr;
assign(archivo,'c:\pascal\cifrado.txt');
reset(archivo);
while(not eof(archivo)) do
begin
while(not eoln(archivo)) do
begin
read(archivo,dato);
dato_codificado := codificar(dato);
dato_decodificado := decodificar(dato);
writeln('El dato codificado es: ', dato_codificado);
writeln('El dato decodificado es: ', dato_decodificado);
readln(archivo);
writeln;
end;
end;
repeat until keypressed;
end.