Pascal/Turbo Pascal - cadenainvertida

   
Vista:

cadenainvertida

Publicado por oscar (64 intervenciones) el 08/11/2012 23:14:34
hola se me pide q escriba un procdimient que reciba una cadena de caracteres y la devuelva invertida. Luego, introducir el procedimiento en un programa que pida al usuario una cadena, se asegure que no supera una longitud máxima definida en una constante, invoque el procedimiento anterior, y muestre por pantalla la cadena resultado.

hice esto, pero me da errores al compilar, me podeis ayudar?



const TAM = 10;

type
tCadena = string;
var
cadena: tCadena;

procedure invertir_cadena(var cadena: tCadena);
var
i,j:integer;
t:char;
begin

i:=1;
j:=length(cadena);

while (i<j) do begin

t := cadena[i];
cadena[i] := cadena[j];
cadena[j] := t;


i += 1;
j -= 1;
end;

end;

begin


repeat
writeln('Introduzca una cadena, por favor: ');
readln(cadena);
if not(length(cadena) in [0..TAM]) then begin
writeln('Error. Introduzca una cadena de ', TAM, ' caracteres como maximo.');
writeln;
end;
until (length(cadena) in [0..TAM]);

invertir_cadena(cadena);

writeln('La cadena invertida es: ', cadena);

end.
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

cadenainvertida

Publicado por oscar (64 intervenciones) el 09/11/2012 09:33:04
ya compila pero cuando lo ejecuto se me va de la pantalla, y si, puse un readln;antres del end. final..no se pq..asi no se si me va bien.. ayuda....
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

cadenainvertida

Publicado por ramon (2072 intervenciones) el 10/11/2012 22:23:33
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
36
37
38
39
40
41
42
43
{Mira comprueba tu fallo}
 
uses
  crt;
 
const TAM = 10;
 
type
tCadena = string;
var
cadena: tCadena;
 
procedure invertir_cadena(var cadena: tCadena);
var
i,j:integer;
t:char;
begin
 i := 1;
 j := length(cadena);
 while (i < j) do
 begin
   t := cadena[i];
   cadena[i] := cadena[j];
   cadena[j] := t;
    i := i + 1;
    j := j - 1;
  end;
 end;
 
begin
repeat
writeln('Introduzca una cadena, por favor: ');
readln(cadena);
if not(length(cadena) in [0..TAM]) then
begin
writeln('Error. Introduzca una cadena de ', TAM, ' caracteres como maximo.');
writeln;
end;
until (length(cadena) in [0..TAM]);
invertir_cadena(cadena);
writeln('La cadena invertida es: ', cadena);
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