Delphi - NECESITO UNA CALCULADORA CIENTIFICA

 
Vista:

NECESITO UNA CALCULADORA CIENTIFICA

Publicado por Orlando E (1 intervención) el 03/04/2005 06:41:17
Necesito una calculadora cientifica en delphi para una practica de la universidad, por falta de tiempo no la he podido hacer ayudemen
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

NECESITO UNA CALCULADORA CIENTIFICA

Publicado por dulorier (1 intervención) el 12/06/2012 18:35:57
unit claculador;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, jpeg, XPMan;

type
TFCalculador = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Eecrant: TEdit;
Bborrar: TBitBtn;
Bsiete: TBitBtn;
Bocho: TBitBtn;
Bnueve: TBitBtn;
Bdividir: TBitBtn;
Bmultiplicacion: TBitBtn;
Bmenos: TBitBtn;
Bsuma: TBitBtn;
Bporciento: TBitBtn;
Braiz: TBitBtn;
BitBtn11: TBitBtn;
BitBtn12: TBitBtn;
Bseis: TBitBtn;
Bcuatro: TBitBtn;
Bcinco: TBitBtn;
Btres: TBitBtn;
Bdos: TBitBtn;
Buno: TBitBtn;
Bcero: TBitBtn;
Bpunto: TBitBtn;
BitBtn21: TBitBtn;
Bpotencia: TBitBtn;
BitBtn23: TBitBtn;
BitBtn25: TBitBtn;
BitBtn24: TBitBtn;
Image1: TImage;
Panel3: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
XPManifest1: TXPManifest;
BitBtn1: TBitBtn;
procedure BitBtn24Click(Sender: TObject);
procedure BceroClick(Sender: TObject);
procedure BunoClick(Sender: TObject);
procedure BdosClick(Sender: TObject);
procedure BtresClick(Sender: TObject);
procedure BcuatroClick(Sender: TObject);
procedure BcincoClick(Sender: TObject);
procedure BseisClick(Sender: TObject);
procedure BsieteClick(Sender: TObject);
procedure BochoClick(Sender: TObject);
procedure BnueveClick(Sender: TObject);
procedure BpuntoClick(Sender: TObject);
procedure BitBtn23Click(Sender: TObject);
procedure BsumaClick(Sender: TObject);
procedure BitBtn12Click(Sender: TObject);
procedure BmenosClick(Sender: TObject);
procedure BmultiplicacionClick(Sender: TObject);
procedure BdividirClick(Sender: TObject);
procedure BitBtn25Click(Sender: TObject);
procedure BitBtn21Click(Sender: TObject);
procedure EecrantKeyPress(Sender: TObject; var Key: Char);
procedure BitBtn11Click(Sender: TObject);
procedure BpotenciaClick(Sender: TObject);
procedure BporcientoClick(Sender: TObject);
procedure BraizClick(Sender: TObject);
procedure BborrarClick(Sender: TObject);





private
{ Private declarations }
public
{ Public declarations }
end;

var
FCalculador: TFCalculador;
vpunto :boolean;
Resultado: Real;
Num1, Num2:integer ;
Valor1,Valor2 : real;
numero : Integer;
op : string;
implementation

{$R *.dfm}

procedure TFCalculador.BitBtn24Click(Sender: TObject);
begin
close;
end;

procedure TFCalculador.BceroClick(Sender: TObject);
begin
Eecrant.Text:=Eecrant.Text+'0';
end;

procedure TFCalculador.BunoClick(Sender: TObject);
begin
Eecrant.Text:=Eecrant.Text+'1';
end;

procedure TFCalculador.BdosClick(Sender: TObject);
begin
Eecrant.Text:=Eecrant.Text+'2';
end;

procedure TFCalculador.BtresClick(Sender: TObject);
begin
Eecrant.Text:=Eecrant.Text+'3';
end;

procedure TFCalculador.BcuatroClick(Sender: TObject);
begin
Eecrant.Text:=Eecrant.Text+'4';
end;

procedure TFCalculador.BcincoClick(Sender: TObject);
begin
Eecrant.Text:=Eecrant.Text+'5';
end;

procedure TFCalculador.BseisClick(Sender: TObject);
begin
Eecrant.Text:=Eecrant.Text+'6';
end;

procedure TFCalculador.BsieteClick(Sender: TObject);
begin
Eecrant.Text:=Eecrant.Text+'7';
end;

procedure TFCalculador.BochoClick(Sender: TObject);
begin
Eecrant.Text:=Eecrant.Text+'8';
end;

procedure TFCalculador.BnueveClick(Sender: TObject);
begin
Eecrant.Text:=Eecrant.Text+'9';
end;

procedure TFCalculador.BpuntoClick(Sender: TObject);
begin
if not vpunto then
begin
Eecrant.Text:=Eecrant.Text + '.';
vpunto:=true;
end;
end;

