calculadora
Publicado por jorge (1 intervención) el 24/05/2012 16:01:41
estoy creando una calculadora y me falta codificar los signos (+, - ,* , / ) y no se como codificarlos en delphi 7
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls;
type
TForm1 = class(TForm)
PANTALLA: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button11: TButton;
Button12: TButton;
Button13: TButton;
Button14: TButton;
Button15: TButton;
Button16: TButton;
Button17: TButton;
MainMenu1: TMainMenu;
ARCHIVO1: TMenuItem;
NUEVO1: TMenuItem;
SALIR1: TMenuItem;
OPERACIONES1: TMenuItem;
INVERTIR1: TMenuItem;
FACTORIALDEUNNUMERO1: TMenuItem;
ACUMULARDIGITOS1: TMenuItem;
INTERCALARLOSDGITOSDEUNNUMERO1: TMenuItem;
procedure SALIR1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FACTORIALDEUNNUMERO1Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure INVERTIR1Click(Sender: TObject);
procedure ACUMULARDIGITOS1Click(Sender: TObject);
procedure INTERCALARLOSDGITOSDEUNNUMERO1Click(Sender: TObject);
private
{ Private declarations }
PROCEDURE INVERTIR(VAR N:INTEGER);
public
{ Public declarations }
end;
var
Form1: TForm1;
DATO,RESULTADO:INTEGER;
implementation
{$R *.dfm}
PROCEDURE TFORM1.INVERTIR(VAR N : INTEGER);
VAR
AC:INTEGER;
A:BYTE;
BEGIN
AC:=0;
WHILE( N>0 ) DO
BEGIN
A:= N MOD 10;
N:= N DIV 10;
AC:= (AC*10)+A
END;
N:= AC;
END;
procedure TForm1.SALIR1Click(Sender: TObject);
begin
CLOSE();
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
DATO:=(DATO*10)+1;
PANTALLA.Text:=INTTOSTR(DATO);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
DATO:=(DATO*10)+2;
PANTALLA.Text:=INTTOSTR(DATO);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
DATO:=(DATO*10)+3;
PANTALLA.Text:=INTTOSTR(DATO);
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
DATO:=(DATO*10)+4;
PANTALLA.Text:=INTTOSTR(DATO);
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
DATO:=(DATO*10)+5;
PANTALLA.Text:=INTTOSTR(DATO);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
DATO:=(DATO*10)+6;
PANTALLA.Text:=INTTOSTR(DATO);
end;
procedure TForm1.Button14Click(Sender: TObject);
begin
DATO:=(DATO*10)+7;
PANTALLA.Text:=INTTOSTR(DATO);
end;
procedure TForm1.Button15Click(Sender: TObject);
begin
DATO:=(DATO*10)+8;
PANTALLA.Text:=INTTOSTR(DATO);
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
DATO:=(DATO*10)+9;
PANTALLA.Text:=INTTOSTR(DATO);
end;
procedure TForm1.Button16Click(Sender: TObject);
begin
DATO:=(DATO*10)+0;
PANTALLA.Text:=INTTOSTR(DATO);
end;
procedure TForm1.Button12Click(Sender: TObject);
begin
PANTALLA.Text:= INTTOSTR(RESULTADO);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DATO:=0;
RESULTADO:=0;
end;
procedure TForm1.FACTORIALDEUNNUMERO1Click(Sender: TObject);
VAR
N, AC: INTEGER;
C: BYTE;
begin
N:= STRTOINT(PANTALLA.Text);
C:=1;
AC:=1;
WHILE (C <= N)DO
BEGIN
AC:= AC*C;
C:= C+1;
END;
RESULTADO:= AC;
end;
procedure TForm1.Button17Click(Sender: TObject);
begin
DATO:=0;
RESULTADO:= 0;
PANTALLA.Text:='0';
end;
procedure TForm1.INVERTIR1Click(Sender: TObject);
VAR
N: INTEGER;
begin
N:= STRTOINT(PANTALLA.Text);
INVERTIR(N);
RESULTADO:= N;
end;
procedure TForm1.ACUMULARDIGITOS1Click(Sender: TObject);
VAR
N:INTEGER;
CANT,C,DIG:BYTE;
begin
N:=STRTOINT(PANTALLA.Text);
CANT:=STRTOINT(INPUTBOX('INTRODUCIR','NUMERO','0'));
INVERTIR(N);
FOR C:=1 TO CANT DO
BEGIN
DIG:=STRTOINT(INPUTBOX('INTRODUCIR','NUMERO','0'));
N:=(N*10)+DIG;
END;
INVERTIR(N);
RESULTADO:=N;
END;
procedure TForm1.INTERCALARLOSDGITOSDEUNNUMERO1Click(Sender: TObject);
VAR
A,B,C,AC:INTEGER;
DIG:BYTE;
begin
A:=STRTOINT(INPUTBOX('INTRODUCIR','NUMERO','0'));
B:=STRTOINT(INPUTBOX('INTRODUCIR','NUMERO','0'));
C:=STRTOINT(INPUTBOX('INTRODUCIR','NUMERO','0'));
AC:=0;
WHILE(A>0)OR(B>0)OR(C>0)DO
BEGIN
IF(A>0)THEN
BEGIN
DIG:= A MOD 10;
A:=A DIV 10;
AC:=(AC*10)+DIG;
END;
IF(B>0)THEN
BEGIN
DIG:= B MOD 10;
B:= B DIV 10;
END;
IF(C>0)THEN
BEGIN
DIG:=C MOD 10;
C:=C DIV 10;
AC:=(AC*10)+ DIG;
END;
END;
RESULTADO:=AC;
end;
END.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls;
type
TForm1 = class(TForm)
PANTALLA: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button11: TButton;
Button12: TButton;
Button13: TButton;
Button14: TButton;
Button15: TButton;
Button16: TButton;
Button17: TButton;
MainMenu1: TMainMenu;
ARCHIVO1: TMenuItem;
NUEVO1: TMenuItem;
SALIR1: TMenuItem;
OPERACIONES1: TMenuItem;
INVERTIR1: TMenuItem;
FACTORIALDEUNNUMERO1: TMenuItem;
ACUMULARDIGITOS1: TMenuItem;
INTERCALARLOSDGITOSDEUNNUMERO1: TMenuItem;
procedure SALIR1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FACTORIALDEUNNUMERO1Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure INVERTIR1Click(Sender: TObject);
procedure ACUMULARDIGITOS1Click(Sender: TObject);
procedure INTERCALARLOSDGITOSDEUNNUMERO1Click(Sender: TObject);
private
{ Private declarations }
PROCEDURE INVERTIR(VAR N:INTEGER);
public
{ Public declarations }
end;
var
Form1: TForm1;
DATO,RESULTADO:INTEGER;
implementation
{$R *.dfm}
PROCEDURE TFORM1.INVERTIR(VAR N : INTEGER);
VAR
AC:INTEGER;
A:BYTE;
BEGIN
AC:=0;
WHILE( N>0 ) DO
BEGIN
A:= N MOD 10;
N:= N DIV 10;
AC:= (AC*10)+A
END;
N:= AC;
END;
procedure TForm1.SALIR1Click(Sender: TObject);
begin
CLOSE();
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
DATO:=(DATO*10)+1;
PANTALLA.Text:=INTTOSTR(DATO);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
DATO:=(DATO*10)+2;
PANTALLA.Text:=INTTOSTR(DATO);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
DATO:=(DATO*10)+3;
PANTALLA.Text:=INTTOSTR(DATO);
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
DATO:=(DATO*10)+4;
PANTALLA.Text:=INTTOSTR(DATO);
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
DATO:=(DATO*10)+5;
PANTALLA.Text:=INTTOSTR(DATO);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
DATO:=(DATO*10)+6;
PANTALLA.Text:=INTTOSTR(DATO);
end;
procedure TForm1.Button14Click(Sender: TObject);
begin
DATO:=(DATO*10)+7;
PANTALLA.Text:=INTTOSTR(DATO);
end;
procedure TForm1.Button15Click(Sender: TObject);
begin
DATO:=(DATO*10)+8;
PANTALLA.Text:=INTTOSTR(DATO);
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
DATO:=(DATO*10)+9;
PANTALLA.Text:=INTTOSTR(DATO);
end;
procedure TForm1.Button16Click(Sender: TObject);
begin
DATO:=(DATO*10)+0;
PANTALLA.Text:=INTTOSTR(DATO);
end;
procedure TForm1.Button12Click(Sender: TObject);
begin
PANTALLA.Text:= INTTOSTR(RESULTADO);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DATO:=0;
RESULTADO:=0;
end;
procedure TForm1.FACTORIALDEUNNUMERO1Click(Sender: TObject);
VAR
N, AC: INTEGER;
C: BYTE;
begin
N:= STRTOINT(PANTALLA.Text);
C:=1;
AC:=1;
WHILE (C <= N)DO
BEGIN
AC:= AC*C;
C:= C+1;
END;
RESULTADO:= AC;
end;
procedure TForm1.Button17Click(Sender: TObject);
begin
DATO:=0;
RESULTADO:= 0;
PANTALLA.Text:='0';
end;
procedure TForm1.INVERTIR1Click(Sender: TObject);
VAR
N: INTEGER;
begin
N:= STRTOINT(PANTALLA.Text);
INVERTIR(N);
RESULTADO:= N;
end;
procedure TForm1.ACUMULARDIGITOS1Click(Sender: TObject);
VAR
N:INTEGER;
CANT,C,DIG:BYTE;
begin
N:=STRTOINT(PANTALLA.Text);
CANT:=STRTOINT(INPUTBOX('INTRODUCIR','NUMERO','0'));
INVERTIR(N);
FOR C:=1 TO CANT DO
BEGIN
DIG:=STRTOINT(INPUTBOX('INTRODUCIR','NUMERO','0'));
N:=(N*10)+DIG;
END;
INVERTIR(N);
RESULTADO:=N;
END;
procedure TForm1.INTERCALARLOSDGITOSDEUNNUMERO1Click(Sender: TObject);
VAR
A,B,C,AC:INTEGER;
DIG:BYTE;
begin
A:=STRTOINT(INPUTBOX('INTRODUCIR','NUMERO','0'));
B:=STRTOINT(INPUTBOX('INTRODUCIR','NUMERO','0'));
C:=STRTOINT(INPUTBOX('INTRODUCIR','NUMERO','0'));
AC:=0;
WHILE(A>0)OR(B>0)OR(C>0)DO
BEGIN
IF(A>0)THEN
BEGIN
DIG:= A MOD 10;
A:=A DIV 10;
AC:=(AC*10)+DIG;
END;
IF(B>0)THEN
BEGIN
DIG:= B MOD 10;
B:= B DIV 10;
END;
IF(C>0)THEN
BEGIN
DIG:=C MOD 10;
C:=C DIV 10;
AC:=(AC*10)+ DIG;
END;
END;
RESULTADO:=AC;
end;
END.
Valora esta pregunta


0