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
ordenamientoEficaz
Desventajas del método de ordenación
por burbuja:
Consume bastante tiempo de computadora
Requiere muchas lecturas/escrituras en
memoriaMuy 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 |