lunes, 1 de diciembre de 2008

Universidad Nacional Experimental de Guayana
Vice Rectorado Académico
Departamento Ciencia y Tecnología
Ingieneria en Informática
Sección: 4



Profesor:
Ing. William Mercado

Integrantes:
-Aguanes Damauris C.I.20.702.183
-Maldonado Nelson C.I.21.247.477
-Peñaloza Rosbelis C.I.20.808.708
-Salas Marines C.I.21.196.748
-Salazar Diego C.I.20.202.387
-Juan Carlos Marin

Ciudad Guayana, 02 de Diciembre del 2008
INDICE

Contenido
-Introducción
-Marco Teórico
1-Diagrama de Flujo
1.1-Definición
1.2-Importancia
2-Símbolos de la solución de problemas
3-Problemas de Diagrama de Flujo
3.1-Primer problema
3.2-Segundo problema
4-Método de ordenación por burbuja
4.1-Definición
4.2-Ventajas
4.3-Desventajas
5-Método de búsqueda secuencial
5.1-Definición
5.2-Ventajas
5.3-Desventajas
6-Método de búsqueda binaria
6.1-Definición
6.2-Ventajas
6.3-Desventajas
7-Diferencias entre método de Búsqueda secuencial y binaria
-Recomendaciones
-Conclusiones
-Referencias Bibliograficas

INTRODUCCIÓN

Los diagramas de flujo son la representación grafica del flujo o secuencia de rutinas simples. Tiene la ventaja de indicar la secuencia del proceso en cuestión, las unidades involucradas y los responsables de su ejecución; en pocas palabras es la representación simbólica o pictórica de un procedimiento administrativo.
Son de gran importancia ya que ayudan a designar cualquier representación grafica de un procedimiento o parte de este; el diagrama de flujo como su nombre lo dice representa el flujo de información de un procedimiento.
A lo cual a todo esto se puede decir que los diagramas de flujo se usan normalmente para seguir la secuencia lógica de las acciones en el diseño de computadoras.
Existen diversos métodos que se pueden llevar a cabo en procedimientos de los arreglos (vector), ya sean en forma de ordenación, como de búsqueda.
En cuanto al método de ordenación se puede decir que es uno de los procedimientos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganización un conjunto dado de objetos en una secuencia determinada.
Entonces, también se puede decir que el método de ordenación es el más conocido y popular entre estudiantes y aprendices de programación, es el método burbuja, por su facilidad de comprensión y programación.
Mientras que el método de búsqueda es una operación que tiene por objeto la localización de un elemento dentro de la estructura de datos.
Encontramos dos técnicas que utiliza este método de acceso, para encontrar elementos dentro de un array: búsqueda secuencial y búsqueda binaria.
La búsqueda secuencial es la técnica más simple para buscar un elemento en un arreglo. Consiste en recorrer el arreglo elemento a elemento e ir comparando con el valor buscado (Clave). El resultado de la búsqueda es un solo valor, y será la posición del elemento buscado o cero.
La búsqueda binaria es el método más eficiente para encontrar elementos en un arreglo ordenado. El proceso comienza comparando el elemento central del arreglo con el valor buscado.
DESARROLLO

1. Definición y explicación de los diagramas de flujo.
Son de gran importancia ya que ayudan a designar cualquier representación grafica de un procedimiento o parte de este; el diagrama de flujo como su nombre lo indica representa el flujo de información de un procedimiento.
En la actualidad los diagramas de flujo son considerados en la mayoría de las empresas o departamentos de sistemas como uno de los principales instrumentos en la realización de cualquier método o sistema.
Son de gran relevancia los diagramas de flujo en toda organización departamento, ya que este permite la visualización de las actividades innecesarias y verifica si la distribución del trabajo esta equilibrada, es decir, bien distribuida en las personas, sin sobrecargo para algunas mientras otros trabajan con mucha holgura.
Los diagramas de flujo son importantes para el diseñador por que le ayudan en la definición, formulación, análisis y solución del problema. El diagrama de flujo ayuda al análisis a comprender el sistema de información de acuerdo con las operaciones de procedimientos incluidos, le ayudara analizar esas etapas, con el fin tanto de mejorarlas como de incrementar la existencia de sistemas de información para la administración.
El Diagrama de flujo es como un diagrama secuencial empleado en muchos campos para mostrar los procedimientos detallados que se deben seguir al realizar una tarea, como un proceso de fabricación. También se utilizan en la resolución de problemas, como por ejemplo en algoritmos. Los diagramas de flujo se usan normalmente para seguir la secuencia lógica de las acciones en el diseño de programas de computadoras.

