Ver Mensaje Individual
  #4  
Antiguo 25-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Lo que Delphius te dijo es:

Código Delphi [-]
 unit Pilas;
   interface
    const max=10;
    type
     tdato=char;
    type
     tpila=class
       public
       // variables públicas
       cima:0..max;
       elem:array[1..max]of tdato;
       // procedimientos y funciones
       function vacia:boolean;
       function llena:boolean;
    Constructor Create;
    Destructor Destroy;
       procedure poner (var ele:tdato);
       procedure sacar (var ele:tdato);
     end;
 implementation
  function tpila.vacia:boolean;
   begin
    vacia:=(cima=0);
   end;
  function tpila.Llena:boolean;
   begin
     llena:=(cima=max);
   end;
  Constructor tpila.Create;
   begin
       inherited; // herencia amigo.
    cima:=0;
   end;
  Destructor Tpila.Destroy;
  begin
     // liberar lo que sea
     inherited;
  end;
  
  procedure tpila.poner(var ele:tdato);
   begin
    cima:=cima+1;
    elem[cima]:=ele;
   end;
  procedure tpila.sacar(var ele:tdato);
   var
     i:integer;
   begin
     for i:=1 to cima-1 do
       elem[i]:=elem[i+1];
     cima:=cima-1
   end;
  end.

Y la forma de usarlo:
Código Delphi [-]
 procedure comienzo;
  var
   pila:tpila;
   i:integer;
   palabra:string;
 begin
   i:=0;
   palabra:=form1.Edit1.Text;
   pila := Tpila.create; // aqui estaba el fallito
   while (not pila.llena) and (form1.Edit1.Text[i+1]<>'') do
    begin
      i:=i+1;
      pila.poner(palabra[i]);
    end;
 end;
Eso sin ver los fallos internos que pueda tener la pila, que no lo he mirado

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita