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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-05-2011
velapuerca88 velapuerca88 is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 12
Poder: 0
velapuerca88 Va por buen camino
ayuda con LISTAS(con cursores,arreglos y apuntadores)

HOLA, tengo un problema , tengo que realizar el siguiente ejercicio:

"Dado un archivo en ASCII,construir un algoritmo que genere un indice,ordenado,de todas las palabras distintas contenidas en el archivo,contando la ocurrencia de cada una de ellas.luego listar la lista en pantalla."

La verdad no se por donde comenzar, si alguien tiene alguna idea, POR FAVOR AVISE.
muchas gracias!
Responder Con Cita
  #2  
Antiguo 21-05-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Hola velapuerca88, se ve que esto es una tarea escolar. No hay problema en que solicites ayuda, pero tenemos por costumbre ayudar a los estudiantes sin estropear su aprendizaje ni evitarle un sano esfuerzo.

Dinos, de lo que señala ese ejercicio, ¿qué es lo que sí sabes hacer? Y, por otro lado, ¿qué conocimientos tienes de Delphi? (supongo que te lo piden que esté hecho en Delphi). ¿Sabes cargar un archivo de texto en memoria, manejar listas y buscar caracteres específicos dentro de una cadena String?

Saludos.

Al González.
Responder Con Cita
  #3  
Antiguo 21-05-2011
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Cool

Mmmm, está lindo el ejercicio, me hace recordar aquellas viejas épocas de estudiante universitario pelo largo. Llena la carpeta de algoritmos y sueños...

Igualmente, no creo que al ejercicio propuesto le hagan falta cursores y apuntadores; bueno, arreglos si, eso seguro.
Habría que plantear un modulito que reciba una lista de palabras y devuelva un arreglo de la forma (palabra, cantidad). Aquí habría que tener en cuenta el asunto de los signos de puntuación (ignorarlos); también sería bueno que todas las palabras fueran uniformes (todo mayúsculas o todo minúsculas, para evitar problemas)
Posteriormente en otra parte lo ordenamos alfabéticamente.
Como estamos hablando de un algoritmo no creo que haga falta, en principio, demasiado rigor sintáctico con algún lenguaje, que por supuesto espero que sea Delphi al final.

Bueno, espero haber ayudado.

Santiago.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.

Última edición por santiago14 fecha: 21-05-2011 a las 19:18:00.
Responder Con Cita
  #4  
Antiguo 21-05-2011
velapuerca88 velapuerca88 is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 12
Poder: 0
velapuerca88 Va por buen camino
gracias por las respuestas!

El ejercicio lo tengo que entregar en delphi, Tengo 2 problemas importantes,
1 ) se podria ir leyendo linea por linea desde el archivo de texto(readln) para separar las palabras ??
2) suponiendo que para separar las palabras tome solo el caracter espacio, habia una funcion en delphi para seleccionar los caracteres anteriores al espacio, no recuerdo cual era.

SE ME OCURRE ALGO ASI PARA SEPARAR PERO NO SE BIEN QUE HACER
procedure separar (var s:string; var p:lista; separador:char; palabra:sring; )
var q : posicionlista;
i: integer;
begin
for i:=1 to lenght(s) do
if s[i]<> " " do // intento decir mientras sea distinto de espacio
palabra: = palabra+ s[i];
Responder Con Cita
  #5  
Antiguo 22-05-2011
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Post

Cita:
Empezado por velapuerca88 Ver Mensaje
El ejercicio lo tengo que entregar en delphi, Tengo 2 problemas importantes,
1 ) se podria ir leyendo linea por linea desde el archivo de texto(readln) para separar las palabras ??
2) suponiendo que para separar las palabras tome solo el caracter espacio, habia una funcion en delphi para seleccionar los caracteres anteriores al espacio, no recuerdo cual era.

SE ME OCURRE ALGO ASI PARA SEPARAR PERO NO SE BIEN QUE HACER
procedure separar (var s:string; var p:lista; separador:char; palabra:sring; )
var q : posicionlista;
i: integer;
begin
for i:=1 to lenght(s) do
if s[i]<> " " do // intento decir mientras sea distinto de espacio
palabra: = palabra+ s[i];

En principio habría que eliminar todos los símbolos especiales (, . ; : etc.) Hay una funciones que ayudan "strReplace" creo que se llama una de ellas. Puedes ver aquí para estas funciones.
Luego de eso, si podrías usar como separador el espacio y empezar a contar las palabras.
Para el ordenamiento usariamos la burbuja sin dudas.

