Download Objetivos El alumno planteará, mediante un diagrama de flujo, los

Document related concepts
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. [email protected]
M.C. Vicente Fuentes Gea [email protected]
M.C. Cintia Quezada Reyes [email protected]
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. [email protected]
M.C. Vicente Fuentes Gea [email protected]
M.C. Cintia Quezada Reyes [email protected]
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. [email protected]
M.C. Vicente Fuentes Gea [email protected]
M.C. Cintia Quezada Reyes [email protected]
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. [email protected]
M.C. Vicente Fuentes Gea [email protected]
M.C. Cintia Quezada Reyes [email protected]
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. [email protected]
M.C. Vicente Fuentes Gea [email protected]
M.C. Cintia Quezada Reyes [email protected]
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. [email protected]
M.C. Vicente Fuentes Gea [email protected]
M.C. Cintia Quezada Reyes [email protected]
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. [email protected]
M.C. Vicente Fuentes Gea [email protected]
M.C. Cintia Quezada Reyes [email protected]
7