Ejercicio Conversión

Iniciado por Myth.ck, 19 Mayo 2009, 04:12 AM

0 Miembros y 1 Visitante están viendo este tema.

Myth.ck

Hola miren este problema:
Convertir un número entero de base 2 a base 4 por el método directo.

El método directo consiste en por ejemplo

Entrada: 1101001100

Separa el dígito de a dos, en este caso por ser la base de llegada igual a 4. En consecuencia:

11-01-00-11-00

Por conversión quedaría:

31030

Espero que eso no haya causado problemas.

Ahora este es el siguiente algoritmo que me gustaría que chekaran aver si existe una forma más fácil y como poder optimizarlo.

Código (scheme) [Seleccionar]
algoritmo Convierte;

variables
  dig_4,n_2,acu_n4,cnt_0,i son enteros;
  cnt_0_f es logico;
inicio
  leer n_2;
  acu_n4=0;
  cnt_0_f=verdadero;
  si n_2==0 entonces
    escribir "0";
  mientras n_2<>0 hacer
  inicio
    dig_4=n_2%100;
    en caso dig_4 sea
    1:
    inicio
    dig_4=1;
    cnt_0_f=falso;
    final;
    10:
    inicio
    dig_4=2;
    cnt_0_f=falso;
    final;
    11:
    inicio
    dig_4=3;
    cnt_0_f=falso;
    final;
    0:
   inicio
      si cnt_0_f==verdadero entonces
      cnt_0=cnt_0+1;
      dig_4=0;
    final;
    final;
    acu_n4=(acu_n4*10)+dig_4;
    n_2=n_2\100;
  final;
  mientras acu_n4<>0 hacer
  inicio
    dig_4=acu_n4%10;
    escribir dig_4;
    acu_n4=acu_n4\10;
  final;
  si cnt_0<>0 entonces
    para i=1 hasta cnt_0 hacer
    inicio
      escribir "0";
    final;
final

Un intelectual es un hombre que usa más palabras de las necesarias para decir más cosas de las que sabe.