Dejame que vea unas cosas y te ayudo un poco mas con el asunto del array con las palabras distintas.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
  #6  
Antiguo 22-05-2011
velapuerca88 velapuerca88 is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 12
Poder: 0
velapuerca88 Va por buen camino
gracias! muy buenas las funciones.
Ahora, antes que nada tendria que pasar el contenido del archivo de texto a una string, como se podria hacer?. gracias
Responder Con Cita
  #7  
Antiguo 22-05-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por velapuerca88 Ver Mensaje
[...] antes que nada tendria que pasar el contenido del archivo de texto a una string, como se podria hacer?
Puedes crear una instancia de objeto TStringList, cargar en ese objeto el archivo de texto usando el método LoadFromFile y luego pasar ese contenido a una variable String con la propiedad Text:

Código Delphi [-]
S := ObjetoStringList.Text;

Saludos.
Responder Con Cita
  #8  
Antiguo 22-05-2011
velapuerca88 velapuerca88 is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 12
Poder: 0
velapuerca88 Va por buen camino
HOLA, gracias por la respuesta, no se bien lo que quisiste decir arriba, pero entiendo que es algo de programacion orientada a objetos, todavia no nos enseñan lo que son los objetos hasta el cuatrimestre que viene, por lo que tendria que hacerlo de alguna manera sin usar objetos.saludos!
Responder Con Cita
  #9  
Antiguo 23-05-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Entiendo. Siendo así, podrás hacerlo con las funciones
AssignFile, Reset, ReadLn y EOF. En el foro encontrarás varios temas relacionados con esas funciones, incluyendo ejemplos como el que Caral expone en este hilo: http://www.clubdelphi.com/foros/showthread.php?t=69299

Espero te sirva. Si puedes leer en inglés, te recomiendo consultar la ayuda de Delphi referente a cada una de esas funciones. La información y ejemplos que ahí vienen son oro puro.

No dudes en seguir preguntando, andaremos cerca.

Al González.
Responder Con Cita
  #10  
Antiguo 23-05-2011
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Post

Cita:
Empezado por velapuerca88 Ver Mensaje
HOLA, gracias por la respuesta, no se bien lo que quisiste decir arriba, pero entiendo que es algo de programacion orientada a objetos, todavia no nos enseñan lo que son los objetos hasta el cuatrimestre que viene, por lo que tendria que hacerlo de alguna manera sin usar objetos.saludos!
Bueno, si por las dudas te interesa saber un poco mas del objeto StringList, lo puedes encontrar aquí. Igualmente con lo que te mandó Al seguramente podrás resolverlo, claro que será un poco mas costoso. Supongo que eso es bueno, lo entrena a uno para lo que viene.

Saludos.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
  #11  
Antiguo 23-05-2011
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 velapuerca88.

Supongo que te están restringiendo al uso de arreglos. Te paso una opción similar que no requiere uso de objetos:
Código Delphi [-]
...
type
  TDynArrayStr = array of string;
...
procedure LeerDeArchivo(const NomArch: string; var Lista: TDynArrayStr);
var
  Txt: TextFile;
  NroL: integer;
begin
  AssignFile(Txt, NomArch);
  Reset(Txt);
  try
    NroL:= 0;
    while not Eof(Txt) do
    begin
      SetLength(Lista, Length(Lista)+1);
      Readln(Txt,Lista[NroL]);
      Inc(NroL);
    end;
  finally
    CloseFile(Txt);
  end;
end;
...
Utilizo un arreglo dinámico en lugar de uno estático, por que no se puede conocer de antemano la cantidad de líneas que posee el archivo.

Ejemplo de llamada a la función:
Código Delphi [-]
...
var
  Lineas: TDynArrayStr;
begin
   LeerDeArchivo('TU_ARCHIVO.TXT', Lineas);
   ...
end;


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 23-05-2011 a las 07:21:21.
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
Ayuda con arreglos !! Siegfried Varios 2 27-09-2006 20:43:53
AYUDA con arreglos pecosita C++ Builder 1 18-09-2006 22:00:50
Manejo de Multi-Listas (listas de listas) DelphiRat OOP 4 03-07-2006 19:42:58
Ayuda Listas zezeno OOP 1 25-04-2006 21:07:02
Pila con Listas enlazadas (problema con apuntadores) desve Varios 2 30-03-2005 10:07:47


La franja horaria es GMT +2. Ahora son las 01:04:09.


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