elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Pilas y Colas Pascal
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pilas y Colas Pascal  (Leído 6,844 veces)
vanchopper

Desconectado Desconectado

Mensajes: 22


Ver Perfil
Pilas y Colas Pascal
« en: 30 Marzo 2011, 07:29 am »

hola , que tal ... quería saber si alguien podría ayudarme con este programa , orientándome o mucho mejor dándome el código. Ya que en la facultad nos han largado a programar y no hemos visto ni un ejercicio de ejemplo para dar una idea de como manejarnos..Eh buscado en Internet y un libro pero son muy sencillos o tocan temas como recursividad que no hemos llegado.
espero que alguien me pueda ayudar, desde ya muchas gracias.

- Se lee una secuencia de caracteres terminada en punto. Los caracteres forman palabras
separadas por un único blanco (no hay blanco después de la última palabra). Informar la cantidad
de veces que aparece la última palabra en la secuencia. Además para cada palabra determinar si
tiene o no mayor cantidad de vocales que de consonantes.




En línea

Khronos14


Desconectado Desconectado

Mensajes: 443


A lie is a lie


Ver Perfil WWW
Re: Pilas y Colas Pascal
« Respuesta #1 en: 30 Marzo 2011, 13:31 pm »

Hola vanchopper, en este foro no se realizan tareas.

En el ejercicio, yo no veo que te pidan realizar la tarea con pilas o colas. La forma más sencilla sería ir guardando los caracteres en un string leyendo con Read. Luego con bucles y condicionales puedes hacer todo lo que piden. Para copiar partes de una cadena, desde una posición determinada tienes la función copy, que funciona igual que substr en otros lenguajes de programación.

Saludos.


En línea

vanchopper

Desconectado Desconectado

Mensajes: 22


Ver Perfil
Re: Pilas y Colas Pascal
« Respuesta #2 en: 31 Marzo 2011, 01:27 am »

Bueno krhonos no pido que me hagan la tarea  , como dice el post , pido que me orienten o si es posible que me pasen el código de este ejercicio, para darme cuenta la lógica de pilas  y colas.
El ejercicio debe ser echo con pilas y colas , ya que así lo exige la catedra.
espero que me puedan ayudar.
En línea

Khronos14


Desconectado Desconectado

Mensajes: 443


A lie is a lie


Ver Perfil WWW
Re: Pilas y Colas Pascal
« Respuesta #3 en: 31 Marzo 2011, 13:27 pm »

Hola vanchopper, tuve un poco de tiempo libre y echaba de menos Pascal así que hice este pequeño programa:

Código
  1. program Colas;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. type
  9.  TPalabra = packed record
  10.    Palabra: PAnsiChar; //^AnsiChar;
  11.    SiguientePalabra: ^TPalabra;
  12.  end;
  13.  PCola = ^TPalabra;
  14.  
  15. var
  16.  Cola: PCola;
  17.  PrimeraPalabra, UltimaPalabra: PCola;
  18.  
  19. function AñadirPalabra(Palabra: PAnsiChar): boolean;
  20. var
  21. P: PCola;
  22. begin
  23. result:= false;
  24.  if Palabra <> nil then
  25.    begin
  26.      New(P);
  27.      if P = nil then
  28.        begin
  29.          WriteLn('No se pudo reservar memoria para la cola');
  30.          Exit;
  31.        end;
  32.  
  33.      GetMem(P^.Palabra, StrLen(Palabra) + 1); //+1 para el caracter #0 de final de cadena
  34.      if P^.Palabra = nil then
  35.        begin
  36.          WriteLn('No se pudo reservar memoria para la palabra');
  37.          Exit();
  38.        end;
  39.      StrCopy(P^.Palabra, Palabra);
  40.  
  41.      if PrimeraPalabra = nil then
  42.        begin
  43.          Cola:= P;
  44.          PrimeraPalabra:= Cola;
  45.        end else
  46.          begin
  47.            Cola^.SiguientePalabra:= Pointer(P);
  48.            Cola:= PCola(Cola^.SiguientePalabra);
  49.            UltimaPalabra:= PCola(Cola^.SiguientePalabra);
  50.          end;
  51.  
  52.      result:= true;
  53.    end;
  54. end;
  55.  
  56. procedure LiberarMemoria;
  57. var
  58. P, PAux: PCola;
  59. begin
  60. P:= PrimeraPalabra;
  61.  while P <> nil do
  62.    begin
  63.      FreeMem(P^.Palabra);
  64.      PAux:= PCola(P^.SiguientePalabra);
  65.      Dispose(P);
  66.      P:= PAux;
  67.    end;
  68. end;
  69.  
  70. var
  71. P: PCola;
  72. begin
  73.  AñadirPalabra('Primera palabra');
  74.  AñadirPalabra('Palabra de prueba');
  75.  AñadirPalabra('qwdqwd');
  76.  AñadirPalabra('qwdqwd');
  77.  AñadirPalabra('qwdqwd');
  78.  AñadirPalabra('by Khronos');
  79.  
  80.  P:= PrimeraPalabra;
  81.  while P <> nil do
  82.    begin
  83.      WriteLn(P^.Palabra);
  84.      P:= PCola(P^.SiguientePalabra);
  85.    end;
  86.  ReadLn;
  87.  LiberarMemoria();
  88. end.
  89.  

Aquí tienes un pequeño programa que trabaja con Colas. El código está hecho en Delphi 2010, pero si trabajas con FreePascal no deberías tener ningún problema. Quizás deberías buscar en Internet información sobre las funciones New, Dispose, GetMem y FreeMem...

Con estas funciones, deberías ser capaz de hacer tu ejercicio.

Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con Pilas y Colas
Programación Visual Basic
[Decoded] 5 8,200 Último mensaje 30 Agosto 2010, 15:06 pm
por goldarg
Ayuda con Pilas y Colas
Programación C/C++
HeavyPsychedelic 1 3,355 Último mensaje 26 Octubre 2010, 18:57 pm
por Littlehorse
Pilas y Colas
Java
Shell Root 2 6,241 Último mensaje 13 Mayo 2011, 22:35 pm
por ShotgunLogic
Colas, pilas y arbole
Programación Visual Basic
Crarmon 0 1,734 Último mensaje 14 Julio 2011, 19:12 pm
por Crarmon
Problema Pilas y colas
Programación C/C++
Oppenheimer 0 2,800 Último mensaje 31 Octubre 2013, 23:26 pm
por Oppenheimer
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines