Buenos dias mi estimado; disculpe la tardanza aca le dejo el codigo;
* Me falta un edit en el cual el usuario coloque el umbral, Ejm: 5 (menores de 5 al dar click en B_MOSTRAR aparezca en SG_MENUMBRAL y los mayores en SG_MAYUMBRAL)
* y saber con que condición me imagino que IF en el B_MOSTRAR me separe los numero ingresados
Código Delphi
[-]unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TipoPila = Record
Dato: Array[1..4] of integer;
Tope: 0..4;
end;
TipoPilaInv=Record
Dato:Array [1..4] of integer;
topei:0..4;
end;
TForm1 = class(TForm)
E_INGRESAR: TEdit;
B_SALIR: TButton;
B_AGREGAR: TButton;
B_MOSTRAR: TButton;
B_REINICIAR: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
SG_NUMEROS: TStringGrid;
SG_MENUMBRAL: TStringGrid;
SG_MAYUMBRAL: TStringGrid;
E_UMBRAL: TEdit;
procedure B_REINICIARClick(Sender: TObject);
procedure B_SALIRClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure B_AGREGARClick(Sender: TObject);
procedure B_MOSTRARClick(Sender: TObject);
private
public
end;
var
Pila:TipoPila;
Pilainversa:TipoPilaInv;
fila,filai:integer;
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.B_REINICIARClick(Sender: TObject);
begin
begin
Application.MainForm.Hide;
WinExec(PChar(ParamStr(0)), SW_NORMAL);
TerminateProcess(GetCurrentProcess, 0);
end;
end;
procedure TForm1.B_SALIRClick(Sender: TObject);
begin
Close;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Pila.Tope:=0;
fila:=4;
filai:=4
end;
procedure TForm1.B_AGREGARClick(Sender: TObject);
begin
If Pila.Tope<4 Then
Begin
E_INGRESAR.SetFocus;
Pila.Tope:= Pila.Tope+1;
Pila.dato[Pila.Tope]:=StrToInt(E_INGRESAR.text);
SG_NUMEROS.Cells [0,fila-1]:= IntToStr(Pila.dato[Pila.Tope]);
fila:=fila-1;
E_INGRESAR.Clear;E_INGRESAR.SetFocus;
end;
If Pila.Tope=4 then
Begin
Showmessage('Pila LLena');
fila:=0;
pilainversa.topei:=0;
End;
end;
procedure TForm1.B_MOSTRARClick(Sender: TObject);
begin
If Pila.Tope<=4 Then
Begin
PilaInversa.Topei:= PilaInversa.Topei+1;
PilaInversa.Dato[Pilainversa.Topei]:=Pila.dato[Pila.Tope];
SG_MENUMBRAL.Cells [0,filai-1]:= IntToStr(PilaInversa.dato[PilaInversa.Topei]);
SG_MAYUMBRAL.Cells [0,filai-1]:= IntToStr(PilaInversa.dato[PilaInversa.Topei]);
filai:=filai-1;
Pila.Tope:=Pila.Tope-1;
end;
If Pilainversa.Topei=4 then
Begin
Showmessage('Pila LLena');
End;
end;
end.