Download Objetivos El alumno planteará, mediante un diagrama de flujo, los
Transcript
PRÁCTICA DISEÑO DE PROGRAMAS Parte II Objetivos El alumno planteará, mediante un diagrama de flujo, los pasos que deberán seguirse para resolver un problema de ingeniería sencillo. Al final de esta práctica el alumno podrá: 1. Analizar el problema e identificar los datos que se tienen y cuáles se necesitan. 2. Seleccionar la mejor alternativa que produce la resolución del problema. 3. Plantear de manera detallada el diagrama de flujo que se debe seguir para resolver el problema Antecedentes 1. Conocer y manejar el diseño de algoritmos para la resolución de problemas Introducción Un diagrama de flujo es un esquema para representar gráficamente un algoritmo. En realidad muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema. Se basa en la utilización de diversos símbolos para representar operaciones específicas. Se les llama diagramas de flujo porque los símbolos utilizados se conectan por medio de flechas para indicar la secuencia de la operación. 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 está completo y correcto, el paso del mismo a un lenguaje de programación es relativamente simple y directo. Para hacer comprensible los diagramas a todas las personas, los símbolos se sometieron a una normalización, o lo que es en realidad se hicieron símbolos casi universales, ya que, en un principio cada usuario podría tener sus propios símbolos para representar sus procesos en forma de diagrama de flujo. A continuación en la Tabla 1 se muestra la simbología utilizada en los diagramas de flujo con base en las recomendaciones de la Organización Internacional para la Estandarización (ISO) y el Instituto Nacional Americano de Estándares (ANSI): Tabla 1. Símbolos empleados en los diagramas de flujo Representación del símbolo Explicación del símbolo Marca el inicio y el fin del diagrama de flujo Para introducir los datos de entrada. Expresa lectura Elaborada por: Ing. Alejandra Vargas E. de los M. alejandrav@correo.unam.mx M.C. Vicente Fuentes Gea vfg@servidor.unam.mx M.C. Cintia Quezada Reyes cintia@fi-b.unam.mx 1 PRÁCTICA DISEÑO DE PROGRAMAS Parte II Para representar un proceso. En su interior se expresan asignaciones, operaciones aritméticas, cambios de valor de celdas en memoria. No Sí Para representar una decisión, en su interior se almacena una condición y dependiendo del resultado de la evaluación de la misma se sigue por alguna de las ramas. Para representar la impresión resultado. Expresa escritura. de un Para expresar la dirección del flujo del diagrama Para expresar conexión dentro de la misma página Para expresar diferentes. conexión entre páginas Para representar una decisión múltiple. En su interior se almacena un selector y dependiendo del valor de éste se sigue por una de las ramas o caminos alternativos. Las reglas que permiten la construcción de diagramas de flujo se muestran a continuación: 2. Todo diagrama de flujo debe tener un inicio y un fin. 3. Las líneas utilizadas para indicar la dirección del flujo del diagrama deben ser rectas verticales y horizontales. 4. 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 programa. 5. El diagrama de flujo debe ser construido de arriba hacia abajo y de izquierda a derecha. Elaborada por: Ing. Alejandra Vargas E. de los M. alejandrav@correo.unam.mx M.C. Vicente Fuentes Gea vfg@servidor.unam.mx M.C. Cintia Quezada Reyes cintia@fi-b.unam.mx 2 PRÁCTICA DISEÑO DE PROGRAMAS Parte II 6. La notación utilizada en el diagrama de flujo debe ser independiente del lenguaje de programación. 7. Es conveniente cuando se realice una tarea compleja poner comentarios que expresen o ayuden a entender lo que se hizo. 8. Si el diagrama requiere más de una hoja para su construcción se debe utilizar el o los conectores adecuados y enumerar las páginas convenientemente. 9. No puede llegar más de una línea a un símbolo. Un diagrama de flujo consta de tres etapas para la resolución de un problema: a) Análisis profundo del problema: es decir, con qué datos se cuenta, cuáles son necesarios como valores de entrada, qué restricciones deben considerarse, cómo debe ser la salida para que el problema se resuelva. b) Construcción del diagrama de flujo: dibujar detalladamente qué pasos se deben seguir para resolver el problema. c) Verificación del diagrama de flujo: consiste en el seguimiento del mismo empleando datos que son representativos del problema que se desea resolver (esto se conoce como prueba de escritorio). Ejemplo de diagramas de flujo Ejemplo: Se desea realizar el cálculo de la velocidad de un automóvil que recorre una x distancia x en un cierto tiempo t. (Emplear la fórmula v = ). t a) Análisis del problema: • Como datos de entrada se necesita el valor de la distancia (x) y el valor del tiempo (t) • En las restricciones se observa que el tiempo no puede ser nulo pues se indetermina la operación, tampoco puede ser negativo. La distancia puede ser positiva o negativa, ya que el automóvil puede ir retrocediendo, pero no puede ser nula porque el problema indica que el automóvil recorre una cierta distancia. x Finalmente se obtiene como resultado la velocidad tras aplicar la fórmula v = , t donde la velocidad puede aumentar (si el resultado es positivo) o disminuir (si el resultado es negativo Elaborada por: Ing. Alejandra Vargas E. de los M. alejandrav@correo.unam.mx M.C. Vicente Fuentes Gea vfg@servidor.unam.mx M.C. Cintia Quezada Reyes cintia@fi-b.unam.mx 3 PRÁCTICA DISEÑO DE PROGRAMAS Parte II b) Construcción del diagrama de flujo Inicio x Sí No x=0 t Sí t≤0 No v= x t v Fin c) Prueba de escritorio Dados los valores x=3, t=0 1. Inicio 2. x=3 3. ¿x=0? NO, al paso 4 4. t=0 5. ¿t ≤ 0? SÍ, ir al paso 7 7. Fin Elaborada por: Ing. Alejandra Vargas E. de los M. alejandrav@correo.unam.mx M.C. Vicente Fuentes Gea vfg@servidor.unam.mx M.C. Cintia Quezada Reyes cintia@fi-b.unam.mx 4 PRÁCTICA DISEÑO DE PROGRAMAS Parte II Dados los valores x=5, t=7 1. Inicio 2. x=5 3. ¿x=0? NO, al paso 4 4. t=7 5. ¿t ≤ 0? NO, ir al paso 6 5 6. v = = 0.715 7 8. Fin Errores más comunes que se pueden cometer 1. Crear un diagrama de flujo sin analizar el problema previamente. 2. Dar por sentado que el diagrama de flujo está bien diseñado sin haber realizado la prueba de escritorio para verificarlo. 3. No seguir las indicaciones dadas para diseñar diagramas de flujo. 4. No realizar la prueba de escritorio tomando valores críticos, pues éstos demostrarían si el diagrama de flujo toma o no en cuenta las restricciones establecidas. Ejercicios propuestos Realizar el diagrama de flujo que resuelva el problema planteado 1. Calcular la n-ésima potencia de un número, utilizando la operación producto. 2. Calcular el n-ésimo número de Fibonacci. 3. Calcular el resto de la división entera de dos números naturales. 4. Calcular el cociente de la división entera de dos números naturales. 5. Calcular la suma de los dígitos de un número natural. Por ejemplo, 1234=10 6. Calcular la suma de los dígitos pares de un número natural. 7. Cálculo de los salarios mensuales de los empleados de una empresa, sabiendo que éstos se calculan con base en las horas semanales trabajadas y de acuerdo a un precio especificado por horas. Si se pasan de cuarenta horas semanales, las horas extraordinarias se pagarán a razón de 1.5 veces la hora ordinaria. 8. Calcular la longitud de una circunferencia a partir de su radio. (Usar la fórmula C = 2πr ). 9. Dado un número natural y dos valores i y j, devolver el número resultante de intercambia los dígitos i-ésimo y j-ésimo del número inicial. Por ejemplo, (1234,1,2)=2134, (4269,4,2)=4962. 10. Dado un número natural, devolver el número resultante de invertir el orden de sus dígitos. 11. Determinar si un número natural es capicúa (se lee igual de derecha a izquierda que de izquierda a derecha). 12. Determinar si un número natural representa un número binario, es decir, está compuesto sólo de 0's y 1's. Elaborada por: Ing. Alejandra Vargas E. de los M. alejandrav@correo.unam.mx M.C. Vicente Fuentes Gea vfg@servidor.unam.mx M.C. Cintia Quezada Reyes cintia@fi-b.unam.mx 5 PRÁCTICA DISEÑO DE PROGRAMAS Parte II 13. Calcular el área de un círculo a partir de su radio. (Usar A = 2πr 2 ). 14. Calcular el área de un rectángulo a partir de su base y altura. (Emplear A = ba ). 15. Calcular la superficie de un cilindro a partir del radio de la base y la altura. (Hacer uso de la fórmula S = 2πrh + 2πr 2 ). 16. Calcular el volumen de un cilindro a partir del radio de la base y la altura. (Hacer uso de la fórmula V = πr 2 h ). 17. Dado un valor de velocidad medido en kilómetros/hora convertirlo a metros/seg. Dado un valor de temperatura, medida en grados centígrados, convertirlo a grados Farenheit. 9 (Emplear f = 32 + c ). 5 18. Calcular la distancia entre dos puntos. (Sea P1(a1, b1) y P2(a2, b2), hacer uso de D = (a1 − a 2 ) 2 + (b1 − b2 ) 2 ) 19. Resolver la siguiente operación: R=(A+B)*B2. 20. Imprimir el primer dígito de un número: p.e. 645, imprime 6. 21. Leer 5 números dados e imprimir la suma del primero y el quinto, la resta del segundo con el cuarto, la multiplicación de los cinco. 22. Imprimir el último dígito de un número: p.e. 456, imprime 6. 23. Leer 2 números e imprimir las 4 operaciones fundamentales entre los dos, usando sólo una variable auxiliar. (En todo el ejercicio sólo debe usar 3 variables) 24. Leer dos números y verificar si el primero es múltiplo del segundo. 25. Leer un número y determinar si éste es múltiplo de 3. 26. Dadas 2 fechas, expresadas como tres números naturales, determinar si la primera es cronológicamente menor que la segunda. 27. Leer un número y verificar si es o no positivo. 28. Leer un número y verificar si es positivo, negativo o neutro. 29. Devolver el dígito menos significativo de un número natural. 30. Devolver el dígito mas significativo de un número natural. 31. Dado un número natural y un dígito, devolver el número resultante de añadir el dígito al número, como dígito menos significativo. Por ejemplo, (673,9)=6739. 32. Dado un número natural y un dígito, devolver el número resultante de añadir el dígito al número, como dígito más significativo. 33. Calcular el número de dígitos de un número natural. Calcular el dígito i-ésimo de un número natural. Por ejemplo, (1234,2)=2. 34. Leer un número y verificar si es par o impar. 35. Leer 5 números e imprimir sólo los pares. 36. Calcular las soluciones de un polinomio de segundo grado 37. Leer un número y verificar si se encuentra entre 10 y 20. 38. Leer 3 números A,B y C (A<C) y verificar si C se encuentra entre A y B. 39. Leer 2 números e imprimir el menor. 40. Leer 3 números e imprimir el mayor. 41. Calcular las soluciones de un polinomio de tercer grado. 42. Leer 3 números y mostrarlos en orden ascendente. 43. Leer 2 números y mostrar la resta del menor menos el mayor. Elaborada por: 6 Ing. Alejandra Vargas E. de los M. alejandrav@correo.unam.mx M.C. Vicente Fuentes Gea vfg@servidor.unam.mx M.C. Cintia Quezada Reyes cintia@fi-b.unam.mx PRÁCTICA DISEÑO DE PROGRAMAS Parte II 44. Leer 2 números e imprimir el menor menos el mayor. 45. Determinar si un carácter es una vocal o no. 46. Leer 2 números y verificar si son divisibles, o el resultado no existe, o es infinito. 47. Leer 10 números e imprimir sólo los positivos. Elaborada por: Ing. Alejandra Vargas E. de los M. alejandrav@correo.unam.mx M.C. Vicente Fuentes Gea vfg@servidor.unam.mx M.C. Cintia Quezada Reyes cintia@fi-b.unam.mx 7