Pascal/Turbo Pascal - Cambio de bases

 
Vista:

Cambio de bases

Publicado por monik (7 intervenciones) el 06/02/2007 22:39:19
Necesito pasar un numero de base menor a 10 a otra base menor a diez en un programa pascal alguien me puede ayudar porfa lo necesito con urgencia
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:Cambio de bases

Publicado por Carlos Guimaraenz (265 intervenciones) el 07/02/2007 00:14:43
Moni, enséñame a hacerlo (o muéstrame un ejemplo) y veo cómo se podría pasar a Pascal... un beso!
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:Cambio de bases

Publicado por monik (1 intervención) el 07/02/2007 04:31:04
hola, mira en realidad las instrucciones las tengo escaneadas no se si te las puedo enviar por mail para q me entiendas mejos y me puedas ayudar, disculpa el abuso
porfa ayudame
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:Cambio de bases

Publicado por Carlos Guimaraenz (265 intervenciones) el 07/02/2007 05:52:54
Si, Monik, no hay problema... envíamelas nomás. Un beso!
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
Imágen de perfil de Víctor

Cambio de bases

Publicado por Víctor (1 intervención) el 12/02/2014 06:09:56
Esto, un poco tarde, tal vez sea útil a otras personas

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
program Project1;
 
{$APPTYPE CONSOLE}
 
{$R *.res}
 
uses
  System.SysUtils;
 
var
  b1, b2: LongInt;
  Num, R: String;
 
procedure CambiarBase (n: String; b1,b2: integer; var R: string);
var
  i,m,t: LongInt;
 
begin
 
  //Cambiar la base del número a base 10
  m := 0;
  for i := 1 to Length(n) do
  begin
    if (n[i] in ['0'..'9'])
      then t := ord(n[i]) - 48
      else t := ord(n[i]) - 55;
    m := m * b1 + t
  end;
 
  //Cambiar la base 10 del número a la nueva base
  if m <> 0
    then r := ''
    else r := '0';
  while (m > 0) do
  begin
    t := (m mod b2);
    if t > 9
      then r := char(t + 55) + r
      else r := char(t + 48) + r;
    m := m div b2;
  end;
  if length(r) > 8 then r := 'ERROR'
end;
 
begin
  try
    Num := '254';  //Número a convertir
    b1 := 10;    //Base del número
    for b2 := 16 downto 2 do //Nuevas bases
    begin
      CambiarBase (Num, b1, b2, R);
      writeln ('El numero ',Num, ' de base ', b1, ' es ' ,r:8, ' en base ', b2);
    end;
    ReadLn
 
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message)
  end
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