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
Ruby on Rails
Ruby on Rails
¿Por qué Ruby on Rails es el lenguaje de programación del futuro? Ruby on Rails nos facilita la...
Ver más información

Desarrollo de videojuegos para iOS, Android y BlackBerry 10
Desarrollo de videojuegos para iOS, Android y BlackBerry 10
En este curso único en toda la web aprenderás a crear videojuegos para iOS, Android, BlackBerry 10 y la...
Ver más información

publicidad

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.