DIAGRAMAS DE FLUJO DE DATOS (DFDs)
INTRODUCCIÓN A LOS DIAGRAMAS DE FLUJO
Algunos estudiantes que están iniciándose en este maravilloso mundo de la programación, este post va para ellos.
Primero tenemos que tomar en
cuenta el proceso de la información mediante el siguiente gráfico:
Cuando desarrollamos un algoritmo
o estamos ante un problema del cual queremos buscar solución mediante un
computador, lo primero es que tenemos que ingresar datos para luego ser
clasificados y procesados, éstos se convierten en información útil al usuario
para la toma de decisiones.
Primer ejemplo:
Algoritmo Preparación
Leer
agua, café, azúcar
Si
¿agua no está hervida? entonces
hervir
agua
Fin
Si
Escribir
“¿cuánto de azúcar desea?”
Leer
cantidad de azúcar
Preparar
taza de café
Fin Algoritmo
Para preparar una taza de café necesitamos obtener agua,
café y azúcar (ENTRADA), luego tenemos una expresión lógica que si el agua no
está hervida entonces hay q hervirla. Lanzamos un mensaje o pregunta ¿Cuánto de
azúcar desea? (SALIDA), obtenemos ese dato como cantidad de azúcar (ENTRADA) y
preparamos con todo lo que obtuvimos una deliciosa taza de café (PROCESO).
Este ejemplo no sería aconsejable programarlo en
una computadora, veamos un ejemplo que podemos computar.
Otro ejemplo:
Algoritmo Sumar
Escribir "Ingrese dos números:"
Escribir "Ingrese dos números:"
Leer
numeroA, numeroB
suma
= numeroA + numeroB
Escribir "La suma es: "
Escribir
suma
Fin Algoritmo
En este ejemplo obtenemos dos números, numeroA y
numeroB (ENTRADA), luego los procesamos o hacemos la suma de ambos números y
asignamos a una variable (PROCESO), posteriormente mostramos en pantalla la
suma de ambos números (SALIDA).
CONCEPTO Y SIMBOLOGÍA
Es la representación gráfica de un algoritmo (secuencia
de pasos en la búsqueda de una solución).
Para elaborar un diagrama de clases, se emplean
símbolos estandarizados para representar cada tipo de operación y flechas para
representar el flujo en que se deben ejecutar los pasos.
ESTRUCTURAS SECUENCIALES
ESTRUCTURAS SECUENCIALES
Ejemplo de una estructura de control en secuencia:
ALGORITMO
|
DIAGRAMA DE FLUJO
|
|
Nro.
|
Paso
|
|
1
|
Inicio
|
|
2
|
Leer los valores de a y b
|
|
3
|
Calcular la suma (suma = a + b)
|
|
4
|
Imprimir/ Mostrar suma
|
|
5
|
Fin
|
EJEMPLOS DE ALGORITMOS CON SUS RESPECTIVOS DIAGRAMAS DE FLUJO
Estructuras de Control Secuencial
Empecemos con ejercicios fáciles para ir entendiendo el uso de diagramas de flujo, nuestro primer ejercicio y siguiendo el ejemplo al principio de este post será la suma, resta, multiplicación, división, módulo (residuo) y potencia de dos números.
Ejercicio 001.
ALGORITMO
|
|
Nro.
|
Paso
|
1
|
Inicio del programa
|
2
|
Mostrar en pantalla el mensaje:
"Ingrese 2 números:"
|
3
|
Leer los valores de a y b
|
4
|
Calcular la suma
(suma = a + b) |
5
|
Calcular la resta
(resta = a - b) |
6
|
Calcular el producto
(producto = a * b) |
7
|
Calcular la división
(division = a / b) |
8
|
Calcular el residuo
(modulo = a MOD b) |
9
|
Calcular la potencia
(potencia= a ^ b) |
10
|
Mostrar o imprimir en pantalla cada una
de las variables calculadas como:
suma resta producto division residuo potencia |
11
|
Fin del programa
|
Este ejercicio se puede resumir de la siguiente manera:
Cabe aclarar que en este ejercicio sería bueno controlar la división, recuerden que no se puede dividir un número entre 0. Podemos controlarlo con el símbolo de rombo (expresión lógica), pero en ejercicios más adelante (próximas entregas) veremos la estructura de control if .. then (si .. entonces).
Ejercicio 002.
Realizar un algoritmo que proporcione el promedio de 4 números leídos por teclado.
Supongamos:
a = 3 (leer por teclado)
b = 4 (leer por teclado)
c = 7 (leer por teclado)
d = 2 (leer por teclado)
PROMEDIO = (a+b+c+d) / 4 = 16/4 = 4
Mostrar en pantalla: Promedio: 4
Ejercicio 003.
Realizar un algoritmo que permita intercambiar dos números leídos por teclado.
Supongamos:
x = 17 (leído por teclado)
y = 43 (leído por teclado)
Muchos consideran esta lógica a = b y b = a, pues no está bien porque perderíamos el valor de a y ambas variables tendrían el valor de 43. Para la solución de este ejercicio necesitamos una variable auxiliar, donde asignamos el valor de a a aux para no perder su valor, a es igual al valor de b y por último b toma el valor que guardamos en aux.
Ejercicio 004.
Desarrollar un algoritmo que realice la conversión de kilogramos a libras.
Sabiendo que 1 kilo es equivalente a 2.20462262 libras entonces podemos diagramar de la sgte. manera:
Ejercicio 005.
Realizar un algoritmo que calcule el valor de la hipotenusa en un cuadrado rectángulo según el Teorema de Pitágoras.
El teorema de Pitágoras es c2
= a2 + b2
donde c es la hipotenusa, a y b son los catetos.
despejando tenemos:
El diagrama de flujo es el sgte.:
Ejercicio 006.
Desarrollar un algoritmo para calcular el área de un circulo, sabiendo que:
Área del círculo = PI * radio2.
Área del círculo = PI * radio2.
Ejercicio 007.
Área del cilindro = 2 * PI * radio * (radio + h).
Ejercicio 008.
Ejercicio 009.
Diseñar un DFD para calcular el área de un triángulo equilátero, triángulo rectángulo y triángulo isósceles.
Ejercicio 010.
Calcular la pendiente de una recta (m) para dos puntos distintos P1(x1, x2) y P2(y1, y2) de la recta, sabiendo que:
Aquí podrás ver los códigos fuentes de los DFDs secuenciales.
Nota. Hasta ahora he plasmado diagramas de flujo que no tienen ninguna estructura de control if...else, while, do-while y for, en las siguientes entregas veremos más ejercicios con estructuras de control condicionales y repetitivas.
Si alguien quiere que le ayude con la solución de algún algoritmo, pues comente que yo responderé.
Gracias men, muy bueno el post.
ResponderEliminarOye, gran explicación sobre el uso de diagramas de flujo en los algoritmos. Puede utilizar nuestra herramienta de diagramas de flujo para crearlos en línea. Es fácil de usar y tiene muchas plantillas de diagramas de flujo para que pueda empezar rápidamente. Además, puedes compartirlo y obtener retroalimentación sobre tu algoritmo.
ResponderEliminarEs una explicacion muy buena y entendible, hay formade descaragar el contenido? Muchas gracias.
ResponderEliminarBuen día, gracias excelente aporte me ha ayudado mucho!!
ResponderEliminarEstoy comenzando y este post me ayudó muchísimo. Lo voy a leer hasta que sueñe con esto. Gracias
ResponderEliminar