[ Foro de Pascal ]
hola , queria preguntar en este foro como puedo hacer un programita que permita seleccionar un numero de tres digitos estrictamente con unidades y centenas diferentes.
se que con div y mod puede ser lo que no se es como hacer la validacion en si, eso es tod gracias por su ayuda.
¿El número lo lees desde el teclado?
Hola compañero, si el numero se lee desde teclado.gracias si puedes ayudarme
La validación se suele hacer con un "repeat..until", que te pida valores hasta que cumpla unas ciertas condiciones.
En tu caso, el número será de 3 cifras si es mayor que 99 y menor que 1000, la primera de esas tres cifras la puedes saber dividiendo (div) entre 100 y la última de esas cifras te la da el resto de la división (mod) entre 10.
pero como hago la estructura del programa para usar ese repeat y lo del 99 y 1000, por favor gracias es que estoy perdido
Ok. Entendí que el primer y último dígito deben ser distintos. Aquí te dejo el código. Al principio se valida para que el número sea realmente de tres cifras, si no lo es sigue pidiéndolo hasta cumplir con ese requisito; luego verifica que la primera y última cifras sean diferentes, en caso afirmativo el programa finaliza. Se hace uso de una variable booleana que se inicializa en 'false' y cambia a 'true' cuando la condición se cumple, de esa forma se sale del repeat-until. Saludos.
program NumeroTresCifrasDistintas;
(* Programa que lee números hasta que sea un valor de *)
(* tres cifras con el dígito correspondiente a las unidades *)
(* distinto al dígito corresponidente a las centenas *)
var
num: integer;
valido: boolean;
BEGIN
valido:= false;
repeat
{ Nos aseguramos que el número sea de tres cifras realmente }
repeat
write('Introduzca un numero de tres cifras: ');
readln(num);
until (num < 1000) and (num>99);
{ Si el dígito de las unidades (num mod 10) es distinto al de las centenas (num div 100) haga que valido sea true }
if (num mod 10) <> (num div 100) then
begin
valido:= true;
writeln('Usted introdujo un numero valido.');
end
else
writeln('El primer y ultimo digito deben ser diferentes.');
until valido;
readln;
END.
ufff luis muy bueno tu programa ahora si entiendo eso del div , el mod y el repeat aplicados a un programa, gracias colega, quiza eres profesor no lo se pero muy agradecido.
Editado por el administrador.
Consulta no relacionada con la anterior, movida a un nuevo hilo:
http://www.aprendeaprogramar.com/mod/forum/discuss.php?d=1176
(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.)