Defina y explique la importancia de los diagramas de flujo
A la hora de descubrir un algoritmo, utilizar un lenguaje basados en símbolo gráficos proporciona un esquema de fácil compresión. Este es el caso de los diagramas de flujo u ordinogramas, en los que unos símbolos estandarizados representan las operaciones elementales que figuran el algoritmo y unas flechas que lo interconectan marcan cual es el orden de ejecución que se debe seguir. Es una de las técnicas de representación de algoritmos más antigua y a la vez más utilizada; aunque su empleo ha disminuido considerablemente sobre todo desde la aparición de los lenguajes estructurados. Un diagrama de flujo u organigrama es una representación diagramática que ilustra la secuencia de las operaciones que se realizarán para conseguir la solución de un problema. Estos diagramas de flujo desempeñan un papel vital en la programación de un problema y facilitan la comprensión de problemas complicados y sobre todo muy largos. Una vez que se dibuja el diagrama de flujo, llega a ser fácil escribir el programa en cualquier lenguaje de programación.
Su importancia yace como herramienta valiosa para la mejora de los procesos, permiten detectar las actividades que agregan valor y aquéllas que son redundantes o innecesarias.
También son de gran utilidad durante el desarrollo de la documentación de los Sistemas de gestión, pues proveen una descripción de los procesos y un detalle de las operaciones mucho más amigable que los procedimientos e instructivos basados en texto.
Contribuyen a resolver uno de los principales problemas, que es la resistencia del personal a emplear los documentos como referentes para el desempeño de las tareas. Una copia ampliada del diagrama de flujo al alcance de los operadores del proceso facilita la consulta y promueve la creatividad.
Explique cada uno de los símbolos que se usan en la solución de problemas con diagramas de flujo
Símbolos principales:
Símbolos secundarios:
Resuelva 05 problemas con Diagramas de flujos
1. Determinar la media de una lista indefinida de números positivos, determinados con un número negativo.
2. Realizar un Diagrama de flujo donde calcule el área de un cilindro.
3. Calcular las raíces cuadradas de un polinomio de 2do grado.
4. Realizar un Diagrama de flujo donde calcule el área y el perímetro de un triangulo rectángulo dada la base y la altura.
5. Realizar un Diagrama de Flujo que permita el descuento y el precio final de un artículo, conociendo que es el 20%.
Defina y explique de forma clara y sencilla, el método de ordenación por burbuja. Cite sus ventajas y desventajas
El método de ordenación por burbuja es el más conocido y popular entre estudiantes y aprendices de programación, por su facilidad de comprensión y programación; por el contrario, es el menos eficiente y por ello, normalmente, se aprende su técnica pero no suele utilizarse.
La técnica utilizada se denomina ordenación por burbuja u ordenación por hundimiento debido a que los valores más pequeños «burbujean» gradualmente (suben) hacia la cima o parte superior del array de modo similar a como suben las burbujas en el agua, mientras que los valores mayores se hunden en la parte inferior del array. La técnica consiste en hacer varias pasadas a través del array. En cada pasada, se comparan parejas sucesivas de elementos. Si una pareja está en orden creciente (o los valores son idénticos), se dejan los valores como están. Si una pareja está en orden decreciente, sus valores se intercambian en el array.
En el caso de un array (lista) con n elementos, la ordenación por burbuja requiere hasta n-1 pasadas.
Por cada pasada se comparan elementos adyacentes y se intercambian sus valores cuando el primer elemento es mayor que el segundo elemento. Al final de cada pasada, el elemento mayor ha «burbujeado» hasta la cima de la sub lista actual. Por ejemplo, después que la pasada 0 está completa, la cola de la lista A[n . 1] está ordenada y el frente de la lista permanece desordenado. Las etapas del algoritmo son:
En la pasada 0 se comparan elementos adyacentes:
(A[0],A[1]),(A[1],A[2]),(A[2],A[3]),…(A[n-2],A[n-1])
Se realizan n .1 comparaciones, por cada pareja (A[i],A[i+1]) se intercambian los valores si A[i+1] < A[i]. Al final de la pasada, el elemento mayor de la lista está situado en A[n-1].
En la pasada 1 se realizan las mismas comparaciones e intercambios, terminando con el elemento segundo mayor valor en A[n-2].
El proceso termina con la pasada n . 1, en la que el elemento más pequeño se almacena en A[0].
El algoritmo tiene una mejora inmediata, el proceso de ordenación puede terminar en la pasada n-1, o bien antes, si en una pasada no se produce intercambio alguno entre elementos del vector es porque ya está ordenado, entonces no es necesario más pasadas.
El ejemplo siguiente ilustra el funcionamiento del algoritmo de la burbuja con un array de 5 elementos (A = 50, 20, 40, 80, 30), donde se introduce una variable interruptor para detectar si se ha producido intercambio en la pasada.
En consecuencia, el algoritmo de ordenación de burbuja mejorado contempla dos bucles anida-dos: el bucle externo controla la cantidad de pasadas (al principio de la primera pasada todavía no se ha producido ningún intercambio, por tanto la variable interruptor se pone a valor falso (0); el bucle interno controla cada pasada individualmente y cuando se produce un intercambio, cambia el valor de interruptor a verdadero (1).
El algoritmo terminará, bien cuando se termine la última pasada (n-1) o bien cuando el valor del interruptor sea falso (0), es decir, no se haya hecho ningún intercambio. La condición para realizar una nueva pasada se define en la expresión lógica.
(pasada < n-1) && interruptor
Ventajas del método de ordenación por burbuja:
Fácil implementación.
No requiere memoria adicional.
Es bastante sencillo
En un código reducido se realiza el ordenamiento
Eficaz
Desventajas del método de ordenación por burbuja:
Consume bastante tiempo de computadora
Requiere muchas lecturas/escrituras en memoria
Muy lento.
Realiza numerosas comparaciones.
Realiza numerosos intercambios.
Es el más ineficiente de todos los métodos.
Defina y explique de forma clara y sencilla, los métodos de búsqueda secuencial y binaria. Diferencias fundamentales, 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 lineal y búsqueda binaria.
Búsqueda Secuencial o Lineal:
La búsqueda secuencial es la técnica más simple para buscar un elemento en un arreglo.
En este método se recorre el vector desde el primer elemento hasta el último, comparando cada elemento del vector con el valor buscado, hasta que se encuentre el elemento o se llegue al final del vector. Este método es recomendado para realizar búsquedas con pocos datos. Implementación del método que busca lineal o secuencial, y devuelve la posición del datos. Se empieza con la primera casilla del arreglo y se observa una casilla tras otra hasta que se encuentra 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 arreglo no está en ningún orden en particular, existe la misma probabilidad de que el valor se encuentra ya sea en el primer elemento, como en el último. Por lo tanto, en promedio, el programa tendrá que comparar el valor buscado con la mitad de los elementos del arreglo.
El método de búsqueda lineal funciona bien con arreglos pequeños o para arreglos no ordenados. Si el arreglo está ordenado, se puede utilizar la técnica de alta velocidad de búsqueda binaria, donde se reduce sucesivamente la operación eliminando repetidas veces la mitad de la lista restante.
Ventajas:
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.
Desventajas:
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:
Este método es una técnica eficaz para realizar búsquedas en vectores o archivos que contengan un mayor número de datos. Este método divide el vector en mitades de manera sucesiva hasta que encuentra el dato buscado, es decir, el método divide el vector y se examina el elemento central del vector.
Si es el elemento que se busca, entonces la búsqueda finaliza, pero sino se determina si el dato buscado esta en la primera o la segunda mitad del vector y se repite el proceso en la nueva mitad, buscando su elemento central. Para realizar la búsqueda binaria el vector debe estar ordenado y se comienza comparando con el elemento central.
Ventajas:
Se puede aplicar tanto a datos en listas lineales como en árboles binarios de búsqueda.
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.
Conclusión
El Diagrama de Flujo es una herramienta de gran aplicación en la solución de problemas:
En la fase de definición de proyectos para identificar oportunidades de mejora, guiar la estimación de costes asociados al problema, identificar los organismos implicados en el mismo y establecer las fronteras de la misión del grupo de trabajo que debe abordarlo.
En el inicio de cualquier proyecto, para unificar el conocimiento básico de los participantes en el mismo.
En la fase de diagnóstico, para la planificación de las recogidas de datos y para la elaboración de teorías sobre las causas.
En la fase de diseño de soluciones, para guiar en el diseño de sistemas de control y para la identificación de posibles focos de resistencia al cambio.
En la fase de implantación de soluciones, para mostrar el proceso y los cambios realizados y para identificar las necesidades de formación existentes.
Debido a sus características principales, la utilización del Diagrama de Flujo será muy útil cuando:
Se quiere conocer o mostrar de forma global un proceso.
Es necesario tener un conocimiento básico, común a un grupo de personas, sobre el mismo.
Se deben comparar dos procesos o alternativas de uno dado.
Se necesita una guía que permita un análisis sistemático de un proceso.
Con mucha frecuencia los programadores trabajan con grandes cantidades de datos almacenados en arrays y registros, y por ello será necesario determinar si un array contiene un valor que coincida con un cierto valor clave. El proceso de encontrar un elemento específico de un array se denomina búsqueda. La búsqueda es el proceso de localizar un registro (elemento) con un valor de llave particular. Búsqueda lineal o secuencial, la técnica más sencilla, y búsqueda binaria o dicotómica, la técnica más eficiente.
El método de ordenación por burbuja también conocido como ordenamiento burbuja, funciona de la siguiente manera: Se recorre el arreglo intercambiando los elementos adyacentes que estén desordenados. Se recorre el arreglo tantas veces hasta que ya no haya cambios. Prácticamente lo que hace es tomar el elemento mayor y lo va recorriendo de posición en posición hasta ponerlo en su lugar.
Búsqueda secuencial, también se le conoce como búsqueda lineal. Este método de búsqueda 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. Si los valores de la llave no son únicos, para encontrar todos los registros con una llave particular, se requiere buscar en toda la lista.
Búsqueda binaria es un tipo de algoritmo que exige que el array esté ordenado. La búsqueda binaria consiste en dividir el array por su elemento medio en dos subarrays más pequeños, y comparar el elemento con el del centro. Si coinciden, la búsqueda se termina. Si el elemento es menor, debe estar (si está) en el primer subarray, y si es mayor está en el segundo. La búsqueda binaria es un método eficiente siempre que el vector este ordenado. En la práctica esto puede suceder, pero no siempre. Por esta razón la búsqueda binaria exige un ordenamiento previo del vector.
Recomendaciones
Para la elaboración de un diagrama de flujo se debe tomar en cuenta las siguientes recomendaciones:
Los Diagramas de flujo se dibujan generalmente usando algunos símbolos estándares; sin embargo, algunos símbolos especiales pueden también ser desarrollados cuando sean requeridos.
Para obtener la correcta elaboración de los símbolos, existen plantillas y programas que permiten la elaboración de diagramas de flujo.
Las reglas para la creación de Diagramas de flujo:
1. Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha.
2. Los símbolos se unen con líneas, las cuales tienen en la punta una flecha que indica la dirección en que fluye la información de procesos, se deben de utilizar solamente líneas de flujo horizontal o verticales (nunca diagonales).
3. Se debe evitar el cruce de líneas, si quisiera separar el flujo del diagrama a un sitio distinto, se puede realizar utilizando los conectores. Se debe tener en cuenta que solo se van a utilizar conectores cuando sea estrictamente necesario.
4. No deben quedar líneas de flujo sin conectar
5. Todo texto escrito dentro de un símbolo debe ser legible, preciso, evitando el uso de muchas palabras.
6. Todos los símbolos pueden tener más de una línea de entrada, a excepción del símbolo final.
7. Solo los símbolos de decisión pueden y deben tener más de una línea de flujo de salida.
Bibliografías y Referencias Electrónicas
Enciclopedia Temática Planeta 4. Editorial: Planeta DeAgostini, S.A. Impreso en Colombia.
Enciclopedia Autodidactica Océano, Volumen 3. Grupo Editorial Océano. Impreso en España, Barcelona.
Pedro Guevara Salgado, Luís Olascoaga. Métodos de Búsqueda. Universidad de Córdoba, Facultad de Ciencias Básicas e Ingenierías.
Cristóbal Pareja, Ángel Andeyro, Manuel Ojeda. Introducción a la Informática. 1era Edición, Febrero 1994.
Tecnico Profesional,
http://clintyanyurbis-diagramasdeflujo.blogspot.com/2007/07/diagramas-de-flujo.html
http://www.mailxmail.com/curso-aprende-programar/metodos-ordenamiento-busqueda
http://sistemas.itlp.edu.mx/tutoriales/estructdatos2/tema5_1.htm
Autor:
Orta Jeannine
Rodríguez Tania
Profesor:
Inojosa Nelson
Pto Ordaz, Mayo de2010
Página anterior | Volver al principio del trabajo | Página siguiente |