Pascal/Turbo Pascal - consulta

 
Vista:

consulta

Publicado por jose (1 intervención) el 24/01/2006 20:06:48
estoy en Costa Rica, empezando un curso de Introducción a la programación, con Turbo, hallé un tutorial suyo Turbo Pascal 7, muy interesante, le ruego me revise el archivo adjunto a ver qué le parece si lo estoy haciendo bien, es una tarea, para que se digite una cantidad en cms y la pase a pulgadas y luego de pulgadas a pies (no queda claro en la redacción de la pregunta si la misma cantidad que pasamos de cms a pulgadas sirve para pasar a pies o debe ser otra o mantener el resultado anterior en pantalla simultáneamente. Gracias.

Si me piden el program, se los envío a sus correos, es muy corto por ahora, pues lo estoy comenzando y no sé nada de Turbo Pascal.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:consulta

Publicado por enzant (1 intervención) el 26/01/2006 04:03:04
programa en pascal que combierta un num de decimal a binario
y otro de decimal a binario, me esta calciando la mente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta

Publicado por micropais (209 intervenciones) el 26/01/2006 15:05:55
Si te vale en ensamblador - te lo mando - ya lo pasare a pascal pero de momento no tengo tiempo - habrá que esperar un poco.

postea aqui si te interesa.
saludos micropais.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta

Publicado por Allan Andrade (48 intervenciones) el 27/01/2006 15:28:01
Te envio esta unidad que encontre.

Exitos.
{- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }
{ Convert from Decimal to Binary, hexadecimal, Octal and vise versa... }
{ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }
{ By M.A.C. Duiker }
{ }
{ Email : [email protected] }
{ or : [email protected] }
{ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }
{ All conversions from binary & hexadecimal return zero if a non-binary or}
{ non-hexadecimal character was found in the string. Eg. Hex2Dec('afs1')=0}
{ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }
{ Other convertions will be added into this unit on (email-)request. }
{ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }

Unit MathCvt; { Version 1.00 }

{ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }

Interface

Function Power(X,Y:WORD):LongInt;
Function Bin2Dec(Bin:String):LongInt;
Function Bin2Hex(Bin:String):String;
Function Dec2Bin(Dec:LongInt):String;
Function Dec2Hex(Dec:LongInt):String;
Function Hex2Bin(Hex:String):String;
Function Hex2Dec(Hex:String):LongInt;
Function Oct2Dec(Oct:String):LongInt;
Function Dec2Oct(Dec:LongInt):String;

{ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }

Implementation

FUNCTION Power(X,Y:Word):LongInt;

VAR Temp,Teller : LongInt;

BEGIN
TEMP:=1;
FOR Teller:=1 TO Y DO TEMP:=TEMP*X;
Power:=Temp;
END; { Power }

{ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }

FUNCTION Dec2Bin(Dec:LONGINT):String;

VAR B1:INTEGER;
Bin,BinDigit:STRING;

BEGIN
BinDigit:='01';
Bin:='';
REPEAT
B1:=DEC MOD 2;
DEC:=DEC DIV 2;
Bin:=CONCAT(BinDigit[B1+1],Bin);
UNTIL DEC<1;
Dec2Bin:=Bin;
END; { Dec2Bin }

{ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }

FUNCTION Hex2Dec(Hex:STRING):LongInt;

VAR T1,T2,Dec : LongInt;
Error : Boolean;

BEGIN
Error:=False;
T1:=0;T2:=0;DEC:=0;
FOR T1:=1 TO LENGTH(Hex) DO
BEGIN
T2:=Length(Hex)-T1;
CASE Hex[T1] OF
'0' : DEC:=DEC+0;
'1' : DEC:=DEC+Power(16,T2);
'2' : DEC:=DEC+2*Power(16,T2);
'3' : DEC:=DEC+3*Power(16,T2);
'4' : DEC:=DEC+4*Power(16,T2);
'5' : DEC:=DEC+5*Power(16,T2);
'6' : DEC:=DEC+6*Power(16,T2);
'7' : DEC:=DEC+7*Power(16,T2);
'8' : DEC:=DEC+8*Power(16,T2);
'9' : DEC:=DEC+9*Power(16,T2);
'A','a' : DEC:=DEC+10*Power(16,T2);
'B','b' : DEC:=DEC+11*Power(16,T2);
'C','c' : DEC:=DEC+12*Power(16,T2);
'D','d' : DEC:=DEC+13*Power(16,T2);
'E','e' : DEC:=DEC+14*Power(16,T2);
'F','f' : DEC:=DEC+15*Power(16,T2);
ELSE Error:=True;
END;
END;
Hex2Dec:=Dec;
IF Error THEN Hex2Dec:=0;
END; { Hex2Dec }

{ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }

FUNCTION Oct2Dec(Oct:STRING):LongInt;

VAR T1,T2,Dec : LongInt;
Error : Boolean;

BEGIN
Error:=False;
T1:=0;T2:=0;DEC:=0;
FOR T1:=1 TO LENGTH(Oct) DO
BEGIN
T2:=Length(Oct)-T1;
CASE Oct[T1] OF
'0' : DEC:=DEC+0;
'1' : DEC:=DEC+Power(8,T2);
'2' : DEC:=DEC+2*Power(8,T2);
'3' : DEC:=DEC+3*Power(8,T2);
'4' : DEC:=DEC+4*Power(8,T2);
'5' : DEC:=DEC+5*Power(8,T2);
'6' : DEC:=DEC+6*Power(8,T2);
'7' : DEC:=DEC+7*Power(8,T2);
ELSE Error:=True;
END;
END;
Oct2Dec:=Dec;
IF Error THEN Oct2Dec:=0;
END; { Oct2Dec }

{ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }

FUNCTION Bin2Dec(BIN:STRING):LongInt;

VAR T1,T2,Dec : LongInt;
Error : Boolean;

BEGIN
Error:=False;
T1:=0;T2:=0;DEC:=0;
FOR T1:=1 TO LENGTH(BIN) DO
BEGIN
T2:=Length(BIN)-T1;
CASE BIN[T1] OF
'1' : DEC:=DEC+Power(2,T2);
'0' : DEC:=DEC+0;
ELSE Error:=True;
END;
END;
Bin2Dec:=Dec;
IF Error THEN Bin2Dec:=0;
END; { Bin2Dec }

{ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }

FUNCTION Dec2Hex(DEC:LONGINT):STRING;

VAR H1:INTEGER;
Hex,HexDigit:STRING;

BEGIN
HexDigit:='0123456789ABCDEF';
HEX:='';
REPEAT
H1:=DEC MOD 16;
DEC:=DEC DIV 16;
Hex:=CONCAT(Hexdigit[H1+1],Hex);
UNTIL DEC<1;
Dec2Hex:=Hex;
END; { Dec2Hex }

{ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }

FUNCTION Dec2Oct(DEC:LONGINT):STRING;

VAR O1:INTEGER;
Oct,OctDigit:STRING;

BEGIN
OctDigit:='01234567';
Oct:='';
REPEAT
O1:=DEC MOD 8;
DEC:=DEC DIV 8;
Oct:=CONCAT(Octdigit[O1+1],Oct);
UNTIL DEC<1;
Dec2Oct:=Oct;
END; { Dec2Oct }

{ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }

FUNCTION Hex2Bin(Hex:String):String;

BEGIN
Hex2Bin:=Dec2Bin(Hex2Dec(Hex));
END; { Hex2Bin }

{ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }

FUNCTION Bin2Hex(Bin:String):String;

BEGIN
Bin2Hex:=Dec2Hex(Bin2Dec(Bin));
END; { Bin2Hex }

{ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }

END.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta

Publicado por frank (2 intervenciones) el 17/02/2006 15:54:36
vales verga con tu codigo----------------
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta

Publicado por micropais (209 intervenciones) el 28/01/2006 09:08:57
____________________________________________________________

para ENZANT.
Lo malo de usar codes de otra gente es que a veces no se entiende su funcionamiento sobre todo si está en ingles ,haber si este ejemplo lo
entiendes mejor , es de fabricacion casera ,cualquier duda postea aquí.
____________________________________________________________

uses crt;
var cnt:byte; { contador }

function DECBIN(NUMERO:BYTE):string;
{de Deimal a Binario - devuelve una cadena con el numero birario }
VAR n_bit:array[0..7] of byte;
VAR A:INTEGER;
cad_tmp:string;
caracter:string[1];
begin
DECBIN:='';
cad_tmp:='00000000';

if numero and 1=0 then n_bit[0]:=0 else n_bit[0]:=1;
if numero and 2=0 then n_bit[1]:=0 else n_bit[1]:=1;
if numero and 4=0 then n_bit[2]:=0 else n_bit[2]:=1;
if numero and 8=0 then n_bit[3]:=0 else n_bit[3]:=1;
if numero and 16=0 then n_bit[4]:=0 else n_bit[4]:=1;
if numero and 32=0 then n_bit[5]:=0 else n_bit[5]:=1;
if numero and 64=0 then n_bit[6]:=0 else n_bit[6]:=1;
if numero and 128=0 then n_bit[7]:=0 else n_bit[7]:=1;

for a:=0 to 7 do
begin
str(n_bit[a],caracter);
cad_tmp[8-a]:=caracter[1];
end;

DECBIN:=cad_tmp;

end;
{............................................................................}
FUNCTION BINDEC(cad:string):BYTE;
{ de Binario a Decimal - devuelve un byte correspondiente a un numero
binario contenido en un string , no se comprueban errores de entrada
la cadena de entrada debe contener una cadena binaria compuesta de 8
digitos binarios y con todos los digitos ejemplo 00000001=1 dec
}

VAR n_bit:array[0..7] of byte;
var a:byte;
cad_tmp:string[1];
num_tmp:byte;
re:integer;

BEGIN
for a:=7 downto 0 do
begin
cad_tmp:=cad[8-a];
val(cad_tmp,num_tmp,re);
n_bit[a]:=num_tmp;
end;

BINDEC:=N_BIT[7]*128+N_BIT[6]*64+N_BIT[5]*32+N_BIT[4]*16
+N_BIT[3]*8+N_BIT[2]*4+N_BIT[1]*2+N_BIT[0];

END;
{***************************************************************************}
begin
textmode(co80);
clrscr;

for cnt:=0 to 255 do begin
gotoxy(3,3);
write ('num: ',cnt:3,' Dec ', decbin(cnt),' Bin ' ) ; { decimal- binario}
{ usamos el numero binario de DecBin como entrada para Bindec }
writeln ( bindec(decbin(cnt)):3 ,' <- reconvertido de binario a decimal ');

delay(5000); { Retardo para mostrar los numeros }
end;

readln;

end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar