var n:integer;
procedure base4(n:integer);
begin
if n>0 then
begin
base4(n div 4);
write(n mod 4:1)
end
end;
begin
readln(n);
base4(n);
end.
bueno este programa lo que te hace es lo siguiente:
te coge un numero por teclado, ejemplo 100, entonces n=100
el primer if nos comprueba si n es mayor que 0, en este caso si es cierto es mayor que 0 y entraría dentro, nos dice que base4 es el dividir 100/4 que es 25 y nos muestra por pantalla el resto de esa división, que es 1 , es un procedure recursivo así que nos hará otra vez lo mismo pero esta vez con el 25, 25 div 4 = 6, y nos muestra el resto de 6 mod 4 que es 2, así hasta que n sea menor que 0, el siguiente casó será 6 div 4 = 1, y nos escribirá el resto de 1 mod 4, que es 1, y ya para terminar nos hará 1 div 4 que será 0, y el resto 0, y el programa termina aqui porque la condicion se cumple de N > 0.
Espero que te haya servido mi explicación
EDITO: Te subo el programa compilado por si no lo tienes y/o para que veas que lo que te digo tiene lógica
http://www.megaupload.com/?d=VW868WWO