Conversión de sistemas numéricos

Pseudocódigo

  • Enviado por: Eduardo Donderis
  • Idioma: castellano
  • País: España España
  • 2 páginas

publicidad
cursos destacados
Aprende Virtualización con VMware vSphere
Aprende Virtualización con VMware vSphere
Tras completar el taller de virtualización con VMware vSphere el alumno habrá adquirido los siguientes...
Ver más información

¡Desarrollo Web Desde Cero! (Curso Completo)
¡Desarrollo Web Desde Cero! (Curso Completo)
¡Bienvenidos a la versión española del curso más completo y más vendido en la web...
Ver más información


P.9.2.- Escribir un programa que, leido un numero entero positivo, lo transforme en binario y en hexadecimal. Se deben visualizar los resultados.

program hexadecimal92;

uses crt;

var

num:integer;

transb,transh:string;

opc:char;

{PROCEDIMIENTOS}

{este precedimiento lee el numero a transformar, y lo valida (sea entero y positivo)}

procedure leernum (var n:integer);

begin

repeat

write ('Introduzca un numero: ');

readln (n);

until (n=int(n)) and (n=abs(n));

end;

{*******************}

{Transforma el numero a binario}

procedure cambiobin (n:integer;var trans:string);

var

cociente,resto:integer;

ch:string;

begin

cociente:=n;

trans:='';

while cociente>=2 do

begin

resto:=cociente mod 2;

str (resto,ch);

trans:=ch+trans;

ch:='';

cociente:=cociente div 2

end; {cierra el while}

str (cociente,ch);

trans:=ch+trans

end;

{**********************}

{transforma el numero a hexadecimal}

procedure cambiohex (n:integer; var trans:string);

var

cociente,resto:integer;

ch:char;

{FUNCIONES}

{Esta funci¢n recibe el resto o el cociente y lo transforma en el caracter correspondiente}

function cambiar (x:integer):char;

begin

case x of

0: cambiar:='0';

1: cambiar:='1';

2: cambiar:='2';

3: cambiar:='3';

4: cambiar:='4';

5: cambiar:='5';

6: cambiar:='6';

7: cambiar:='7';

8: cambiar:='8';

9: cambiar:='9';

10: cambiar:='A';

11: cambiar:='B';

12: cambiar:='C';

13: cambiar:='D';

14: cambiar:='E';

15: cambiar:='F'

end

end;

{*******************************}

begin

cociente:=n;

trans:='';

while cociente>16 do

begin

resto:=cociente mod 16;

ch:=cambiar (resto);

trans:=cambiar (resto)+trans;

cociente:=cociente div 16

end; {cierra el while}

ch:=cambiar (cociente);

trans:=ch+trans

end;

***************************************

{visualiza los resultados}

procedure resultados (num:integer; bin:string; hex:string);

begin

writeln (num, ' EN DECIMAL');

writeln (bin, ' EN BINARIO');

writeln (hex, ' EN HEXADECIMAL');

readkey

end;

{************************}

{PROGRAMA PRINCIPAL}

begin

repeat

CLRSCR;

leernum (num);

cambiobin (num,transb);

cambiohex (num,transh);

resultados (num,transb,transh);

repeat

clrscr;

write ('S-SALIR/C-CONTINUAR');

opc:=upcase (readkey);

until (opc='C') or (opc='S');

until (opc='S')

end.