NO SE PORQUE DA UN BUCLE INFINITO
Publicado por David (4 intervenciones) el 03/12/2009 02:02:41
hola!
tengo que hacer el siguiente programa:
Completar el siguiente programa para que asigne a la variable s2 el valor de la cadena asignada previamente a s1 eliminando los caracteres de espacio en blanco que ésta pudiera contener. Por ejemplo, s2 debe tomar el valor 'JuanPerezPerez' si s1 vale 'Juan Perez Perez'
y ya me dan este codigo el cual no puedes modificar:
program espaciosenblanco;
var s1,s2:string; i:byte;
begin
write('introduce caracteres: ');
readln(s1);
(* introduce aqui tu codigo para completar el programa*)
writeln('El valor de s2 es: ',s2)
end.
entonces yo se hacerlo con un procedimiento y sale perfecto, pero como no puedes declararlo pues lo hice de esta forma:
program espaciosenblanco;
var s1,s2:string; i:byte;
begin
write('introduce caracteres: ');
readln(s1);
for i:= 1 to length(s1) do
if s1[i]=' ' then
begin
delete(s1,i,1);
i:=0;
end;
s2:=s1;
writeln('El valor de s2 es: ',s2)
end.
Entonces para todos los casos posibles funciona excepto si introduces la cadena 'a ' (es decir, que términe en espacio) de donde el programa no hace nada, vamos se pilla XD
alguna idea?
saludos!
tengo que hacer el siguiente programa:
Completar el siguiente programa para que asigne a la variable s2 el valor de la cadena asignada previamente a s1 eliminando los caracteres de espacio en blanco que ésta pudiera contener. Por ejemplo, s2 debe tomar el valor 'JuanPerezPerez' si s1 vale 'Juan Perez Perez'
y ya me dan este codigo el cual no puedes modificar:
program espaciosenblanco;
var s1,s2:string; i:byte;
begin
write('introduce caracteres: ');
readln(s1);
(* introduce aqui tu codigo para completar el programa*)
writeln('El valor de s2 es: ',s2)
end.
entonces yo se hacerlo con un procedimiento y sale perfecto, pero como no puedes declararlo pues lo hice de esta forma:
program espaciosenblanco;
var s1,s2:string; i:byte;
begin
write('introduce caracteres: ');
readln(s1);
for i:= 1 to length(s1) do
if s1[i]=' ' then
begin
delete(s1,i,1);
i:=0;
end;
s2:=s1;
writeln('El valor de s2 es: ',s2)
end.
Entonces para todos los casos posibles funciona excepto si introduces la cadena 'a ' (es decir, que términe en espacio) de donde el programa no hace nada, vamos se pilla XD
alguna idea?
saludos!
Valora esta pregunta


0