Problema programa en Pascal

hayekot

Pues tengo k ahcer un programa k x alguna razon no me sale, es de encriptacion tal komo se peude ver en él en cuanto empieza el case se me deja de ejecutar el programa a ver si alguein podria ayudarme la verdad xq no paro de comerme el coco muxas asias :D

program encripta;
type cvector = array [0..49] of char;
procedure menu (var c:char);
begin
writeln('Elige una opcion dando su letras correspondiente');
writeln('a => Introducir nuevo mensaje');
writeln('b => Encriptar');
writeln('c => Desencriptar');
writeln('d => Finalizar');
read(c);
end;
procedure sustitucion (vector1:cvector;u:integer; var vector2:cvector);
var n,i : integer;
begin
writeln ('Dame el numero de posiciones que deseas que sean movidas en ASCII');
readln(n);
for i:= 0 to u do
vector2:=chr(ord(vector1)+n);
end;
procedure intercambio (vector1:cvector ;u:integer ;var vector2:cvector);
var j,i,s,p,d: integer;
c:char;
begin
writeln ('Dame un numero');
readln(p);
writeln ('Dame un numero');
readln(d);
for s:=0 to u do vector2:=vector1;
j:= p mod u;
i:= d mod u;
c:= vector2 [j];
vector2[j]:=vector2;
vector2:=c;
end;
procedure rotacion (vector1:cvector;u:integer; var vector2:cvector);
var i,j:integer;
begin
writeln ('Dame el numero de posiciones que quieres que sea rotado');
readln(i);
for j:= 0 to u do begin
if (i+j>u) then vector2[j-u+i-1]:=vector1[j]
else vector2[j+i]:=vector1[j];
end;
end;
procedure lectura (var z:integer; var vector1 : cvector);
var x:char;
begin
writeln ('Dame la frase, de no mas de 50 caracteres de longitud');
z:=0;
while (not eoln) do begin
read (x);
z:=succ(z);
vector1[z]:=x;
end;
end;
procedure desustitucion (vector1:cvector;u:integer; var vector2:cvector);
var n,i : integer;
begin
writeln ('Dame el numero de posiciones que se ha usado para encriptar');
readln(n);
for i:= 0 to u do
vector2:=chr(ord(vector1)-n);
end;
procedure desrotacion (vector1:cvector;n:integer ; var vector2:cvector);
var i,j:integer;
begin
writeln ('Dame el numero de posiciones que habia sdo rotado para encriptar el mensaje');
readln(i);
for j:= 0 to n do begin
if (j-i<0) then vector2[j-n+i-1]:=vector1[j]
else vector2[j+i]:=vector1[j];
end;
end;
procedure menu1 (var c:char);
begin
writeln('Elige una opcion dando su letras correspondiente');
writeln('a => Sustitucion');
writeln('b => Rotacion');
writeln('c => Intercambio');
read(c);
end;
procedure mensaje (vector2:cvector;u:integer);
var i:integer;
begin
for i:=0 to u do begin
write (vector2);
end;
end;

{PP}
var l,k,h:char;
tvector1,tvector2:cvector;
m:integer;
begin
lectura (m,tvector1);
l:='e';
menu (l);
if (l='a') then begin lectura (m,tvector1);readln; end
else begin
case l of
'b','B': begin
menu1 (k);
case k of
'a','A': begin
sustitucion (tvector1,m,tvector2);
mensaje (tvector2,m);
end;
'b','B': begin
rotacion (tvector1,m,tvector2);
mensaje (tvector2,m);
end;
'c','C': begin
intercambio (tvector1,m,tvector2);
mensaje (tvector2,m);
end;
else readln;
end;
end;
'c','C': begin
menu1 (h);
case h of
'a','A': begin
desustitucion (tvector1,m,tvector2);
mensaje (tvector2,m);
end;
'b','B': begin
desrotacion (tvector1,m,tvector2);
mensaje (tvector2,m);
end;
'c','C': begin
intercambio (tvector1,m,tvector2);
mensaje (tvector2,m);
end;
else readln;
end;
end;
else readln;
end;
end;
end.

Usuarios habituales

  • hayekot