viernes, 19 de febrero de 2010

Proyecto I:

  • Buscar un número telefónico en una guía telefónica
                  (Imágen tomada de http://farm1.static.flickr.com)
Algoritmo: 
En los siguientes párrafos explicare desde mi punto de vista nuestro método de solución para el problema.
  1. Primero,debe saberse el nombre completo de la persona cuyo teléfono se desea encontrar,este puede constar de 2 apellidos y 2 nombres o, 2 apellidos y un nombre.
  2. Ahora considerando que en las guias telefónicas los nombres están por apellido se comenzara a buscar desde la primera mitad si su primer apellido esta entre la A-M y desde la segunda mitad (aproximadamente) si su apellido esta entre la N-Z.
  3. Ya teniendo esto se procederá a buscar la sección de la primera letra de el primer apellido de la persona que buscamos.
  4. Después se buscara en esa sección ,por orden alfabético,la segunda,tercera,cuarta,quinta...n-ésima letra de el primer apellido de la persona,regresando a la letra anterior si se rebasa la letra buscada. 
  5. Ya encontrado el primer apellido, se procede a buscar el segundo,buscando en orden alfabético,la primera,segunda,tercera...n-ésima letra hasta encontrar el segundo apellido.
  6. Se repite el mismo procedimiento con el primer nombre.
  7. Si la persona cuyo teléfono se busca tiene un segundo nombre se repite el procedimiento para buscarlo,si no es así se termina la búsqueda del nombre y entonces se encontró el nombre, y por lo tanto,el teléfono de esta persona. 
Diagrama de flujo

El siguiente es un diagrama de flujo acerca del algoritmo que realizamos en http://www.gliffy.com/.
 
También se puede ver aquí:
http://www.gliffy.com/pubdoc/1996727/M.jpg

Explicación:
El diagrama de flujo al recibir como entrada el primer apellido,segundo apellido,primer nombre,y si lo tiene,el segundo nombre de una persona,realiza los pasos mencionados en el algoritmo para buscar por orden alfabético el nombre completo de la persona y por consiguiente,encontrar el teléfono de esta persona.

Ejemplos de su ejecución
Ejemplo 1:Como buscar el teléfono de Jesús Garza López.
Paso 1: Con Garza como su primer apellido se comienza a buscar desde la primera mitad,que es de A-M.
Paso 2: Al encontrar la sección de la letra "g",se prosigue a buscar la siguiente letra,que es "a",por orden alfabético(en este caso es la primera)si al buscarla se llega a otra letra,entonces se debe regresar hasta encontrar la letra "a".
Paso 3: Repetir este proceso hasta encontrar todo el primer apellido.
Paso 4: Teniendo el primer apellido, se procede a buscar el segundo, buscando por orden alfabético (dentro del rango de las personas con primer apellido Garza), la letra "l" de López.
Paso 5: De nuevo se busca la siguiente letra,que es la "o",alfabéticamente,volviendo si se llega a una letra después de esta.
Paso 6: Se repite el proceso hasta encontrar las letras restantes.
Paso 7: Entonces se busca el primer nombre de la persona,en este caso Jesús,buscando alfabéticamente (dentro del rango de las personas con primer apellido Garza y segundo apellido López), la letra "j".
Paso 8: Se busca en orden alfabético la segunda letra del primer nombre,que es la "e",igualmente regresando si se llega a una letra después de esta.
Paso 9: Se repite hasta encontrar todo el primer nombre.
Paso 10: En este caso la persona no tiene segundo nombre así que ha terminado la búsqueda de la persona,y como es en una guía telefónica,se encuentra el número de teléfono de dicha persona.

Ejemplo 2: Búsqueda del teléfono de Mónica Alejandra Orozco Ruíz
Paso 1: Al iniciar, como su primer apellido es Orozco se comienza a buscar desde la segunda mitad(aproximando),ya que la "o" está entre N-Z.
Paso 2: Cuando se encuentre la sección con la letra "o",se se continua buscando la siguiente letra,que es "r",por orden alfabético,si al buscarla se llega a una letra después de esta,entonces se debe regresar hasta encontrar la "r".
Paso 3: Repetir este proceso hasta encontrar todo el primer apellido.
Paso 4: Ya con el primer apellido, lo que sigue es buscar el segundo, buscando por orden alfabético,(sin salir de las personas con primer apellido Orozco), la letra "r" de Ruíz.
Paso 5: A continuación se busca alfabéticamente la siguiente letra,que es la "u".
Paso 6: Se repite el proceso hasta encontrar las letras restantes del segundo apellido.
Paso 7: Al terminar esto,se busca el primer nombre de la persona,en este caso Mónica,buscando alfabéticamente,en las personas con primer apellido Orozco,y segundo apellido Ruíz, la letra "m".
Paso 8: Se busca en orden alfabético la segunda letra del primer nombre,que es la "o".
Paso 9: Se repite hasta encontrar todo el primer nombre.
Paso 10: Como esta persona tiene segundo nombre,entonces se procede a buscar éste, buscando en el rango de las personas con primer apellido Orozco,segundo apellido Ruíz,y primer nombre Mónica, el segundo nombre de Alejandra.

Paso 11: Ya con el nombre completo ubicado entonces se puede encontrar el teléfono de la persona.


Links útiles:

1 comentario: