Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Colaboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #8  
Antiguo 30-10-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
karen08,
Mil disculpas. Me he enredado con otros asuntos y se me olvidó de esto.
Estuve buscando entre mis apuntes de lenguaje aquellos ejercicios de punteros pues creía recordar que hice uno así... pero no los encontré. Quedaron en en Limbo del viejo disco duro...

No recuerdo mucho de pilas, colas y listas con punteros... por lo que no lo tengo demasiado fresco. Se que es algo simple, es cuestión de que haga memoria... y si me das hasta mañana te puedo adelantar algo como para que veas.

No quiero hacerte alegrar demasiado. Por lo que veo a simple vista hay unos errores:

La declaración correcta para conformar los nodos es así:

Código Delphi [-]
type
TNodo = ^Nodo
Nodo = record
   Letra: char;
   Sig: TNodo;
end;

En tu código estás mezclando objetos con la declaración de los nodos.
¿Debes crear una clase que implemente dichos procedimientos y que use internamente a la lista de nodos?

Si es así, la declaración de la clase es:

Código Delphi [-]
TClase = class
private
  FList: TNodo; //FList mantendrá la lista de nodos
  FPrimero, FUltimo, FAnterior: TNodo // auxiliares... para operar
  FCuenta: integer; // puede ser util llevar la cuenta de letras
public
  function  Agregar(Letra: char): integer; //devolvería la posición
  function GetLetra(Posic: integer): char;
  constructor Create;
  destructor Destroy;
end;

Según mi percepción Lo que se debe hacer es que si se necesita armar el abecedario sólo basta con emplear Agregar() que lo que hace es insertar al final de la lista el siguiente nodo con la info necesaria, y la función GetLetra que se encargaría de regresar la letra que se encuentre en la posición Posic (siempre y cuando existan una cantidad de nodos al menos igual a Posic)

De hecho... (según entiendo yo) para el uso de la clase no tendría sentido la función Agregar. Sino más bien que en Create tranquilamente se puede conseguir armar el abecedario en forma "automática". Ya que disponder de un Agregar() puede llevarnos a algo como esto:
ABDFTRUV y como bien sabemos... esto no es el abecedario.

Es decir que lo que yo haría es mover la declaración Agregar en private y llamarla dentro de Create. Algo así:

Código Delphi [-]
constructor TClase.Create;
begin
for i := 'A' to 'Z' do
   Agregar(i);
end;

Y bueno... también debería disponer de un Eliminar, de modo que en Destroy podríamos hacer algo así:

Código Delphi [-]
while FList <> Nil do
  Eliminar;

Obviamente Eliminar debería hacerlo desde el final o el principio (según como te resulte más cómodo).

Espero que te resulte útil estos tips. Como dije... dame un tiempito y te doy una muestra sencilla.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
 



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
uso de punteros David OOP 19 14-12-2009 09:48:37
Punteros davitcito Varios 2 25-04-2005 22:46:24
Hay punteros en java? Trigger JAVA 2 05-10-2004 21:28:20
Punteros rafadrover OOP 8 18-09-2003 10:09:47


La franja horaria es GMT +2. Ahora son las 10:17:39.


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