por explorer » 2012-11-18 18:08 @797
Para el primer caso, lo que hago es un bucle para leer los números que entran por la entrada estándar. Para cada uno de ellos, primero saco su longitud en dígitos. Si la longitud es impar, el puesto central lo ocupa un solo dígito, que extraigo usando substr(), de la posición media, calculada dividiendo la longitud entre dos y redondeando por arriba. Pero si longitud es par, la posición central la ocupan los dos dígitos centrales. Lo mismo que antes, calculo la posición media, y luego con substr() extraigo los dos caracteres. Solo queda decir si el dígito o dígitos extraídos son pares o no, para lo cual uso el operador módulo (%).
Para el segundo caso, leo el número y la base. Lo transformo en base decimal recorriendo los dígitos y multiplicando por la base. Luego, a partir del número en base decimal, lo voy dividiendo por la base 12 y lo voy sacando en pantalla.
Es cuestión de trasladar los procedimientos que usamos de matemáticas para pasar de base, a lenguaje Perl.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES