• Sábado 14 de Diciembre de 2024, 18:33

Autor Tema:  necesito la idea principal del algoritmo a realizar  (Leído 2041 veces)

pacorubio77

  • Miembro MUY activo
  • ***
  • Mensajes: 207
    • Ver Perfil
necesito la idea principal del algoritmo a realizar
« en: Jueves 9 de Abril de 2009, 21:34 »
0
Hola,espero saber explicarme y que alguien me ayude con el algoritmo a realizar.
Tengo una estructura Tcancion que tiene los siguiente campos

struct Tcancion{
     string autor;
     string titulo;
    string album;
    int valoracion;
    string url;
    string imagen;
};

Tendre fichero que en cada linea tendré dichos datos de la cancion, y en ese fichero habrá canciones.
Vale,pero habrá una opcion que se llame Buscar que nos pedirá la busqueda desde teclado y por teclado puede meter lo siguiente:

autor="Juan" y titulo="Hola a todos" o autor="Felipe"    ->esto es lo que se meterá por teclado
Es decir buscará la cancion  cuyo autor sea Juan y titulo Hola a todos   O    buscará la cancion cuyo autor sea Felipe, estoy buscando la idea principal de realizar el algoritmo.Pero no tengo una idea clara.
Repito que quiero que me ayudeis en la idea, NO PIDO CODIGO ....sino la idea principal a seguir.

Muchas Gracias.
Espero Ayuda.

tyrell

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: necesito la idea principal del algoritmo a realizar
« Respuesta #1 en: Viernes 10 de Abril de 2009, 21:13 »
0
Pues pides mas o menos una base de datos, quizas una forma sencilla de implementar sea usando indices.
Tienes el fichero de datos desordenado, luego creas indices ordenados por un campo (lo que hace que la busqueda sea mas sencilla) y la linea (registro) del fichero
de datos principal que le corresponde.
Ej
Fichero datos
Felipe|Hola a todos|...
Alberto|Adios a todos|...
Carlos|nada mas|....

Indice de autor
Alberto|2
Carlos|3
Felipe|1

De esta forma puedes ir anidando la consulta.

gonza_fs

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: necesito la idea principal del algoritmo a realizar
« Respuesta #2 en: Sábado 11 de Abril de 2009, 03:11 »
0
Que tal. Lo de usar indices es la idea mas eficiente, creo yo tambien. No se si sabes algo sobre estructuras de bases de datos, cosas como arboles b y b+, tablas de hash, gridfiles, etc, entre los cuales estan incluidos los indices, que son los mas basicos para buscar registros en un archivo. Pero solo te hablo de esto si conoces estas estrcucturas, sino simplemente haz caso a los indices.
Lo que se suele hacer a veces es utilizar una clase para buscar. Por ejemplo, esto se hace en java para ordenar registros por varios campos. Podrias usarlo tambien para buscar.
La idea basica seria crear una clase busqueda o buscar con los parametros necesarios para buscar y un parametro de "tipo busqueda" como sigue:

class busqueda{
string campo         //campo de busqueda por ejemplo, el titulo, por decir alguno.
....                       //otros parametros que quiza se requieran dentro de la clase.
busqueda siguiente  //este contendra el siguiente campo de busqueda, si es que el titulo no esta especificado.

Bueno, no me extiendo mas porque quiza no te interese esta idea, sin embargo es algo tambien eficiente y con costo muy bajo. Cualquier cosa me preguntas y te digo mas detalles si esto te interesa. Suerte.

pacorubio77

  • Miembro MUY activo
  • ***
  • Mensajes: 207
    • Ver Perfil
Re: necesito la idea principal del algoritmo a realizar
« Respuesta #3 en: Lunes 13 de Abril de 2009, 11:46 »
0
No es tan complicado, no es nada de base de datos...yo tengo tanto fichero de texto como fichero binario....y el criterio de busqueda lo tengo que meter por teclado...al tener fichero de texto y fichero binario...no es necesario nada de base de datos..ya que en dichos ficheros tengo los datos...es decir yo leo de un fichero y lo almaceno en un NODO,,,para luego para cada cancion que vaya leyendo formar una lista de punteros..teniendo en cada nodo una cancion...

Pero mi dificultad está en la filtracion del criterio de busqueda...

Espero haberme explicado bien...
Un saludo,espero respuesta.

Gracias.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: necesito la idea principal del algoritmo a realizar
« Respuesta #4 en: Lunes 13 de Abril de 2009, 12:33 »
0
Cita de: "pacorubio77"
no es nada de base de datos
Pues sí que lo es. Es decir, no es nada de bases de datos avanzadas como MySQL, pero tú pretendes crear una base de datos sencillota en un fichero.

Cita de: "pacorubio77"
Pero mi dificultad está en la filtracion del criterio de busqueda...
Lees las estructuras y comparas los campos con los pedidos. No veo dónde radica la dificultad...

pacorubio77

  • Miembro MUY activo
  • ***
  • Mensajes: 207
    • Ver Perfil
Re: necesito la idea principal del algoritmo a realizar
« Respuesta #5 en: Lunes 13 de Abril de 2009, 12:47 »
0
Es dificil entender el problema..de todas formas muchas gracias por la ayuda.
Muchas gracias.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: necesito la idea principal del algoritmo a realizar
« Respuesta #6 en: Lunes 13 de Abril de 2009, 13:00 »
0
A lo mejor si publicas algo de cómo lo tienes hecho hasta ahora sería más sencillo el explicártelo.

pacorubio77

  • Miembro MUY activo
  • ***
  • Mensajes: 207
    • Ver Perfil
Re: necesito la idea principal del algoritmo a realizar
« Respuesta #7 en: Lunes 13 de Abril de 2009, 13:08 »
0
es que la cuestion es que estoy ahora comtemplando como hacer dicho algoritmo..eso es una parte de una practica..y una es buscar segun un criterio de busqueda, y todas las canciones las tengo en una lista,compuesta por nodos,cada nodo es una cancion.

mi problema es que yo meto para buscar

autor="julian" y album="entre dos aguilas" o titulo="albacete" ,entonces tiene que sacarme las canciones que tengan esos campos, es decir me tendrá que sacar las canciones que tenga autor julian y album entre dos aguilas o las que tengas de titulo albacete...

es decir tengo que separa las Y's de las O's?  eso no se como comtemplarlo.....

No se si ahora me he explicado bien...

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: necesito la idea principal del algoritmo a realizar
« Respuesta #8 en: Lunes 13 de Abril de 2009, 14:13 »
0
Vale, es decir que se deben contemplar expresiones regulares sencillas en las búsquedas. Aunque en tu ejemplo no queda claro si pretendes (autor="julian" && album="entre dos aguilas") || titulo="albacete" o bien autor="julian" && (album="entre dos aguilas" || titulo="albacete"), que no es lo mismo. Esto también lo debes contemplar.

Te aconsejo que comiences haciendo el algoritmo sólo para la Y y después ampliarlo para que acepte O.