Ayuda con un programa de invertir números
Publicado por Daniel (1 intervención) el 28/03/2013 12:29:53
Hola, quería pediros ayuda con un programa que no consigo resolverlo completamente.
INVERTIR UN NÚMERO ENTERO: Haz un programa que reciba como entrada un
número entero mayor que cero y muestre al usuario el número resultante de invertir sus cifras. Si el número introducido por el usuario es menor que cero, deberás volvérselo a pedir tantas veces como sea necesario hasta que se decida a introducir uno mayor que cero.
Ejemplo de interacción:
Introduce un entero positivo: -1
Introduce un entero positivo: 1002
2001
Me explico. Consigo invertir todos los numero menos los que acaban o empiezan en 0; como por ejemplo: 0862; 9880.
Os dejo el programa que tengo a falta del fallo:
program invierte;
var n,nAux,ud,inv:integer;
begin
write('Introduce el numero:');
read(n);
{Con el comando while-do exigimos que el número debe ser mayor que 0;
insistimos en volver a pedir el numero hasta que este sea positivo}
while (n<=0) do begin
write('Introduce el numero:');
read(n);
end;
1- nAux - Donde almacenamos el cociente de la division de n entre 10
2- ud - En el que se almacena el resto de la division de n entre 10
3- inv - la cual comienza a escribir el resultado del resto}
nAux:=n div 10;
ud:=n mod 10;
inv:=ud;
while (nAux<>0) do begin
ud:=nAux mod 10;
nAux:=nAux div 10;
inv:=inv*10 + ud;
end;
write(inv);
end.
Muchas gracias.
INVERTIR UN NÚMERO ENTERO: Haz un programa que reciba como entrada un
número entero mayor que cero y muestre al usuario el número resultante de invertir sus cifras. Si el número introducido por el usuario es menor que cero, deberás volvérselo a pedir tantas veces como sea necesario hasta que se decida a introducir uno mayor que cero.
Ejemplo de interacción:
Introduce un entero positivo: -1
Introduce un entero positivo: 1002
2001
Me explico. Consigo invertir todos los numero menos los que acaban o empiezan en 0; como por ejemplo: 0862; 9880.
Os dejo el programa que tengo a falta del fallo:
program invierte;
var n,nAux,ud,inv:integer;
begin
write('Introduce el numero:');
read(n);
{Con el comando while-do exigimos que el número debe ser mayor que 0;
insistimos en volver a pedir el numero hasta que este sea positivo}
while (n<=0) do begin
write('Introduce el numero:');
read(n);
end;
1- nAux - Donde almacenamos el cociente de la division de n entre 10
2- ud - En el que se almacena el resto de la division de n entre 10
3- inv - la cual comienza a escribir el resultado del resto}
nAux:=n div 10;
ud:=n mod 10;
inv:=ud;
while (nAux<>0) do begin
ud:=nAux mod 10;
nAux:=nAux div 10;
inv:=inv*10 + ud;
end;
write(inv);
end.
Muchas gracias.
Valora esta pregunta


0