2. Explicación de cada uno de los símbolos que se usan en la solución de problemas con diagramas de flujo.

Ø Símbolos Terminales: Representados con un ovalo, indican el inicio y el fin de una secuencia de pasos.

Ø Símbolo de Entrada: Es un paralelogramo que representa la entrada de datos que se van a leer o escribir.

Ø Símbolo de proceso: Es un rectángulo que se utiliza para representar una acción que se debe ejecutar en una instrucción.

Ø Símbolo de decisión: Es un rombo que representa una toma de decisión entre dos alternativas; también se utiliza para comparar valores.

Ø Símbolo de Flujo: Son flechas que indican el camino que se debe seguir, de acuerdo con una decisión.

Ø Símbolo conector: Es un círculo que se usa para las conexiones entre las partes de un diagrama de flujo.
Ø Símbolo de salida: Especifica la salida de la información.



Ø Símbolo de lectura de datos.


3. Resuelva 02 problemas de los vistos en clases con Diagramas de flujo

Primer Problema

-Enunciado del problema: Escriba un algoritmo que dado un número calcule su raíz cuadrada.
-Análisis del problema.
v Entrada: Un numero “a”.
v Proceso: Calcular la raíz cuadrada √a=”x”.
v Salida: Resultado √a=”x”.
v Valoración: No admite número negativo.
No admite numero cero.
-Diagrama de flujo. Segundo Problema

-Enunciado del problema: Escriba un algoritmo que dada la edad de una persona muestre en pantalla su equivalencia en meses.
-Análisis del problema.
v Entrada: a y b.
v Proceso: Multiplicación y adición
v Salida: Resultado de multiplicación, adición= (ax12)+b.
v Valoración: No admite números negativos.
Esperanza de vida.
-Diagrama de flujo:



4. Definición y explicación del método de ordenación por burbuja. Ventajas y desventajas.
El ordenamiento es uno de los procesos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. La colocación en orden de una lista de valores se le llama ordenación. Por ejemplo, se podría disponer de una lista de valores numéricos en orden ascendente o descendente, o bien una lista de nombres en orden alfabético.
El método de ordenación por burbuja es el mas conocido y popular entre estudiantes y aprendices de programación.
Este método se basa en la ordenación por cambios de elementos, ya que se van comparando de dos en dos los elementos de la tabla (vector). Si nosotros deseamos ordenar dicha tabla de menor a mayor (ascendente) al realizar la comparación entre dos elementos se produce el intercambio en el momento en que el primer elemento es mayor que el segundo. De esta forma los elementos más grandes pasan a estar en el último lugar de la tabla. El elemento sube por la tabla al igual que una burbuja en un recipiente, de ahí proviene su nombre.
La técnica consiste en hacer varias pasadas a través de la tabla, en cada pasada se comparan parejas sucesivas de elementos. Si una pareja esta en orden creciente (o los valores son idénticos), se dejan los valores como están. Si una pareja esta en orden decreciente, sus valores se intercambian en la tabla.
Supongamos que tenemos una tabla de un total de 50 elementos y que desde un principio esta ordenada, pero eso nosotros no lo sabemos, por lo que sometemos la tabla a una ordenación. Como te puedes imaginar el programa esta empleando un tiempo que nos puede ser útil, para realizar cualquier otro calculo dentro de la aplicación. Piensa que con una tabla de 50 elementos el programa pasara por el bucle principal 49 veces. Podemos ver que es un método un poco rudimentario y un poco largo según el caso.
Para ser más específicos aquí esta la tabla:

50 15 56 14 35 1 12 9
A (1) A (2) A (3) A (4) A (5) A (6) A (7) A (8)

Los pasos a dar son:

1.- Comparar A (1) y A (2); si están en orden, se mantienen como están; en caso contrario se intercambian entre sí.
2.- A continuación se comparan los elementos 2 y 3; de nuevo se intercambian si es necesario.
3.- El proceso continúa hasta que cada elemento del vector ha sido comparado con sus elementos adyacentes y se han realizado los intercambios necesarios.

El método expresado e pseudocódigo en el primer diseño es:

Desde I=I hasta 7 hacer
Si elemento (I)> elemento (I+I)
Entonces intercambiar elementos (I, I+I)
Fin _ si
Fin _ desde

La acción intercambiar entre sí los valores de los elementos A (I), A (I+I), es una acción compuesta que contiene las siguientes acciones, considerando una variable auxiliar AUX.
AUX ← A (I)
A (I) ← A (I+I)
A (I+I) ←AUX

Este método dentro de lo sencillo, es que nos permite una mejora. Esta mejora consiste en terminar el bucle principal en el momento en el que detectemos que en una pasada, por todo lo largo de la tabla no ha habido ningún cambio, esto quiere decir que la tabla esta completamente ordenada.


Ventajas del método de ordenación por burbuja:
· Es bastante sencillo y fácil de programar y comprender
· En un código reducido se realiza el ordenamiento
· Eficaz
· Es el mas extendido

Desventajas del método de ordenación por burbuja:
· Consume bastante tiempo de computadora
· Requiere muchas lecturas/escrituras en memoria
· No es muy eficiente para ordenar listas grandes, por ello normalmente se aprende su técnica pero no se utiliza

5. Definición y explicación de los métodos de búsqueda secuencial y binaria. Diferencias, ventajas y desventajas entre ambos.
La búsqueda es una operación que tiene por objeto la localización de un elemento dentro de la estructura de datos. A menudo un programador estará trabajando con grandes cantidades de datos almacenados en arreglos y pudiera resultar necesario determinar si un arreglo contiene un valor que coincide con algún valor clave o buscado.
Siendo el array de una dimensión o lista una estructura de acceso directo y a su vez de acceso secuencial, encontramos dos técnicas que utilizan estos dos métodos de acceso, para encontrar elementos dentro de un array: Búsqueda secuencial y búsqueda binaria
Búsqueda secuencial:
La búsqueda secuencial, también se le conoce como búsqueda lineal.
Supongamos una colección de registros organizados como una lista lineal. El algoritmo básico de búsqueda secuencial consiste en empezar al inicio de la lista e ir a través de cada registro hasta encontrar la clave indicada (k) o hasta el final de la lista.






Este método consiste en recorrer el arreglo o vector elemento a elemento e ir comparando con el valor buscado (clave). Se empieza con la primera casilla del vector y se observa una casilla tras otra hasta que se encuentre el elemento buscado o se han visto todas las casillas. El resultado de la búsqueda es un solo valor, y será la posición del elemento buscado o cero. Dado que el vector o arreglo no esta en ningún orden en particular, existe la misma probabilidad de que el valor se encuentra ya se en el primer elemento, como en el ultimo. Por lo tanto, en promedio, el programa tendrá que comparar el valor buscado con la mitad de los elementos del vector.
El método de búsqueda lineal funciona bien con arreglos pequeños o para arreglos no ordenados.

Ventaja:
§ Es un método sumamente simple que resulta útil cuando se tiene un conjunto de datos pequeños (Hasta aproximadamente 500 elementos)
§ Es fácil adaptar la búsqueda secuencial para que utilice una lista enlazada ordenada, lo que hace la búsqueda más eficaz.
§ Si los datos buscados no están en orden es el único método que puede emplearse para hacer dichas búsquedas.

Desventaja:
§ Este método tiende hacer muy lento.
§ Si los valores de la clave no son únicos, para encontrar todos los elementos con una clave particular, se requiere buscar en todo el arreglo, lo que hace el proceso muy largo.
Búsqueda Binaria:
La búsqueda binaria es el método, donde si el arreglo o vector esta bien ordenado, se reduce sucesivamente la operación eliminando repetidas veces la mitad de la lista restante.
El proceso comienza comparando el elemento central del arreglo con el elemento buscado. Si ambos coinciden finaliza la búsqueda. Si no ocurre así, el elemento buscado será mayor o menor en sentido estricto que el elemento central del arreglo. Si el elemento buscado es mayor se procede a hacer búsqueda binaria en el subarray superior, si el elemento buscado es menor que el contenido de la casilla central, se debe cambiar el segmento a considerar al segmento que está a la izquierda de tal sitio central.
Este método se puede aplicar tanto a datos en listas lineales como en árboles binarios de búsqueda. Los pre – requisitos para la búsqueda binaria son:
v La lista debe estar ordenada, en un orden especifico de acuerdo al valor de la clave.
v Debe conocerse el número de elementos.
Si el conjunto de elementos es grande, el tiempo de búsqueda se puede reducir utilizando el siguiente algoritmo de tipo divide y vencerás:
1. Se divide el elemento en dos partes.
2. Se determina la parte que debe contener la clave buscada.
3. Se repite el proceso en esa parte.
Una forma razonable de dividir el conjunto de elementos es mantener los elementos ordenados y después utilizar los índices del arreglo ordenado para determinar la parte del arreglo sobre la que se va a trabajar.

