[ Foro de Pascal ]

Busqueda binaria con una función

12-Dec-2013 15:57
matias arroyo
4 Respuestas

Hola buen día

Mi duda es la siguiente:

Tengo 2 archivos con datos de un negocio, uno es sobre los juguetes, el otro sobre los fabricantes.

En el ejercicio se pide hacer un menu, en el que se produzcan las ventas y las compras.

En las compras hay que hacer una busqueda binaria de un codigo de fabricante en el archivo de fabricantes, y lo pide con una función. Pero lo que no me doy cuenta es como hacer esa busqueda ya que ese codigo puede estar o no estar y la funcion solo devuelve un resultado a traves de su nombre.

Como sería un ejemplo de busqueda binaria con funcion en este caso?


Soy nuevo en este foro, espero puedan responderme. Gracias


12-Dec-2013 23:24
Nacho Cabanes (+30)

Bienvenido!

Vamos por partes... ¿sabes lo que es una búsqueda binaria?  Sabrías hacerla sobre un array?


13-Dec-2013 18:23
matias arroyo

Si, se lo que es una busqueda binaria y se hacerla sobre un array.


14-Dec-2013 22:10
Nacho Cabanes (+30)

Si conoces la búsqueda binaria, ya sabes los requisitos que tendría que cumplir tu fichero de datos:

- Debe ser un fichero que permita acceso directo: todos los datos deben ser del mismo tipo (típicamente un "record" o un "string").

- Los datos deben estar ordenados.

Con esas consideraciones, las ideas son las mismas que trabajando sobre un array, con la diferencia de que no accedes a cada elemento con "[i]" sino con un "seek" seguido de un "read". Pero, al igual que en la búsqueda binaria sobre un array, irás buscando cada vez en un segmento de mitad de tamaño que el anterior, hasta encontrar el código que buscas (y en ese caso sí lo puedes devolver) o pasar de largo (y en ese caso no existía, luego debes devolver algo que indique que no estaba). Una vez que sabes en qué posición está tu dato (si aparece), ya has leído la ficha, luego sabes el nombre y puedes devolverlo.

Las ideas sobre ficheros "con tipo" las tienes aquí:

http://www.aprendeaprogramar.com/mod/resource/view.php?id=224

Pero no te puedo dar muchos más detalles sin ver cómo es el esqueleto de tu programa (especialmente los tipos de datos).


18-Dec-2013 14:07
matias arroyo

Gracias!. Me sirvió de mucho






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)