Subido por By zama

AF 1

Anuncio
Materia:
Programación Visual
ACTIVIDAD FUNDAMENTAL 1:
Realizar una investigación del tema algoritmo y diagramas de flujo
NOMBRE
MATRICULA CARRERA
Raúl Daríel Peña González
1723069
IMA
David Zamarripa García
1800977
IAS
Mauricio Ramírez Mendoza
1994657
IME
Carlos Zaid Carrizales
2000153
IME
Valladares
Melannie Rubi Guerra
2007290
IEC
Samaniego
DOCENTE:
ING. MISSAEL ANTONIO GUEVARA CORREA
¿Qué es un diagrama de flujo?
Un diagrama de flujo es un diagrama que describe un proceso, sistema o algoritmo
informático. Se usan ampliamente en numerosos campos para documentar,
estudiar, planificar, mejorar y comunicar procesos que suelen ser complejos en
diagramas claros y fáciles de comprender.
Los diagramas de flujo emplean rectángulos, óvalos, diamantes y otras numerosas
figuras para definir el tipo de paso, junto con flechas conectoras que establecen el
flujo y la secuencia. Pueden variar desde diagramas simples y dibujados a mano
hasta diagramas exhaustivos creados por computadora que describen múltiples
pasos y rutas.
Si tomamos en cuenta todas las diversas figuras de los diagramas de flujo, son uno
de los diagramas más comunes del mundo, usados por personas con y sin
conocimiento técnico en una variedad de campos. Los diagramas de flujo a veces
se denominan con nombres más especializados, como "diagrama de flujo de
procesos", "mapa de procesos", "diagrama de flujo funcional", "mapa de procesos
de negocios", "notación y modelado de procesos de negocio (BPMN)" o "diagrama
de flujo de procesos (PFD)".
Están relacionados con otros diagramas populares, como los diagramas de flujo de
datos (DFD) y los diagramas de actividad de lenguaje unificado de modelado (UML).
Símbolos de diagramas de flujo
A continuación, te enseñaremos algunos de los símbolos de diagramas de flujo
más comunes.
Terminal/Terminador
Proceso
Documento
Decisión
Datos o entrada/salida
Datos almacenados
Flecha de flujo
Comentario o anotación
Proceso predefinido
Referencia/conector
dentro de la página
Referencia/conector fuera
de la página
Diagramas de flujo para algoritmos/programación informática
Como una representación visual del flujo de datos, los diagramas de flujo son útiles
para escribir un programa o algoritmo y explicárselo a otros o colaborar con otros
en el mismo.
Puedes usar un diagrama de flujo para explicar detalladamente la lógica detrás de
un programa antes de empezar a codificar el proceso automatizado. Puede ayudar
a organizar una perspectiva general y ofrecer una guía cuando llega el momento de
codificar. Más específicamente, los diagramas de flujo pueden:
•
Demostrar cómo el código está organizado.
•
Visualizar la ejecución de un código dentro de un programa.
•
Mostrar la estructura de un sitio web o aplicación.
•
Comprender cómo los usuarios navegan por un sitio web o programa.
A menudo, los programadores pueden escribir un pseudocódigo, una combinación
de lenguaje natural y lenguaje informático que puede ser leído por personas. Esto
puede permitir más detalle que el diagrama de flujo y servir como reemplazo del
diagrama de flujo o como el próximo paso del código mismo.
Los diagramas relacionados que se emplean en el software informático incluyen:
•
Lenguaje unificado de modelado (UML): este es el lenguaje de propósito general
usado en la ingeniería de software para el modelado.
•
Diagramas Nassi-Shneiderman (NSD): usados para la programación informática
estructurada. Llevan el nombre de sus creadores: Isaac Nassi y Ben
Shneiderman, quienes los desarrollaron en 1972 en la Universidad Estatal de
Nueva York en Stony Brook. También se denominan "estructogramas".
•
Diagramas DRAKON: DRAKON es un lenguaje de programación visual de
algoritmos empleado para crear diagramas de flujo.
Cómo se usan los diagramas de flujo en muchos otros campos
Más allá de la programación informática, los diagramas de flujo pueden tener
muchos usos en diversos campos.
•
En cualquier campo pueden:
Documentar y analizar un proceso.
•
Estandarizar un proceso para obtener eficiencia y calidad.
•
Comunicar un proceso para capacitar a otros sectores de la organización o lograr
el entendimiento de su parte.
•
Identificar cuellos de botellas, redundancias y pasos innecesarios en un proceso
y mejorarlo.
Educación:
• Planificar los requisitos académicos y las tareas del curso.
•
Crear una presentación oral o un plan de clase.
•
Organizar un proyecto grupal o individual.
•
Mostrar un proceso civil o legal, como el registro de votantes.
•
Planificar y estructurar la escritura creativa, como poesía o poesía lírica.
•
Demostrar el desarrollo de un personaje en la literatura y el cine.
•
Representar el flujo de algoritmos o acertijos lógicos.
•
Comprender un proceso científico, como el ciclo de Krebs.
•
Dibujar un proceso anatómico, como la digestión.
•
Trazar síntomas y tratamientos para enfermedades o trastornos.
•
Comunicar hipótesis y teorías, como la pirámide de Maslow o jerarquía de las
necesidades humanas.
•
Ventas y marketing:
Trazar el flujo de una encuesta.
•
Dibujar un proceso de ventas.
•
Planificar estrategias de investigación.
•
Mostrar flujos de registro.
•
Difundir políticas de comunicación, como un plan de R.R. P.P. de emergencia.
•
Negocios:
Comprender procesos de pedidos y compras.
•
Representar la rutina diaria o las tareas de un empleado.
•
Comprender las rutas que toman los usuarios en un sitio web o en una tienda.
•
Desarrollar un plan de negocio o un plan de desarrollo de un producto.
•
Documentar un proceso en preparación para una auditoría, incluido el
cumplimiento normativo, por ejemplo, en virtud de la Ley Sarbanes-Oxley.
•
Documentar un proceso en preparación para una venta o consolidación.
•
Manufactura:
Indicar la composición química o física de un producto.
•
Ilustrar el proceso de manufactura de principio a fin.
•
Descubrir y resolver ineficiencias en un proceso de manufactura o adquisición.
Ingeniería:
• Representar flujos de proceso o de sistema.
•
Diseñar y actualizar procesos químicos y de planta.
•
Evaluar el ciclo de vida de una estructura.
•
Diagramar un flujo de ingeniería inversa.
•
Demostrar la fase de prototipo y diseño de una estructura o producto nuevos.
Características y clasificaciones de los algoritmos
Partes del algoritmo y generalidades
Independientemente de la clasificación y el tipo de algoritmo, básicamente todos
están compuestos de tres partes principales:
•
•
•
Entrada: Se trata del conjunto de datos que el algoritmo necesita como
insumo para procesar.
Proceso: Son los pasos necesarios aplicados por el algoritmo a la entrada
recibida para poder llegar a una salida o resolución del problema.
Salida: Es el resultado producido por el algoritmo a partir del procesamiento
de la entrada una vez terminada la ejecución del proceso.
Además del tipo de algoritmo existen una serie de características comunes a todos,
a continuación, se mencionan alguna de ellas.
•
•
•
•
•
•
Exactitud: el algoritmo tiene que indicar un orden claro de la ejecución de
cada paso, estos no pueden ser ambiguos (debe existir una confiabilidad).
Estar definido: si se realiza la ejecución de un mismo algoritmo en distintas
instancias utilizando la misma entrada, debe resultar en la misma salida.
Completo: en la solución se deben considerar todas las posibilidades del
problema.
Finito: necesariamente un algoritmo debe tener un número finito de pasos.
Instrucciones entendibles: Las instrucciones que lo describen deben ser
claras y legibles.
General: debe poder abarcar problemas de un mismo tema soportando las
distintas variantes que se presentan en la definición del problema.
Criterios de clasificación de los algoritmos
Según el criterio utilizado se aplican diferentes clasificaciones a los algoritmos. Por
ejemplo, si usamos la clasificación por el sistema de signos con el cual se describen
los pasos a seguir del algoritmo, podemos diferenciar dos tipos,
•
•
Algoritmos cualitativos: aquellos que sus pasos son instrucciones verbales
Algoritmos cuantitativos: aquellos que se siguen instrucciones de cálculos
numéricos.
Si se clasifican en base a su función se pueden establecer tres grupos principales
como son los algoritmos de búsqueda, algoritmos de ordenamiento y algoritmos
de encaminamiento o enrutamiento.
El tercer criterio que puede usarse para su clasificación es en base a su estrategia
para alcanzar un resultado. En este grupo podemos mencionar a los
algoritmos probabilísticos, heurísticos, voraces, de escalada y deterministas.
Descargar