Pascal/Turbo Pascal - Ejercicio en Pascal

 
Vista:
sin imagen de perfil

Ejercicio en Pascal

Publicado por Joaquín (1 intervención) el 14/07/2021 18:32:27
ROT13 («rotar 13 posiciones») es un sencillo cifrado utilizado para ocultar un texto sustituyendo cada letra por la letra que está trece posiciones por delante en el alfabeto en orden lexicográfico. A se convierte en N, B se convierte en O y así hasta la M, que se convierte en Z. A partir de la N, el cifrado se invierte: N se convierte en A, O se convierte en B y así hasta la Z, que se convierte en M.
a) (3 puntos) Declare una tabla unidimensional que contenga el cifrado ROT13. Esta tabla debe contener la codificación de cada letra del alfabeto.


He estado intentando hacerlo pero me da error en algunas lineas. Esto tengo hasta ahora:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
program codificacion;
 
const
	Distancia=ord('z')-ord('a');
 
type cod= array[1..Distancia]of integer;
 
var
	S:text;
	d:cod;
	EA:char;
	t:integer;
	j:char;
	i:integer;
	r:integer;
 
begin;
	for i:=1 to Distancia do begin;
		readln(EA);
		if((EA>='a') and (EA<='m')) then begin;
			t:=ord(EA);
			S[i]:=t+13;
		end;
		if((EA>='n') and (EA<='z')) then begin;
			r:=ord(EA)-ord('n');
			t:=ord('a');
			S[i]:=t+r;
		end;
	end;
	for i:=1 to Distancia do begin;
		j:=chr(S[i]);
		write(j,',');
	end;
 
end.

Me da error en las lineas 22,27 y 32
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ejercicio en Pascal

Publicado por ramon (2158 intervenciones) el 02/08/2021 18:24:27
Tu programa arreglado.

program codificacion;

const
Distancia = 25;

type
cod = array[1..Distancia] of integer;

var
S : string;
d : cod;
EA : char;
t : integer;
j : char;
i : integer;
r : integer;

begin;
for i := 1 to Distancia do
begin;
write('Entre 25 Caracter numro ',i,' : ');
readln(EA);
if(( EA >= 'a') and (EA <= 'm')) then
begin;
t := ord(EA);
S[i] := chr(t + 13);
s[0] := chr(i);
end;
if ((EA >= 'n') and (EA <= 'z')) then
begin;
r := ord(EA) - ord('n');
t := ord('a');
S[i] := chr(t + r);
s[0] := chr(i);
end;
end;
for i := 1 to Distancia do
begin;
j := S[i];
write(j,',');
end;
readln;
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar