![]() |
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! |
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. :) |
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. |
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]; |
Cita:
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. |
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 |
Cita:
Saludos. :) |
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!
|
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. :) |
Cita:
Saludos. |
Hola velapuerca88.
Supongo que te están restringiendo al uso de arreglos. Te paso una opción similar que no requiere uso de objetos: 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:
Saludos. |
La franja horaria es GMT +2. Ahora son las 04:23:13. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi