RSS
Facebook
G+

Buscador de IntercambioSOS:


Retroceder   Foro de Ayuda IntercambiosvirtualeS > Soporte Sobre: Educación & Entretenimiento > Zona Académica > Programación
Comunidad

Tema Cerrado
 
Herramientas Desplegado
Antiguo 26-may-2012     #1
Llorón Ayuda con Pila en Pascal

Hola amigos necesito de su ayuda, quisiera que me ayudaran con el codigo en pascal para "modificar" y "eliminar" si me pueden guiar seria grandioso. Bueno este codigo se trata de llenar una pila, casi todos los parametros estan listo solo me falta el modificar y eliminar, se que no es dificil pero en verdad no ando con la cabeza buena, ando totalmente nulo para programar asi que en verdad si me ayudan sería estupendo.

Les dejo el codigo


Código:
Program Estructura;
{

  Se utilizarán los siguientes procedimientos:
     PUSH --> Para insertar un elemento
     PULL --> Para sacar un elemento
     BUSCA -> Para determinar si el elemento existe en la pila
     MUEVE -> Para llevar los elementos a una pila auxiliar

     La variable TOPE indica la posición de inserción en la pila
     (último elemento ingresado)

     TOPE = Puntero que lleva la cuenta de elementos ingresados
}
Uses CRT;
Var
  Pila:Array[1..20] of Integer;
  i,j,opcion,elemento,pos,Tope:Integer;
Procedure Limpia;   { limpia la pila }
Var
  k:Integer;
Begin
  For k:=1 to 20 do
      Pila[k]:=0;
End;
Procedure Imprime; { imprime la pila}
Var
  k: Integer;
Begin
  Writeln('Imprime la Pila');
  Writeln;
  For k:=1 to 20 do
      Write(Pila[k]:3);
  Writeln;
  Readln;
End;
Procedure Busca(valor:Integer); { valor es el elemento a buscar }
Var
   k:Integer;
   Encuentra:Boolean;
Begin
   k:=1;
   Pos:=0;
   Encuentra:=False;
   While (Encuentra) do
   Begin
     If(Pila[k] <> 0) then
     Begin
      Encuentra:=True;
      Pos:=k;
     End
     Else
      k:=k+1;
   End;
End;
{ Procedimiento para determinar si la pila tiene espacio para
  insertar un elemento a la pila.  }
Procedure Busca_espacio;
Begin
  If(Tope = 1) and (Pila[1] <> 0) then
    Writeln('Pila llena.. no puede insertar elemento');
End;
{ Procedimiento que inserta un elemento }
Procedure Push;
Var
  k,m:Integer; {m es la variable que ubica el puntero en la pila}
  Begin
     Writeln('Ingrese elemento');
     Read(Elemento);
     busca_espacio;
     For k:=1 to Tope do
         If(Pila[k]=0) and (k = tope) then
         Begin
           Pila[k]:=Elemento;
           Tope:=Tope-1;
           Writeln('Elemento=',Elemento,' Correctamente ingresado');
           Readln;
         End;
  End;
Procedure Pull;
Begin
End;
Procedure Modifica;   (AQUI ES DONDE DEBERIA IR EL CODIGO DE MODIFICAR)
Begin
End;
Begin {programa principal}
  Limpia;
  opcion:=9;
  Tope:=20;
  While (opcion <> 0) do
  Begin
{    Clrscr;}
    Writeln('   MENU PRINCIPAL');
    Writeln;
    Writeln('   1 Inserta');
    Writeln('   2 Elimina');
    Writeln('   3 Modifica');
    Writeln('   4 Lista');
    Writeln('   0 Salir');
    Writeln('Ingrese opcion : ');
    Read(opcion);
    Case opcion of
       1:Push;
       2:Pull;
       3:Modifica;
       4:Imprime;
       0:Begin
           Writeln('Chao pescado...');
           Readln;
         End;
       Else
         Writeln('Opcion invalida... vuelva a seleccionar');
   End;
 End;
End.



No existen malos días,solo son malos momentos que sumados te marcan el día.

Volviendo poco a poco al foro


Respeta las REGLAS de y no hagas
Enviar un mensaje por MSN a wolfito
Antiguo 26-may-2012     #2
Predeterminado

Aun existe Pascal ????????????????????????????????????????????


jajajajajajajajajajaja

Antiguo 26-may-2012     #3
Predeterminado

Ver MensajeIniciado por baduser Ver Mensaje
Aun existe Pascal ????????????????????????????????????????????


jajajajajajajajajajaja



Lo se, pero esto es con fin pedagógico



No existen malos días,solo son malos momentos que sumados te marcan el día.