Ventajas:
v Se puede aplicar tanto a datos en listas lineales como en árboles binarios de búsqueda.
v Es el método más eficiente para encontrar elementos en un arreglo ordenado.

Desventajas:
Este método funciona solamente con arreglos ordenados, por lo cual si nos encontramos con arreglos que no están en orden, este método, no nos ayudaría en nada.

Diferencias entre ambos métodos:
En el caso del método de búsqueda binaria, los arreglos deben estar únicamente ordenados, como se planteo anteriormente, por su parte el método de búsqueda secuencial o lineal, puede emplearse tanto en arreglos pequeños, como en aquellos que no están ordenados.
En segundo orden, podemos ver que el método de búsqueda binaria, es el método más eficiente para encontrar elementos en un arreglo ordenado, lo contrario sucede con el método de búsqueda secuencial ya que este es muy lento, pero si los datos no están en orden es el único método que puede emplearse para hacer las búsquedas.

RECOMENDACIONES

1. Los diagramas de flujo le ayudan en la definición, formulación, análisis, y solución del problema.
2. El diagrama de flujo le ayudara con el análisis a comprender el sistema de información de acuerdo con las operaciones de procedimientos, ayudara a analizar esas etapas con el fin tanto de mejorarlas, como de incrementar la existencia de sistemas de información para la administración.
3. En el método de ordenación por burbuja, si al terminar el bucle principal en el momento que se detecte que en una pasada por todo lo largo de la tabla no ha habido ningún cambio esto le indicara que la tabla está completamente ordenada.
4. En el método de búsqueda binaria, si el conjunto de elementos es grande, se recomienda utilizar el siguiente algoritmo de tipo divide y vencerás, para reducir su tiempo de búsqueda:
~Se divide el elemento en 2 partes.
~Se determina la parte que debe contener la clave buscada.
~Se repite el proceso en esa parte.
5. Para que el método de búsqueda secuencial resulte sumamente útil se recomienda hacer lo siguiente:
~Almacenar todo los elementos en un arreglo o lista.
~Insertar cada elemento al final del arreglo o lita
~Recorrer o iterar sobre el arreglo o lista hasta conseguir el elemento requerido.

CONCLUSION

En la actualidad los diagramas de flujo son muy importantes ya que mediante ellos se permite la representación grafica de un algoritmo, mediante un conjunto de símbolos. Cada diagrama esta representado por sus símbolos respectivamente; lo cual es muy utilizado en la resolución de problemas.
Existen diferentes métodos los cuales entre ellos tenemos:

El método de ordenación por burbuja se puede decir que es acomodar el vector moviendo el mayor hasta la última casilla comenzando desde la casilla cero del vector hasta haber acomodado el número más grande el la última posición, una vez acomodado el más grande, prosigue a encontrar y acomodar el siguiente más grande comparando de nuevo los números desde el inicio del vector, y así sigue hasta ordenar todo los elementos el arreglo. Este algoritmo es muy deficiente ya que al ir comparando las casillas para buscar el siguiente más grande, éste vuelve a comparar las ya ordenadas. A pesar de ser el algoritmo de ordenamiento más deficiente que hay, éste es el más usado en todos los lenguajes de programación.

El método de búsqueda secuencial se usa para buscar un elemento de un vector, es explorar secuencialmente el vector, es decir; recorrer el vector desde el primer elemento hasta el último. Si se encuentra el elemento buscado se debe visualizar un mensaje similar a “Fin de Búsqueda” o “Elemento Encontrado” y otro que diga “Posición” en caso contrario visualizar un mensaje similar a “Elemento no existe en la lista”.Este tipo de búsqueda compara cada elemento del vector con el valor a encontrar hasta que se consiga o se termine de leer el vector completo.

El método de búsqueda binaria se basa en la división sucesiva del espacio ocupado por el vector en sucesivas mitades, hasta encontrar el elemento buscado.
Todos estos métodos tienen sus características específicas a la hora de aplicarlos los cuales se diferencian uno de otros.

BIBLIOGRAFIA

Wilson T. Price
Merritt Collage
Oakland, California
(1985). Informática.
(3º edición). Interamericana S.A. de C.V.: México.

Aguilar, L. Metodología de la Programación.
(1º edición en español): México

Paginas Web: http://www.google.com/
http://www.altavista.com/