[ Foro de Pascal ]
Construir función que reciba un word y devuelva su imagen(inverso) en otro word
Hola de nuevo!
Bueno, pues al final me quedó programación y estoy estudiando desde ya para que no me coja el toro de nuevo :D
A ver, tengo una duda con respecto a un examen que he visto colgado en una página de Internet, es un examen de una universidad qué ahora no recuerdo. El problema a resolver sería: "
Invierte las cifras de un número. Por ejemplo: f(123) = 321. Construye una función que reciba un Word y devuelva su imagen en otro Word."
Alguien me podría ayudar a hacerlo? Gracias.
Yo me ayudaría de una cadena (string) de texto, que son fáciles de manejar cifra a cifra, aunque luego el resultado lo vuelvas a convertir a número. En ese caso, los pasos a dar serían estos:
Convertir el número a cadena
Crear una cadena auxiliar de la misma longitud (o mayor)
Desde i = 1 hasta longitud cadena
CadenaAuxiliar[longitud+1-i] = cadena[i]
FinDesde
Convertir CadenaAuxiliar a número
(es decir, en una cadena es fácil "darle la vuelta" recorriendo posición a posición con un "for", y si tiene 5 cifras, colocas la 1ª en la 5ª posición, la 2ª en la 4ª y así sucesivamente).
Si prefieres trabajar todo el tiempo con números, es algo más pesado: tienes que acordarte que la última cifra es (n mod 10), es decir, el resto de dividir el número entre 10; para la penúltima dividirías entre 10 y volverías a hallar el resto: ((n div 10) mod 10), y así sucesivamente:
734 mod 10 = 4
734 div 10 = 73
73 mod 10 = 3
73 div 10 = 7
7 mod 10 = 7
7 div 10 = 0 (terminado)
y cada vez que colocas una nueva cifra en el número de destino, irías multiplicando por 10 el número que llevabas y sumando la nueva cifra, así:
4
4 * 10 = 40
40 + 3 = 43
43*10 = 430
430 + 7 = 437
(terminado, no hay más cifras).
Suerte con ello!
Muchas gracias por tu contesta. Voy a intentar implementarlo a ver que tal me sale jejeje. Esperemos que haciendo ejercicios, apruebe la asignatura. Tengo algunas dudas con ficheros, en estos días colgaré algunas para que me ayudéis a comprenderlo un poco mejor :D
Gracias!
(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.)