[ Foro de Pascal ]
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.
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.)