Delphi - pilas y colas

 
Vista:
sin imagen de perfil
Val: 3
Ha aumentado 1 puesto en Delphi (en relación al último mes)
Gráfica de Delphi

pilas y colas

Publicado por nelson (2 intervenciones) el 23/06/2019 02:35:26
Buenas Noches amigos necesito de su ayuda en respecto a pilas y colas
necesito hacer un programa de menor o mayor que
ejm
del StringGrid "SG_NUMEROS" seleccionar los numeros mayores o menos de un umbral "5" y esos numero clasificarlos en un StringGrid para menores de 5 "SG_MENUMBRAL" y en otro StringGrid para mayores de 5"SG_MAYUMBRAL"

aca les dejo mi código de como voy

sin mas a que hacer referencia les deseo buenas noches

para-foro



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
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;
  TipoPilaMen=Record
              Dato:Array [1..4] of integer;
              topemen:0..4;
              end;
    TipoPilaMay=Record
              Dato:Array [1..4] of integer;
              topemay: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;
    B_UMBRAL: TButton;
    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;
  Pilamenor:TipoPilaMen;
  Pilamayor:TipoPilaMay;
  fila:integer;
  filamay:integer;
  filamen: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;
  filamen:=4;
  filamay:=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;
 
end;
 
 
 
procedure TForm1.B_MOSTRARClick(Sender: TObject);
   Begin
 If Pila.Tope<=4 Then
   Begin
     Pilamenor.topemen:= Pilamenor.topemen+1;
     Pilamenor.Dato[Pilamenor.topemen]:=Pila.dato[Pila.Tope];
     SG_MENUMBRAL.Cells [0,filamen-1]:= IntToStr(Pilamenor.Dato[Pilamenor.topemen]);
     filamen:=filamen-1;
     Pila.Tope:=Pila.Tope-1;
   end;
  If Pilamenor.topemen=4 then
   Begin
    Showmessage('Pila LLena');
   End;
end;
 
end.
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