Diagrama de flujo

30
Pedro Sebastián lazo Ortiz DIAGRAMA DE FLUJO

description

programacion lenguaje C++ conceptos e historias

Transcript of Diagrama de flujo

Page 1: Diagrama de flujo

Pedro Sebastián lazo Ortiz

DIAGRAMA DE FLUJO

Page 2: Diagrama de flujo

INDICE

DIAGRAMA DE FLUJO «CONCEPTO ENTRE OTRAS COSAS »

PROGRAMACION

LENGUAJE C++

Page 3: Diagrama de flujo

DIAGRAMA DE FLUJO «CONCEPTO»

El diagrama de flujo es la representación gráfica del algoritmo o proceso. Se utiliza en disciplinas como la programación, la economía, los procesos industriales y la psicología cognitiva. Estos diagramas utilizan símbolos con significados bien definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin de proceso.

Page 4: Diagrama de flujo

CARACTERÍSTICASUn diagrama de flujo siempre tiene un único punto de inicio y un único punto de término.Las siguientes son acciones previas a la realización del diagrama de flujo:Identificar las ideas principales a ser incluidas en el diagrama de flujo. Deben estar presentes el dueño o responsable del proceso, los dueños o responsables del proceso anterior y posterior y de otros procesos interrelacionados, otras partes interesadas.Definir qué se espera obtener del diagrama de flujo.Identificar quién lo empleará y cómo.Establecer el nivel de detalle requerido.Determinar los límites del proceso a describir.Los pasos a seguir para construir el diagrama de flujo son:Establecer el alcance del proceso a describir. De esta manera quedará fijado el comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso previo y el final la entrada al proceso siguiente.Identificar y listar las principales actividades/subprocesos que están incluidos en el proceso a describir y su orden cronológico.Si el nivel de detalle definido incluye actividades menores, listarlas también.Identificar y listar los puntos de decisión.Construir el diagrama respetando la secuencia cronológica y asignando los correspondientes símbolos.Asignar un título al diagrama y verificar que esté completo y describa con exactitud el proceso elegido.

Page 5: Diagrama de flujo

VENTAJAS DE LOS DIAGRAMAS DE FLUJOFavorecen la comprensión del proceso al mostrarlo como un dibujo. El cerebro humano reconoce muy fácilmente los dibujos. Un buen diagrama de flujo reemplaza varias páginas de texto.Permiten identificar los problemas y las oportunidades de mejora del proceso. Se identifican los pasos, los flujos de los re-procesos, los conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisión.Muestran las interfaces cliente-proveedor y las transacciones que en ellas se realizan, facilitando a los empleados el análisis de las mismas.Son una excelente herramienta para capacitar a los nuevos empleados y también a los que desarrollan la tarea, cuando se realizan mejoras en el proceso.Al igual que el pseudocódigo, el diagrama de flujo con fines de análisis de algoritmos de programación puede ser ejecutado en un ordenador, con un Ide como Free DFD.

Page 6: Diagrama de flujo

TIPOS DE DIAGRAMAS DE FLUJO

Formato vertical: En él, el flujo o la secuencia de las operaciones, va de arriba hacia abajo. Es una lista ordenada de las operaciones de un proceso con toda la información que se considere necesaria, según su propósito.Formato horizontal: En él, el flujo o la secuencia de las operaciones, va de izquierda a derecha.Formato panorámico: El proceso entero está representado en una sola carta y puede apreciarse de una sola mirada mucho más rápido que leyendo el texto, lo que facilita su comprensión, aún para personas no familiarizadas. Registra no solo en línea vertical, sino también horizontal, distintas acciones simultáneas y la participación de más de un puesto o departamento que el formato vertical no registra.Formato Arquitectónico: Describe el itinerario de ruta de una forma o persona sobre el plano arquitectónico del área de trabajo. El primero de los flujogramas es eminentemente descriptivo, mientras que los utilizados son fundamentalmente representativos.

Page 7: Diagrama de flujo

SIMBOLOGÍA Y SIGNIFICADO

Óvalo o Elipse: Inicio y término (Abre y/o cierra el diagrama).Rectángulo: Actividad (Representa la ejecución de una o más actividades o procedimientos).Rombo: Decisión (Formula una pregunta o cuestión).Círculo: Conector (Representa el enlace de actividades con otra dentro de un procedimiento).Triángulo boca abajo: Archivo definitivo (Guarda un documento en forma permanente).Triángulo boca arriba: Archivo temporal (Proporciona un tiempo para el almacenamiento del documento).

Page 8: Diagrama de flujo

IMAGEN SIMBOLOGIA

Page 9: Diagrama de flujo

HISTORIALa paternidad del diagrama de flujo es en principio algo difusa. El método estructurado para documentar graficamente un proceso como un flujo de pasos sucesivo y alternativos, el "proceso de diagrama de flujo", fue expuesto por Frank Gilbreth, en la Sociedad Americana de Ingenieros Mecánicos (ASME), en 1921, bajo el enunciado de "Proceso de Gráficas-Primeros pasos para encontrar el mejor modo".En la década de 1970 la popularidad de los diagramas de flujo como método propio de la informática disminuyó, con el nuevo hardware y los nuevos lenguajes de programación de tercera generación. Y por otra parte se convirtieron en instrumentos comunes en el mundo empresarial. Son una expresión concisa, legible y práctica de algoritmos. Actualmente se aplican en muchos campos del conocimiento, especialmente como simplificación y expresión lógica de procesos, etc.

Page 10: Diagrama de flujo

EJEMPLO DE DIAGRAMA DE FLUJO

Page 11: Diagrama de flujo

PROGRAMACION

Page 12: Diagrama de flujo

CONCEPTO

La programación es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. El código fuente es escrito en un lenguaje de programación. El propósito de la programación es crear programas que exhiban un comportamiento deseado. El proceso de escribir código requiere frecuentemente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos especializados y lógica formal. Programar no involucra necesariamente otras tareas tales como el análisis y diseño de la aplicación (pero sí el diseño del código), aunque sí suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.

Page 13: Diagrama de flujo

HISTORIA

Para crear un programa, y que la computadora interprete y ejecute las instrucciones escritas en él, debe usarse un Lenguaje de programación.En sus inicios las computadoras interpretaban sólo instrucciones en un lenguaje específico, del más bajo nivel, conocido como código máquina, siendo éste excesivamente complicado para programar. De hecho sólo consiste en cadenas de números 1 y 0 (Sistema binario).Para facilitar el trabajo de programación, los primeros científicos que trabajaban en el área decidieron reemplazar las instrucciones, secuencias de unos y ceros, por palabras o letras provenientes del inglés; codificándolas así y creando un lenguaje de mayor nivel, que se conoce como Assembly o lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). En realidad escribir en lenguaje ensamblador es básicamente lo mismo que hacerlo en lenguaje máquina, pero las letras y palabras son bastante más fáciles de recordar y entender que secuencias de números binarios.

Page 14: Diagrama de flujo

LÉXICO Y PROGRAMACIÓN

La programación se rige por reglas y un conjunto más o menos reducido de órdenes, expresiones, instrucciones y comandos que tienden a asemejarse a una lengua natural acotada (en inglés); y que además tienen la particularidad de una reducida ambigüedad. Cuanto menos ambiguo es un lenguaje de programación, se dice, es más potente. Bajo esta premisa, y en el extremo, el lenguaje más potente existente es el binario, con ambigüedad nula (lo cual lleva a pensar así del lenguaje ensamblador).En los lenguajes de programación de alto nivel se distinguen diversos elementos entre los que se incluyen el léxico propio del lenguaje y las reglas semánticas y sintácticas.

Page 15: Diagrama de flujo

PROGRAMAS Y ALGORITMOS

Se han propuesto diversas técnicas de programación cuyo objetivo es mejorar tanto el proceso de creación de software como su mantenimiento. Entre ellas, se pueden mencionar las siguientes:Programación estructuradaProgramación modularProgramación orientada a objetos (POO)Programación declarativa

Page 16: Diagrama de flujo

COMPILACIÓN

Normalmente la creación de un programa ejecutable (un típico.exe para Microsoft Windows o DOS) conlleva dos pasos. El primer paso se llama compilación (propiamente dicho) y traduce el código fuente escrito en un lenguaje de programación almacenado en un archivo a código en bajo nivel (normalmente en código objeto, no directamente a lenguaje máquina). El segundo paso se llama enlazado en el cual se enlaza el código de bajo nivel generado de todos los ficheros y subprogramas que se han mandado compilar y se añade el código de las funciones que hay en las bibliotecas del compilador para que el ejecutable pueda comunicarse directamente con el sistema operativo, traduciendo así finalmente el código objeto a código máquina, y generando un módulo ejecutable.

Page 17: Diagrama de flujo

PROGRAMACIÓN E INGENIERÍA DEL SOFTWARE

El proceso de creación de software, desde el punto de vista de la ingeniería, incluye los siguientes pasos:Reconocer la necesidad de un programa para solucionar un problema o identificar la posibilidad de automatización de una tarea.Recoger los requisitos del programa. Debe quedar claro qué es lo que debe hacer el programa y para qué se necesita.Realizar el análisis de los requisitos del programa. Debe quedar claro cómo debe realizar el programa las cosas que debe hacer. Las pruebas que comprueben la validez del programa se pueden especificar en esta fase.Diseñar la arquitectura del programa. Se debe descomponer el programa en partes de complejidad abordable.Implementar el programa. Consiste en realizar un diseño detallado, especificando completamente todo el funcionamiento del programa, tras lo cual la codificación (programación propiamente dicha) debería resultar inmediata.

Page 18: Diagrama de flujo

REFERENCIAS HISTÓRICAS

La primera programadora de computadora conocida fue Ada Lovelace, hija de Anabella Milbanke Byron y Lord Byron. Anabella introdujo en las matemáticas a Ada quien, después de conocer aCharles Babbage, tradujo y amplió una descripción de su máquina analítica. Incluso aunque Babbage nunca completó la construcción de cualquiera de sus máquinas, el trabajo que Ada realizó con éstas le hizo ganarse el título de primera programadora de computadoras del mundo. El nombre del lenguaje de programación Ada fue escogido como homenaje a esta programadora.No olvidemos que este proceso está aplicado a todos los métodos científicos que actualmente se practican.

Page 19: Diagrama de flujo

OBJETIVOS DE LA PROGRAMACIÓN

Es muy importante que el programa sea lo más claro y legible posible, para facilitar así su desarrollo y posterior mantenimiento. Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente, así como cuidar el estilo en la edición; de esta forma se ve facilitado el trabajo del programador, tanto en la fase de creación como en las fases posteriores de corrección de errores, ampliaciones, modificaciones, etc. Fases que pueden ser realizadas incluso por otro programador, con lo cual la claridad es aún más necesaria para que otros programadores puedan continuar el trabajo fácilmente. Algunos programadores llegan incluso a utilizar Arte ASCII para delimitar secciones de código. Otros, por diversión o para impedir un análisis cómodo a otros programadores, recurren al uso de código ofuscado.

Page 20: Diagrama de flujo

IMAGEN

Page 21: Diagrama de flujo

LENGUAJE C++

Page 22: Diagrama de flujo

CONCEPTO

C++ es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido.

Page 23: Diagrama de flujo

TIPOS DE DATOS

C++ tiene los siguientes tipos fundamentales:Caracteres: char (también es un entero), wchar_tEnteros: short, int, long, long longNúmeros en coma flotante: float, double, long doubleBooleanos: boolVacío: voidEl modificador unsigned se puede aplicar a enteros para obtener números sin signo (por omisión los enteros contienen signo), con lo que se consigue un rango mayor de números naturales.

Page 24: Diagrama de flujo

TAMAÑOS ASOCIADOS

Otras arquitecturas pueden requerir distintos tamaños de tipos de datos primitivos. C++ no dice nada acerca de cuál es el número de bits en un byte, ni del tamaño de estos tipos; más bien, ofrece solamente las siguientes "garantías de tipos":De acuerdo al estándar C99, un tipo char debe ocupar exactamente un byte compuesto de un mínimo de 8 bits independientemente de la arquitectura de la máquina.El tamaño reconocido de char es de 1. Es decir, sizeof(char) siempre devuelve 1.Un tipo short tiene al menos el mismo tamaño que un tipo char.Un tipo long tiene al menos el doble tamaño en bytes que un tipo short.Un tipo int tiene un tamaño entre el de short y el de long, ambos inclusive, preferentemente el tamaño de un apuntador de memoria de la máquina.Un tipo unsigned tiene el mismo tamaño que su versión signed.

Page 25: Diagrama de flujo

LA PALABRA RESERVADA "VOID"

La palabra reservada void define en C++ el concepto de no existencia o no atribución de un tipo en una variable o declaración. Como tal, puede ser usada para destacar que una función no recibe parámetros, como en:int funcion (void);

Page 26: Diagrama de flujo

PRINCIPIOS

La primera es la forma por omisión de un programa que no recibe parámetros ni argumentos. La segunda forma tiene dos parámetros: argc, un número que describe el número de argumentos del programa (incluyendo el nombre del programa mismo), y argv, un puntero a un array de punteros, de argc elementos, donde el elemento argv[i] representa el i-ésimo argumento entregado al programa. En el tercer caso se añade la posibilidad de poder acceder a las variables de entorno de ejecución de la misma forma que se accede a los argumentos del programa, pero reflejados sobre la variable env.El tipo de retorno de main es int. Al finalizar la función main, debe incluirse el valor de retorno (por ejemplo, return 0;, aunque el estándar prevé solamente dos posibles valores de retorno: EXIT_SUCCESS y EXIT_ERROR, definidas en el archivo cstddef), o salir por medio de la función exit. Alternativamente puede dejarse en blanco, en cuyo caso el compilador es responsable de agregar la salida adecuada.

Page 27: Diagrama de flujo

EL CONCEPTO DE CLASE

Los objetos en C++ son abstraídos mediante una clase. Según el paradigma de la programación orientada a objetos un objeto consta de:Identidad, que lo diferencía de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto).Métodos o funciones miembroAtributos o variables miembroUn ejemplo de clase que podemos tomar es la clase perro. Cada perro comparte unas características (atributos). Su número de patas, el color de su pelaje o su tamaño son algunos de sus atributos. Las funciones que lo hagan ladrar, cambiar su comportamiento... esas son las funciones de la clase.

Page 28: Diagrama de flujo

HERENCIA SIMPLE

La herencia en C++ es un mecanismo de abstracción creado para poder facilitar y mejorar el diseño de las clases de un programa. Con ella se pueden crear nuevas clases a partir de clases ya hechas, siempre y cuando tengan un tipo de relación especial.En la herencia, las clases derivadas "heredan" los datos y las funciones miembro de las clases base, pudiendo las clases derivadas redefinir estos comportamientos (polimorfismo) y añadir comportamientos nuevos propios de las clases derivadas. Para no romper el principio de encapsulamiento (ocultar datos cuyo conocimiento no es necesario para el uso de las clases), se proporciona un nuevo modo de visibilidad de los datos/funciones: "protected". Cualquier cosa que tenga visibilidad protected se comportará como pública en la clase Base y en las que componen la jerarquía de herencia, y como privada en las clases que NO sean de la jerarquía de la herencia.

Page 29: Diagrama de flujo

SOBRECARGA DE OPERADORES

Dado que estos operadores son definidos para un tipo de datos definido por el usuario, éste es libre de asignarles cualquiera semántica que desee. Sin embargo, se considera de primera importancia que las semánticas sean tan parecidas al comportamiento natural de los operadores como para que el uso de los operadores sobrecargados sea intuitivo. Por ejemplo, el uso del operador unario - debiera cambiar el "signo" de un "valor".Los operadores sobrecargados no dejan de ser funciones, por lo que pueden devolver un valor, si este valor es del tipo de datos con el que trabaja el operador, permite el encadenamiento de sentencias. Por ejemplo, si tenemos 3 variables A,B y C de un tipo T y sobrecargamos el operador = para que trabaje con el tipo de datos T, hay dos opciones: si el operador no devuelve nada una sentencia como "A=B=C;" (sin las comillas) daría error, pero si se devuelve un tipo de datos T al implementar el operador, permitiría concatenar cuantos elementos se quisieran, permitiendo algo como "A=B=C=D=...;"

Page 30: Diagrama de flujo

IMAGEN C++