[ Foro de Pascal ]

convertir de Repeat a while

19-Oct-2013 01:30
Invitado (luis)
1 Respuestas

Hola, escribo para pedirles su ayuda para convertir un ciclo Repeat a un while, a continuacion pongo el ciclo que quiero cambiar a while

 
PROCEDURE Reinas(k: CARDINAL);
BEGIN
IF k>n THEN RETURN END;
X[k]:=0;
REPEAT
INC(X[k]);
IF Valido(k) THEN
 IF  k<>n THEN  Reinas(k+1) ELSE exito:= TRUE END
 END
 UNTIL (X[k]=n) OR exito;
 END Reinas;
 



Espero me puedan ayudar a realizar la conversion que estoy tratando de hacer.


20-Oct-2013 11:58
Nacho Cabanes (+30)

Hay dos diferencias entre un "repeat..until" y un "while":

- La condición es la contraria, de modo que un "repeat..until x>0" se convertiría en un "while x<=0"

- En un "repeat" siempre se da una primera pasada, y en un "while" no es así, de modo que quizá debas sacar el primer caso fuera de la parte repetitiva, o al menos revisar la lógica interna.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)