Ver Mensaje Individual
  #4  
Antiguo 12-06-2019
nelsonjguzmans nelsonjguzmans is offline
Registrado
 
Registrado: nov 2018
Posts: 4
Reputación: 0
nelsonjguzmans Va por buen camino
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
    { Private declarations }
  public
    { Public declarations }
  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.

Última edición por Casimiro Notevi fecha: 12-06-2019 a las 16:36:05.
Responder Con Cita