Volviendo poco a poco al foro


Respeta las REGLAS de y no hagas
Enviar un mensaje por MSN a wolfito
Antiguo 15-jun-2012     #4
Predeterminado

este año me lo han metido en una asignatura de la carrera en 1º .... que asquerosidad de lenguaje
Los siguientes 2 usuarios agradecen a Delto por este mensaje:
Tururojo (15-jun-2012), wolfito (15-jun-2012)
Antiguo 09-nov-2012     #5
Predeterminado

Recuerdo cuando vi eso. No es dificil, es simliar a las Colas... Lastimosamente no tengo los fuentes y es tedioso hacerlo a estas alturas (para mi jaja). sin embargo encontré este código sacado de http://html.rincondelvago.com/pilas-y-colas.html :

Unit Pilas;

Interface

type

tipo_dato = <dato a almacenar>;

tptr_nodo_pila = ^tnodo_pila

tnodo_pila = record

dato : tipo_dato;

enlace : tptr_nodo_pila;

end;

{encabezamiento de las primitivas que utilizaremos en el tipo de dato PILA}

Procedure Pila_crear (var pila : tptr_nodo_pila);

{Pre: La pila nunca fue creada.

Post: Se creo la pila y se encuentra vacía}

Procedure Pila_insertar (var pila : tptr_nodo_pila; elem : tipo_dato; var error : boolean);

{Pre: La pila existe.

Post: Si error = false el elemento fue ingresado en el tope de la pila, si error = true no se ha ingresado el elemento, la pila se encuentra llena}


Procedure Pila_retirar (var pila : tptr_nodo_pila; var elem : tipo_dato);

{Pre:La pila fue creada y no está vacia.

Post: El elemento del tope de la pila fue retirado y se encuentra en elem, la pila queda igual, sin el elemento que se encontraba en el tope}


Procedure Pila_vaciar (var pila : tptr_nodo_pila);

{Pre: La pila fue creada.

Post: La pila se encuentra vacía}

Function Pila_vacia (pila : tptr_nodo_pila);

{Pre: La pila fue creada.

Post: Devuelve true si la pila se encuentra vacía, y sino false}

Implementation

Procedure Pila_crear (var pila : tptr_nodo_pila);

begin

pila := nil;

end;

Procedure Pila_insertar (var pila : tptr_nodo_pila; elem : tipo_dato; var error : boolean);

var ptr_aux : tptr_nodo_pila; {se utiliza para insertar el nuevo elemento}

begin

error:= Maxavail < sizeof(tnodo_pila);

if ( not error) then

begin

new (ptr_aux);

ptr_aux^.dato := elem;

ptr_aux^.enlace := pila;

pila := ptr_aux;

end


end;

Procedure Pila_retirar (var pila : tptr_nodo_pila; var elem : tipo_dato);

var ptr_aux : tptr_nodo_pila; {se utiliza para eliminar el elemento que se encuentra en}

{el tope}

begin

ptr_aux := pila;

elem := pila^.dato;

pila := pila^.enlace;

dispose (ptr_aux);

end;

Procedure Pila_vaciar (var pila : tptr_nodo_pila);

var e : tipo_dato;

begin

while not(Pila_vacía(pila)) do

Pila_retirar (pila,e)

end;

Function Pila_vacia (pila : tptr_nodo_pila);

begin

Pila_vacía := (pila = nil);

end;

<begin>

end.
acá te dejo otro link donde encontré otra explicación.
http://www.todoexpertos.com/categori...7/pilas-pascal


y para el menu principal, puedes poner ese mismo que tu tienes...

espero te sirva, y cualquier duda no dudes en contactarnos ;)

Última edición por RHAF; 09-nov-2012 a las 15:51 Razón: otra fuente
Tema Cerrado


(0 miembros y 1 visitantes)
 

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado

Ir al Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Té Verde: 25 Razones para comenzar a tomarlo ahora mismo.... cramercaba Medicina y Salud 13 28-ene-2012 17:46
ayuda Programa de calculadora en Pascal RadamantiS Programación 2 07-ene-2012 17:29
*.* Shepara v1.0 Ayuda para Internacionalizar tus Aplicaciones [Concurso 2011] nokiajavi Tutoriales & Videos Tutoriales 5 21-jul-2011 03:21
Manual fspassengers en español Corbet AudioLibros, Manuales, Libros & Revistas 4 30-mar-2011 23:57
Ayuda Urgente ej, de pascal Xmas Programación 1 15-feb-2011 13:02


Desarrollado por: vBulletin® Versión 3.8.1
Derechos de Autor ©2000 - 2024, Jelsoft Enterprises Ltd.
Ad Management by RedTyger