Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-06-2019
nelsonjguzmans nelsonjguzmans is offline
Registrado
 
Registrado: nov 2018
Posts: 4
Poder: 0
nelsonjguzmans Va por buen camino
Question Pilas y Colas

Buenos Días mis estimados amigos, espero estén muy bien. necesito de su ayuda en realizar un programa en delphi que resuelva el siguiente planteamiento:

Dada una pila y un valor entero que llamaremos umbral dado por el usuario , genere otras dos pilas, en una de las cuales muestre los valores menores que el umbral y en la otra los valores mayores o iguales que el umbral.

Mi formato consta de 1 edit, 3 StringGrid para las lista (1 con todos los datos, y los otros para cargas mayores o menores del umbral), también tengo 2 botones uno para cargar el StringGrid1 con los datos dado por el usuario y otro botón de mostrar (se ocupa de mostrar los dato en los stringgrid mayores y menos del umbral)

mi duda es la siguiente como hago para que del StringGrind1 me separe los mayores y menores y los ubique en sus correspondientes StringGrid?

de Antemano muchas gracias a la atención que le puedan dar a la presente me despido de ustedes deseándole un magnifico día
Responder Con Cita
  #2  
Antiguo 10-06-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Veamos, pon tu código que lo veamos.
Responder Con Cita
  #3  
Antiguo 10-06-2019
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Te va a resultar mas simple si en lugar de StringGrid usas ListBox. El ListBox1 almacenará todos los datos, el ListBox2 los menores y el ListBox3 los demás.
  • Carga los valores en ListBox1.
  • Pide al usuario que ingrese el valor de referencia 'N'.
  • Usa un ciclo con una variable de control(i) para recorrer los items de ListBox1, de cero a ListBox1.Items.Count - 1.
  • Convierte el valor de ListBox1.Items[i] a entero y almacénalo en una variable 'X'.
  • Mediante una estructura de decisión evalua el valor de 'X' si es menor que 'N' lo agregas a ListBox2 de otro modo a ListBox3 (ListBox.Items.Add).
  • Si deseas presentar los resultados ordenados, asigna el valor True a la propiedad Sorted de los ListBox.
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 11-06-2019
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Código:
P: PILA
MENORES, MAYORES: PILA
UMBRAL: SORTABLE

WHILE P NOT EMPTY
	X = P.POP
	IF X < UMBRAL THEN
		MENORES.PUSH(X)
	ELSE
		MAYORES.PUSH(X)
END WHILE


// Saludos
Responder Con Cita
  #5  
Antiguo 12-06-2019
nelsonjguzmans nelsonjguzmans is offline
Registrado
 
Registrado: nov 2018
Posts: 4
Poder: 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 17:36:05.
Responder Con Cita
  #6  
Antiguo 12-06-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Y para la próxima no olvides poner las etiquetas al código fuente


Responder Con Cita
  #7  
Antiguo 12-06-2019
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Esta es la respuesta!

Cita:
Empezado por roman Ver Mensaje
Código:
P: PILA
MENORES, MAYORES: PILA
UMBRAL: SORTABLE

WHILE P NOT EMPTY
	X = P.POP
	IF X < UMBRAL THEN
		MENORES.PUSH(X)
	ELSE
		MAYORES.PUSH(X)
END WHILE


// Saludos
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #8  
Antiguo 18-06-2019
nelsonjguzmans nelsonjguzmans is offline
Registrado
 
Registrado: nov 2018
Posts: 4
Poder: 0
nelsonjguzmans Va por buen camino
Question asi voy

Buenas noches mis estimados disculpen las tardanza, pues he tenido complicaciones familiares y para conectarme, les quería comentar como va mi progreso y tambien que no soy muy diestro con la computadora sin mas preámbulo acá les dejo mi desastre


aca les muestro mi plan, la idea es que el usuario coloque un umbral digamos 5, luego pase a ingresar numeros que al agregar lo mandara al primer StringGrind "lista con todos los numeros". Paso seguido el usuario al hacer click en "Mostrar" les arroje el resultado mayor o menor que al Umbral


he aqui el detalle no se como mostrar el ultimo paso y el umbral.

si me podrian ayudar y explicar con manzanitas les estare muy agradecido

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;
    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;
  Pilainversa:TipoPilaInv;
  fila,umb,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;
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Sistema de Colas Choclito OOP 3 28-06-2011 19:51:59
Colas y pilas ebanibaldo JAVA 6 27-04-2010 01:29:53
Clases - pilas - colas Manshula OOP 6 21-05-2008 21:05:15
Pedido de Ayuda (Arboles bianrios, pilas y colas) theundertakker Varios 1 07-12-2005 21:03:34
informacion sobre listas,colas y pilas Lizita Varios 2 09-05-2005 11:02:29


La franja horaria es GMT +2. Ahora son las 02:11:14.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi