Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-09-2011
justinesteban justinesteban is offline
Registrado
NULL
 
Registrado: sep 2011
Posts: 7
Poder: 0
justinesteban Va por buen camino
calculadora conversora como hacer?

como hacer una calculadora conversora (binario, decimal, octal y exadecimal que permita ingresar un numero en cualquier base segun este seleccionado en el radiogrupo y lo convierta haciendo click en cualquier otro itemindex?
como la calculadora programador de windows 7 o calculadora cientifica de windowsxp.
utilizando solo un edit y un radiogrup con 4 itemindex
Responder Con Cita
  #2  
Antiguo 09-09-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
tienes algo avanzado?
has pensado en algo?
alguna idea?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 09-09-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.464
Poder: 21
newtron Va camino a la fama
Mucho me temo que tendrás que currar un poco.
__________________
Be water my friend.
Responder Con Cita
  #4  
Antiguo 09-09-2011
justinesteban justinesteban is offline
Registrado
NULL
 
Registrado: sep 2011
Posts: 7
Poder: 0
justinesteban Va por buen camino
si ya tengo las funciones de suma ponderada y divicion reiterada

Código Delphi [-]
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    rgbases: TRadioGroup;
    Label1: TLabel;
    resul: TLabel;
    Label2: TLabel;
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    function sp(s:string; bp:integer):string;
    function dr(s:string; bl:integer):string;
    procedure rgbasesClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  case rgbases.ItemIndex of
  0: if not (key in ['1','0']) then
  key:=#0;
  1: if not (key in ['0'..'7']) then
  key:=#0;
  2: if not (key in ['0'..'9']) then
  key:=#0;
  3: if not (key in ['0'..'9','A'..'F']) then
  key:=#0;
  end;
end;

function tform1.sp(s:string; bp:integer):string;
var
  i:integer;
  ac:Extended;
  begin
    ac:=0;
    for i:=1 to length(s) do
      case s[i] of
        'A':ac:=ac+10*power(bp,length(s)-i);
        'B':ac:=ac+11*power(bp,length(s)-1);
        'C':ac:=ac+12*power(bp,length(s)-1);
        'D':ac:=ac+13*power(bp,length(s)-1);
        'E':ac:=ac+14*power(bp,length(s)-1);
        'F':ac:=ac+15*power(bp,length(s)-1);
      ELSE
        ac:=ac+strtoint(s[i])*power(bp,length(s)-i);
      end;
      result :=FloatTostr(ac);
    end;
function tform1.dr(s:string;bl:integer):string;
var
d,numero:integer;
resultado:string;
begin
  resultado:='';
  numero:=strtoint(s);
  while numero>0 do
  begin
    d:=numero mod bl;
    numero:=numero div bl;
      case d of
        10:resultado:='A'+ resultado;
        11:resultado:='B'+ resultado;
        12:resultado:='C'+ resultado;
        13:resultado:='D'+ resultado;
        14:resultado:='E'+ resultado;
        15:resultado:='F'+resultado;
      else
        resultado:=inttostr(d)+resultado;
      end;
      result:=resultado;
    end;
    end;


     



end;
end.
Imágenes Adjuntas
Tipo de Archivo: jpg Sin título.jpg (24,9 KB, 6 visitas)

Última edición por justinesteban fecha: 09-09-2011 a las 16:34:06.
Responder Con Cita
  #5  
Antiguo 09-09-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Te pongo unos enlaces que te van a ayudar:

Y te agrego una función que te pasará un numero en cualquier base a decimal:
Código Delphi [-]
function BaseNToDec(Num : string; Base : byte): Integer;
const
  BHex = '0123456789ABCDEFGHIJKLM'; // creo que son suficientes...
var
  i : Byte;
begin
  Result:=0;
  for i:=1 to length(Num) do
    Result:= Result * Base + Pos(Upcase(Num[i]), BHex) - 1;
end;

Saludos.

Edito: Podés valerte de esta última función para convertir los números a decimal y realizar las operaciones en base 10.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 09-09-2011 a las 17:37:39.
Responder Con Cita
  #6  
Antiguo 09-09-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Recuerda poner etiquetas al código, ejemplo:




No olvides leer nuestra guía de estilo.

.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Calculadora en sistema capo979 Varios 2 07-12-2007 02:20:12
Calculadora sebaguillen Varios 17 28-08-2007 15:27:23
Calculadora en delphi 7 eudy.net Varios 15 10-03-2007 05:35:02
Calculadora Epunamun OOP 3 19-12-2005 22:33:11
Calculadora licencia GNU bismarck_sierra Varios 0 05-04-2005 06:56:33


La franja horaria es GMT +2. Ahora son las 21:11:54.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi