🎧 New: AI-Generated Podcasts Turn your study notes into engaging audio conversations. Learn more

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Full Transcript

Diagramas de Flujo Diagramas de Flujo ◦ Un diagrama de flujo representa la esquematización grafica de un algoritmo. En realidad, muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema. ◦ Su correcta construcción es sumamente importante porque a partir de...

Diagramas de Flujo Diagramas de Flujo ◦ Un diagrama de flujo representa la esquematización grafica de un algoritmo. En realidad, muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema. ◦ Su correcta construcción es sumamente importante porque a partir del mismo se escribe un programa en algún lenguaje de programación. ◦ Si el diagrama de flujo esta completo y correcto, el paso del mismo a un lenguaje de programación es relativamente simple y directo. Reglas de la construcción de diagramas de flujo ◦ Un diagrama de flujo debe ilustrar gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema. ◦ Los símbolos presentados, colocados adecuadamente, permiten crear una estructura grafica flexible que ilustra los pasos a seguir para alcanzar un resultado especifico. El diagrama de flujo facilitara más tarde la escritura del programa en algún lenguaje de programación. Reglas de la construcción de diagramas de flujo ◦ Todo diagrama de flujo debe tener un inicio y un fin ◦ Las líneas utilizadas para indicar dirección del flujo del diagrama deben ser rectas, verticales y horizontales. Reglas de la construcción de diagramas de flujo ◦ Todas las líneas utilizadas para indicar la dirección del flujo del diagrama deben estar conectadas. La conexión puede ser a un símbolo que exprese lectura, proceso, decisión, impresión, conexión o fin de diagrama. ◦ El diagrama de flujo debe ser construido de arriba hacia abajo y de izquierda a derecha. ◦ La notación utilizada en el diagrama debe ser independiente del lenguaje de programación. La solución presentada puede escribirse posteriormente y fácilmente en diferentes lenguajes de programación. ◦ Es conveniente utilizar comentarios en tareas complejas. Reglas de la construcción de diagramas de flujo ◦ Si el diagrama de flujo requiera más de una hoja para su construcción, se debe utilizar los conectores adecuados. ◦ No puede llegar más de una línea a un símbolo. Ventajas de usar diagramas de flujo: ◦ Comunicación: Los diagramas de flujo son una mejor manera de comunicar la lógica de un sistema a todos los interesados. ◦ Análisis efectivo: Con la ayuda del diagrama de flujo, el problema se puede analizar de manera más efectiva. ◦ Documentación adecuada: los diagramas de flujo del programa sirven como documentación del programa, que se necesita para varios propósitos. ◦ Codificación eficiente: los diagramas de flujo actúan como una guía o modelo durante la fase de análisis de sistemas y desarrollo de programas. ◦ Depuración adecuada: el diagrama de flujo ayuda en el proceso de depuración. ◦ Mantenimiento eficiente del programa: el mantenimiento del programa operativo se vuelve fácil con la ayuda del diagrama de flujo. Ayuda al programador a esforzarse más eficientemente en esa parte. Limitaciones de los Diagramas de Flujo: ◦ Lógica compleja: A veces, la lógica del programa es bastante complicada. En ese caso, el diagrama de flujo se vuelve complejo y torpe. ◦ Alteraciones y modificaciones: si se requieren alteraciones, es posible que sea necesario volver a dibujar el diagrama de flujo por completo. ◦ Reproducción: como los símbolos del diagrama de flujo no se pueden escribir, la reproducción del diagrama de flujo se convierte en un problema. ◦ Lo esencial de lo que se hace puede perderse fácilmente en los detalles técnicos de cómo se hace. Cuando usar un Diagrama de Flujo: ◦ Generalmente se usa cuando comienza un nuevo proyecto para planificar el proyecto. ◦ Ayuda a aclarar cómo funcionan las cosas actualmente y cómo podrían mejorarse. También ayuda a encontrar los elementos clave de un proceso, al tiempo que traza líneas claras entre el final de un proceso y el comienzo del siguiente. ◦ Estimula la comunicación entre los participantes y establece un entendimiento común sobre el proceso. Los diagramas de flujo también descubren pasos que son redundantes o están fuera de lugar. ◦ Se utilizan para ayudar a los miembros del equipo, identificar quién proporciona insumos o recursos a quién, establecer áreas importantes para el monitoreo o la recopilación de datos, identificar áreas para mejorar o aumentar la eficiencia y generar hipótesis sobre las causas. ◦ Se recomienda que se creen a través de la discusión en grupo, ya que las personas rara vez conocen todo el proceso y la comunicación contribuye a la mejora. ◦ Son muy útiles para documentar un proceso (simple o complejo) ya que facilitan la comprensión del proceso. Ejemplos 1. Construya un diagrama de flujo tal que dado los datos enteros A y B, escriba el resultado de la siguiente expresión: (A+B)^2 3 Ejemplos 1. Construya un diagrama de flujo tal que dado los datos enteros A y B, escriba el resultado de la siguiente expresión: Datos: A, B son variables de tipo entero. Explicación de las variables A, B: Variables de tipo entero RES: Variable de tipo real. Almacena el resultado de la expresión. Ejemplos 1. Ejemplos 2. Dada la matricula y 5 calificaciones de un alumno obtenidas a lo largo del semestre, construya un diagrama de flujo que imprima la matricula del alumno y el promedio de sus calificaciones : Datos: MAT, CAL1, CAL2, CAL3, CAL4, CAL5 Donde: MAT es una variable de tipo entero que representa la matricula del alumno. CAL1, CAL2, CAL3, CAL4, CAL5: Son variables de tipo real que representan las calificaciones del alumno. Ejemplos 2. Explicación de las variables: MAT: Variable tipo entero. CAL1,CAL2,CAL3 CAL4 CAL5: Variables de tipo real. PRO: Variable de tipo real. Almacena el promedio de las calificaciones del alumno Ejemplos 2. Ejemplos 3. Construya un diagrama de flujo tal que dado el costo de un artículo vendido y la cantidad de dinero entregada por el cliente, calcule e imprima el cambio que se debe entregar al mismo: Datos: PREPRO, PAGO Donde: PREPPRO Es una variable de tipo real que representa el precio del producto. PAGO Es una variable de tipo real que representa el pago que realiza el cliente. Ejemplos Nota. Se asume que el pago del cliente es mayor al precio del producto. Explicación de las variables DEVO: Variable de tipo real. Almacena el cambio que se debe entregar al cliente. Ejemplos 3. Tabla donde se presenta el seguimiento de algoritmo para diferentes ejecuciones. Estructura Selectiva simple si entonces Permite que el flujo del diagrama siga por un camino especifico si se cumple una condición o conjunto de condiciones. Si al evaluar la condición (o condiciones) el resultado es verdadero, entonces se ejecuta (n) ciertas(s) operación (es). Luego continua con la secuencia normal del diagrama. La estructura selectiva doble si entonces / sino Permite que el flujo del diagrama se bifurque por dos ramas diferentes en el punto de la toma de decisión (es). Si al evaluar la condición (o condiciones) el resultado es verdadero, entonces se sigue por un camino especifico y se ejecuta(n) cierta(s) operación(es). Por otra parte, si el resultado es falso entonces se sigue por otro camino y se ejecuta(n) otra(s) operación(es). En ambos casos, luego de ejecutarse la(s) operaciones(es) indicadas(s), se continua con la secuencia normal del diagrama. Estructuras selectivas en cascada (anidadas) Encontramos numerosos casos en el desarrollo de la solución de problemas en el que luego de tomar una decisión y marcar el camino correspondiente a seguir, es necesario tomar otra decisión. Se señala, luego de evaluar las condiciones, la rama correspondiente a seguir, y nuevamente podemos tener que tomar otra decisión. El proceso puede repetirse numerosas veces. En este caso, para resolver el problema, estamos aplicando estructuras selectivas en cascada o anidadas. Estructuras selectivas en cascada (anidadas) No CONDICION 1 Si Si No CONDICION 2 OPERACION 1 OPERACION2 Teorema de la programación estructurada Este teorema establece que todo algoritmo puede resolverse mediante el uso de tres estructuras básicas llamadas “estructuras de control”: ◦ La “estructura secuencial” o “acción simple”. ◦ La “estructura de decisión” o “acción condicional”. ◦ La “estructura iterativa” o “acción de repetición”. Conceptos de Programación En general, estudiamos algoritmos para aplicarlos a la resolución de problemas mediante el uso de la computadora. Las computadoras tienen memoria y tienen la capacidad de resolver operaciones aritméticas y lógicas. Por lo tanto, son la herramienta fundamental para ejecutar los algoritmos que vamos a desarrollar. Para que una computadora pueda ejecutar las acciones que componen un algoritmo tendremos que especificarlas o describirlas de forma tal que las pueda comprender. Todos escuchamos alguna vez que “las computadoras solo entienden 1 (unos) y 0 (ceros)” y, efectivamente, esto es asi, pero para nosotros (simples humanos) especificar las acciones de nuestros algoritmos como diferentes combinaciones de unos y ceros seria una tarea verdaderamente dificil. Lenguajes de Programación Las computadoras entienden el lenguaje binario (unos y ceros) y nosotros, los humanos, entendemos lenguajes naturales (español, inglés, portugués, etc.). Los lenguajes de programación son lenguajes formales que se componen de un conjunto de palabras, generalmente en inglés, y reglas sintácticas y semánticas. Podemos utilizar un lenguaje de programación para escribir o codificar algoritmos y luego, con un programa especial llamado “compilador”, generar los “unos y ceros” que representan sus acciones. De esta manera, la computadora será capaz de comprender y convertir al algoritmo en un programa de computación. Codificación de un algoritmo Cuando se escriben las acciones de un algoritmo en algún lenguaje de programación se dice que se está “codificando”. Generalmente, cada acción se codifica en una línea de código. Al conjunto de líneas de código, que obtenemos luego de codificar el algoritmo, lo llamamos “código fuente”. El código fuente debe estar contenido en un archivo de texto cuyo nombre debe tener una extensión determinada que dependerá del lenguaje de programación que utilizado. Por ejemplo, si codificamos en Java entonces la extensión del nombre del archivo deberá ser “.java” y si el algoritmo fue codificado en C++ entonces el nombre del archivo deberá tener la extensión “.ccp”. Bibliotecas de funciones Los lenguajes de programación proveen bibliotecas o conjuntos de funciones a través de las cuales se ofrece cierta funcionalidad básica que permite, por ejemplo, leer y escribir datos sobre cualquier dispositivo de entrada/salida como podría ser la consola. Es decir, gracias a que los lenguajes proveen estos conjuntos de funciones los programadores estamos exentos de programarlas y simplemente nos limitaremos a utilizarlas. Programando en C++, por ejemplo, cuando necesitemos mostrar un mensaje en la pantalla utilizaremos la función print y cuando queramos leer datos a través del teclado utilizaremos la función scan. Ambas funciones forman parte de la biblioteca estándar de entrada/salida de C++. Programas de computación Un programa es un algoritmo que ha sido codificado y compilado y que, por lo tanto, puede ser ejecutado en una computadora. El algoritmo constituye la lógica del programa. El programa se limita a ejecutar cada una de las acciones del algoritmo. Por esto, si el algoritmo tiene algún error entonces el programa también lo tendrá y si el algoritmo es lógicamente perfecto entonces el programa también lo sera. El proceso para crear un nuevo programa es el siguiente: ◦ Diseñar y desarrollar su algoritmo. ◦ Codificar el algoritmo utilizando un lenguaje de programación. ◦ Compilarlo para obtener el código de maquina o archivo ejecutable (los “unos y ceros”). Dado que el algoritmo es la parte lógica del programa muchas veces utilizaremos ambos términos como sinónimos ya que para hacer un programa primero necesitaremos diseñar su algoritmo. Por otro lado, si desarrollamos un algoritmo seguramente será para, luego, codificarlo y compilarlo, es decir, programarlo. Consola Llamamos “consola” al conjunto compuesto por el teclado y la pantalla de la computadora en modo texto. Cuando hablemos de ingreso de datos por consola nos estaremos refiriendo al teclado y cuando hablemos de mostrar datos por consola estaremos hablando de la pantalla, siempre en modo texto. Entrada y salida de datos Llamamos “entrada” al conjunto de datos externos que ingresan al algoritmo. Por ejemplo, el ingreso de datos por teclado, la información que se lee a través de algún dispositivo como podría ser un lector de código de barras, un scanner de huellas digitales, etcétera. Llamamos “salida” a la información que el algoritmo emite sobre algún dispositivo como ser la consola, una impresora, un archivo, etcétera. La consola es el dispositivo de entrada y salida por omisión. Es decir, si hablamos de ingreso de datos y no especificamos nada más será porque el ingreso de datos lo haremos a través del teclado. Análogamente, si hablamos de mostrar cierta información y no especificamos más detalles nos estaremos refiriendo a mostrarla por la pantalla de la computadora, en modo texto. Lenguajes algorítmicos Llamamos “lenguaje algorítmico” a todo recurso que permita describir con mayor o menor nivel de detalle los pasos que componen un algoritmo. Los lenguajes de programación, por ejemplo, son lenguajes algorítmicos ya que, como veremos más adelante, la codificación del algoritmo es en sí misma una descripción detallada de los pasos que lo componen. Sin embargo, para describir un algoritmo no siempre será necesario llegar al nivel de detalle que implica codificarlo. Una opción válida es utilizar un “pseudocódigo”. Pseudocódigo ◦ Pseudo: Es una palabra proviene de un vocablo griego que significa falso. La palabra código, se derivó de un vocablo latín que significa, entre otras acepciones, una combinación de signos que tiene un determinado valor de un sistema establecido. ◦ El pseudocódigo surge de mezclar un lenguaje natural (por ejemplo, el español) con ciertas convenciones sintácticas y semánticas propias de un lenguaje de programación.

Use Quizgecko on...
Browser
Browser