procedure TFCalculador.BitBtn23Click(Sender: TObject);
begin
Eecrant.Text := '';
end;

procedure TFCalculador.BsumaClick(Sender: TObject);
begin
numero := 1;
if (Eecrant.Text <> '') then
Num1 := StrToInt(Eecrant.Text);Eecrant.Enabled := true;
Eecrant.Clear;
end;

procedure TFCalculador.BitBtn12Click(Sender: TObject);
begin
Num2 := StrToInt(Eecrant.Text);
case numero of
0:
Resultado := 0;
1:
Resultado := Num1 + Num2;
2:
Resultado := Num1 - Num2;
3:
Resultado := Num1 * Num2;
4:
Resultado := Num1 div Num2;
end;
Eecrant.Text := FloatToStr(Resultado);
Eecrant.Enabled := false;
end;

procedure TFCalculador.BmenosClick(Sender: TObject);
begin
numero := 2;
if (Eecrant.Text <> '') then
Num1 := StrToInt(Eecrant.Text);Eecrant.Enabled := true;
Eecrant.Clear;
end;

procedure TFCalculador.BmultiplicacionClick(Sender: TObject);
begin
numero := 3;
if (Eecrant.Text <> '') then
Num1 := StrToInt(Eecrant.Text);Eecrant.Enabled := true;
Eecrant.Clear;
end;

procedure TFCalculador.BdividirClick(Sender: TObject);
begin
numero := 4;
if (Eecrant.Text <> '') then
Num1 := StrToInt(Eecrant.Text);Eecrant.Enabled := true;
Eecrant.Clear;
end;

procedure TFCalculador.BitBtn25Click(Sender: TObject);
begin
Eecrant.Text := '';
end;

procedure TFCalculador.BitBtn21Click(Sender: TObject);
begin
resultado:=strtofloat(Eecrant.Text)*-1;
Eecrant.Text:=floattostr(resultado);

end;

procedure TFCalculador.EecrantKeyPress(Sender: TObject; var Key: Char);
begin
if (strscan('0123456789.+-*/%^!',key)=nil)
and(key<>#13)and (key<>char(vk_back)) then
key:=#0;
if (key='+') or (key='-')
or (key='*') or (key='^')
or (key='/') or (key='!')or (key='%') then
begin
if (length(trim(Eecrant.Text))=0) then
valor1:=0.00

Else
valor1:=strtofloat(Eecrant.Text);
Eecrant.Clear;
op:=key;
vpunto:=false;
key:=#0;
case key of
'+':begin Bsuma.click;key:=#0;end;
'-':begin Bmenos.Click; key:=#0; end;
'*':begin Bmultiplicacion.Click; key:=#0; end;
'e':begin Bpotencia.Click; key:=#0; end;
'%':begin Bporciento.Click; key:=#0; end;
'r':begin Braiz.Click; key:=#0; end;
'/':begin Bdividir.Click; key:=#0; end;
'0':begin Bcero.Click; key:=#0;end;
'1':begin Buno.Click; key:=#0;end;
'2':begin Bdos.Click; key:=#0;end;
'3':begin Btres.Click; key:=#0;end;
'4':begin Bcuatro.Click; key:=#0;end;
'5':begin Bcinco.Click; key:=#0;end;
'6':begin Bseis.Click; key:=#0;end;
'7':begin Bsiete.Click; key:=#0;end;
'8':begin Bocho.Click; key:=#0;end;
'9':begin Bnueve.Click; key:=#0;end;
end;
end;
end;
procedure TFCalculador.BitBtn11Click(Sender: TObject);

var
n,factorial,i:integer;
begin
n:=strtoint(Eecrant.text);
factorial:=1;
for i:=1 to n do
factorial:=factorial*i;
Eecrant.text:= inttostr(factorial);
end;


procedure TFCalculador.BpotenciaClick(Sender: TObject);

var
error: Integer;
aux: real;
begin
Val(Eecrant.text,aux,error);
if error = 0 then
Eecrant.Text := floattostr(sqr(aux))
else
Eecrant.Text := 'Error';
Eecrant.Tag := 0;
end;


procedure TFCalculador.BporcientoClick(Sender: TObject);
begin

Eecrant.text := FloatToStr(StrToFloat(Eecrant.text) * StrToFloat(Eecrant.Text) / 100);
end;




procedure TFCalculador.BraizClick(Sender: TObject);

var
error: Integer;
aux: real;
begin
Val(Eecrant.text,aux,error);
if error = 0 then
Eecrant.Text := floattostr(sqrt(aux))
else
Eecrant.Text := 'error';
Eecrant.Tag := 0;


end;

procedure TFCalculador.BborrarClick(Sender: TObject);
begin
Eecrant.Text:=copy((Eecrant.text),1,length(Eecrant.text)-1);
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