miércoles, 30 de mayo de 2007

codigo lisp

Código del ejercicio que convierte un número de 3 cifras con una base “n” en base decimal.


( defun num_base ( a b )
( setq cont 1)
( setq temp a )
(setq c 0 )
(setq base_d 0)
(setq band 0)

( while ( > a 0)
( if ( >= ( mod a 10 ) b )(setq band 1))
( setq a ( / a 10 ) )
( setq c ( + c 1) )

)
(if ( and (<= c 3 )( not (= band 1 )) )
( while ( > temp 0 )
( if ( = cont 1)(setq base_d ( + (mod temp 10 ) base_d))
( if ( = cont 2 )(setq base_d ( + (* (mod temp 10) b) base_d))
( if (= cont 3 )(setq base_d ( + ( * ( * (mod temp 10) b) b) base_d)))
)
)
( setq temp ( / temp 10 ) )
( setq cont ( + cont 1 ) )

) ( print'introduce_un_numero_3_cifras//introduce_una_base_mayor_que_los_digitos_del_numero)
)
( if ( <= c 3 )(setq base_d base_d ))
)

No hay comentarios: