You are on page 1of 20

Servicio Nacional de Aprendizaje

DIAGRAMAS DE FLUJO Modelo de la


Mejora Continua

RESOLUCIÓN DE PROBLEMAS

La principal razón para que las personas aprendan a programar en general y los lenguajes de programación
en particular es utilizar la computadora como una herramienta para la resolución de problemas. Ayudado por
una computadora, la resolución de un problema se puede dividir en tres fases importantes:

1. Análisis del problema.


2. Diseño o desarrollo del algoritmo.
3. Resolución del algoritmo en la computadora.

El primer paso —análisis del problema— requiere que el problema sea definido y comprendido claramente
para que pueda ser analizado con todo detalle. Una vez analizado el problema, se debe desarrollar el
algoritmo —procedimiento paso a paso para solucionar el problema dado. Por último, para resolver el
algoritmo mediante una computadora se necesita codificar el algoritmo en un lenguaje de programación
BASIC, Pascal, C, java, C# etc.—, es decir, convertir el algoritmo en programa, ejecutarlo y comprobar que el
programa soluciona verdaderamente el problema. Las fases del proceso de resolución de un problema
mediante computadora se indican en la Figura1

Resolución
de
un problema

Análisis Diseño Resolución del


del del problema con
problema algoritmo la computadora

Figura 1 Resolución de un problema

ANÁLISIS DEL PROBLEMA


El propósito del análisis de un problema es ayudar al programador para llegar a una cierta comprensión de la
naturaleza del problema. El problema debe estar bien definido si se desea llegar a una solución satisfactoria.
Para poder definir con precisión el problema se requiere que las especificaciones de entrada y salida sean
descritas con detalle. Una buena definición del problema, junto con una descripción detallada de las
especificaciones de entrada y salida, son los requisitos más importantes para llegar a una solución eficaz.

El análisis del problema exige una lectura previa del problema a fin de obtener una idea general de lo que se
solicita. La segunda lectura deberá servir para responder a las preguntas:

— ¿Qué información debe proporcionar la resolución del problema?


— ¿Qué datos se necesitan para resolver el problema?

La respuesta a la primera pregunta indicará los resultados deseados o las salidas de/problema. La respuesta
a la segunda pregunta indicará qué datos se proporcionan o las entradas de/problema.

Este documento impreso se considera COPIA NO CONTROLADA Versión 2.0 F08 – 9227 – 040 Página 1 de 20
Servicio Nacional de Aprendizaje

DIAGRAMAS DE FLUJO Modelo de la


Mejora Continua

Análisis
de
Problema

Definición Especificaciones Especificaciones


del de de
Problema entrada Entrada

Figura 2.Análisis del problema

EJEMPLO 1
Leer el radio de un círculo y calcular e imprimir su superficie y circunferencia.

Análisis
Las entradas de datos en este problema se concentran en el radio del círculo. Dado que el radio puede tomar
cualquier valor dentro del rango de los números reales, el tipo de datos radio debe ser real.
Las salidas serán dos variables: superficie y circunferencia que también serán de tipo real.

Entradas: Radio del círculo (variable RADIO).


Salidas: Superficie del círculo (variable AREA).
Circunferencia del círculo (variable CIRCUNFERENCIA).
Variables: RADIO, AREA, CIRCUNFERENCIA tipo real.

DISEÑO DEL ALGORITMO


Una computadora no tiene capacidad para solucionar problemas más que cuando se le proporcionan los
sucesivos pasos a realizar. Estos pasos sucesivos que indican las instrucciones a ejecutar por la máquina
constituyen, como ya conocemos, el algoritmo.
La información proporcionada al algoritmo constituye su entrada y la información producida por el algoritmo
constituye su salida.

Los problemas complejos se pueden resolver más eficazmente con la computadora cuando se rompen
(dividen) en sub-problemas que sean más fáciles de solucionar que el original. Este método se suele
denominar divide y vencerás (divide and conquer) y consiste en dividir un problema complejo en otros más
simples. Así, el problema de encontrar la superficie y la longitud de un círculo se puede dividir en tres
problemas más simples o sub-problemas (Figura 3).

La descomposición del problema original en sub-problemas más simples y a continuación dividir estos sub-
problemas en otros más simples que pueden ser implementados para su solución en la computadora se
denomina diseño descendente (top-downdesign). Normalmente los pasos diseñados en el primer esbozo del
algoritmo son incompletos e indicarán sólo unos pocos pasos (un máximo de doce aproximadamente). Tras
esta primera descripción, éstos se amplían en una descripción más detallada con más pasos específicos.
Este proceso se denomina refinamiento del algoritmo (stepwiserefinement). Para problemas complejos,
diferentes niveles de refinamiento se necesitan con frecuencia antes de que un algoritmo claro, preciso y
completo se pueda obtener.

Este documento impreso se considera COPIA NO CONTROLADA Versión 2.0 F08 – 9227 – 040 Página 2 de 20
Servicio Nacional de Aprendizaje

DIAGRAMAS DE FLUJO Modelo de la


Mejora Continua

El problema de cálculo de la longitud y superficie de un círculo se puede descomponer en sub-problemas


más simples:
1) leer datos de entrada,
2) calcular superficie y longitud y
3) escribir resultados (datos de salida).

Figura 3. Refinamiento de un algoritmo

Las ventajas más importantes del diseño descendente son:


- El problema se comprende más fácilmente al dividirse en partes más simples denominadas módulos.
- Las modificaciones en los módulos son más fáciles.
- La comprobación del problema se puede verificar fácilmente.

Tras los pasos anteriores (diseño descendente y refinamiento por pasos) es preciso representar el algoritmo
mediante una determinada herramienta de programación: diagrama de flujo, pseudocódigo o diagrama N.S.
Así, pues, el diseño del algoritmo se descompone en las fases recogidas en la Figura 4.

Este documento impreso se considera COPIA NO CONTROLADA Versión 2.0 F08 – 9227 – 040 Página 3 de 20
Servicio Nacional de Aprendizaje

DIAGRAMAS DE FLUJO Modelo de la


Mejora Continua

Figura 4.Fases del diseño de un algoritmo

Escritura inicial del algoritmo


Como ya se ha comentado anteriormente, el sistema para describir (―escribir‖) un algoritmo consiste en
realizar una descripción paso a paso con un lenguaje natural del citado algoritmo. Recordemos que un
algoritmo es un método o conjunto de reglas para solucionar un problema.
En cálculos elementales estas reglas tienen las siguientes propiedades:

a) Deben estar seguidas de alguna secuencia definida de pasos hasta que se obtengan un resultado
diferente.
b) Sólo puede ejecutarse una operación a la vez.

El flujo de control usual de un algoritmo es secuencial; consideremos el algoritmo que responde a la pregunta:
¿Qué hacer para ver la película ―Tiburón‖?
La respuesta es muy sencilla y puede ser descrita en forma de algoritmo general de modo similar a:
ir al cine
comprar una entrada (billete o ticket)
ver la película
regresar a casa

El algoritmo consta de cuatro acciones básicas, cada una de las cuales debe ser ejecutada antes de realizar
la siguiente. En términos de computadora, cada acción se codificará en una o varias sentencias que ejecutan
una tarea particular.
El algoritmo descrito es muy sencillo; sin embargo, como ya se ha indicado en párrafos anteriores, el
algoritmo general se descompondrá en pasos más simples en un procedimiento denominado refinamiento
sucesivo, ya que cada acción puede descomponerse a su vez en otras acciones simples. Así, por ejemplo, un
primer refinamiento del algoritmo ―ir al cine ― se puede describir de la forma siguiente:

1. inicio
2. ver la cartelera de cines en el periódico
3. sino proyectan ―Tiburón‖
entonces decidir otra actividad
si proyectan «Tiburón» ir al cine
si hay cola entonces ponerse en ella
mientras haya personas delante suya hacer
avanzar en la cola
si existen asientos disponibles entonces
comprar una entrada
encontrar el asiento correspondiente

Este documento impreso se considera COPIA NO CONTROLADA Versión 2.0 F08 – 9227 – 040 Página 4 de 20
Servicio Nacional de Aprendizaje

DIAGRAMAS DE FLUJO Modelo de la


Mejora Continua

mientras proyectan la película hacer ver la película


sino retirarse de la taquilla
abandonar el cine
volver a casa
fin

En el algoritmo anterior existen diferentes aspectos a considerar. En primer lugar, ciertas palabras reservadas
se han escrito deliberadamente en negrita (mientras, sino, etc.). Estas palabras describen las estructuras de
control fundamentales y procesos de toma de decisión en el algoritmo. Estas incluyen los conceptos
importantes de selección (expresadas por si-entonces-sino if-then-else) y de repetición (expresadas con
mientras-hacer o a veces repetir-hasta e iterar-fin_iterar, en inglés while-do y repeat-until) que se encuentran
en casi todos los algoritmos, especialmente los de proceso de datos. La capacidad de decisión permite
seleccionar alternativas de acciones a seguir o bien la repetición una y otra vez de operaciones básicas.

si proyectan la película seleccionada ir al cine


sino ver la televisión, ir al fútbol o leer el periódico
mientras haya personas en la cola, ir avanzando repetidamente hasta llegar a la taquilla

Otro aspecto a considerar es el método elegido para describir los algoritmos: empleo de indentación
(sangrado o justificación) en escritura de algoritmos. En la actualidad, es tan importante la escritura de
programas como su posterior lectura. Ello se facilita con la indentación de las acciones interiores a las
estructuras fundamentales citadas: selectivas y repetitivas. A lo largo de todo el libro la indentación o
sangrado de los algoritmos será norma constante.

RESOLUCION DEL PROBLEMA MEDIANTE COMPUTADORA

Una vez que el algoritmo está diseñado y representado gráficamente mediante una herramienta de
programación (diagrama de flujo, pseudocódigo o diagrama N-S) se debe pasar a la fase de resolución
práctica del problema con la computadora.
Esta fase se descompone a su vez en las siguientes subfases:
1. Codificación del algoritmo en un programa.
2. Ejecución del programa.
3. Comprobación del programa.

Figura 5. Resolución del problema mediante computadora

En el diseño del algoritmo, éste se describe en una herramienta de programación tal como un diagrama de
flujo, diagrama N-S o pseudocódigo. Sin embargo, el programa que implementa el algoritmo debe ser escrito
en un lenguaje de programación y siguiendo las reglas gramaticales o sintaxis del mismo. La fase de

Este documento impreso se considera COPIA NO CONTROLADA Versión 2.0 F08 – 9227 – 040 Página 5 de 20
Servicio Nacional de Aprendizaje

DIAGRAMAS DE FLUJO Modelo de la


Mejora Continua

conversión del algoritmo en un lenguaje de programación se denomina codificación, ya que el algoritmo


escrito en un lenguaje específico de programación se denomina código.

Tras la codificación del programa, deberá ejecutarse en una computadora y a continuación de comprobar los
resultados pasar a la fase final de documentación.

REPRESENTACION GRÁFICA DE LOS ALGORITMOS


Para representar un algoritmo se debe utilizar algún método que permita independizar dicho algoritmo del
lenguaje de programación elegido. Ello permitirá que un algoritmo pueda ser codificado indistintamente en
cualquier lenguaje. Para conseguir este objetivo se precisa que el algoritmo sea representado gráfica o
numéricamente, de modo que las sucesivas acciones no dependan de la sintaxis de ningún lenguaje de
programación, sino que la descripción pueda servir fácilmente para su transformación en un programa, es
decir, su codificación.

Los métodos usuales para representar un algoritmo son:


1. Diagrama de flujo.
2. Diagrama N-S (Nassi-Schneiderman).
3. Lenguaje de especificación de algoritmos: pseudocódigo.
4. Lenguaje español.
5. Fórmulas.

Los métodos 4 y 5 no suelen ser fáciles de transformar en programas. Una descripción en español narrativo
no es satisfactoria, ya que es demasiado prolija y generalmente ambigua. Una fórmula, sin embargo, es buen
sistema de representación. Por ejemplo, la fórmula para la solución de una ecuación cuadrática es un medio
resumido de expresar el procedimiento algorítmico que se debe ejecutar para obtener las raíces.

b  b 2  4ac b  b 2  4ac
x1  x2 
2a 2a
significa:
1. Eleve al cuadrado b.
2. Tome a; multiplicar por c; multiplicar por 4.
3. Restar el resultado de 2 del resultado 1, etc.

Sin embargo, no es frecuente que un algoritmo pueda ser expresado por medio de una simple fórmula.

Diagramas de flujo
Un diagrama de flujo (flowchart) es una de las técnicas de representación de algoritmos más antigua y a la vez
más utilizada, aunque su empleo ha disminuido considerablemente, sobre todo desde la aparición de
lenguajes de programación estructurados. Un diagrama de flujo es un diagrama que utiliza los símbolos
(cajas) estándar mostrados en la Figura 6 y que tiene los pasos del algoritmo escritos en esas cajas unidas
por flechas, denominadas líneas de flujo, que indican la secuencia en que se deben ejecutar.

Este documento impreso se considera COPIA NO CONTROLADA Versión 2.0 F08 – 9227 – 040 Página 6 de 20
Servicio Nacional de Aprendizaje

DIAGRAMAS DE FLUJO Modelo de la


Mejora Continua

SIMBOLO DESCRIPCION

Indica el inicio y el final de nuestro diagrama de flujo.

Indica la entrada y salida de datos.

Un paso o tarea del proceso. Una descripción breve del paso


se presenta dentro del símbolo rectangular.

Toma o nodo de verificación o de decisión. Este diamante


indica un punto de la rama en el proceso. La descripción está
escrita dentro del símbolo, generalmente en la forma de una
pregunta. La respuesta a la pregunta determina el camino
que debe tomarse desde el símbolo de decisión. Cada
camino está identificado para que corresponda a una
respuesta.

Conector para unir el flujo a otra parte del diagrama

Líneas de flujo

Envía datos a la impresora

Indica la salida de información en la pantalla o monitor.

Figura 6. Símbolos básicos de diagramas de flujo

Este documento impreso se considera COPIA NO CONTROLADA Versión 2.0 F08 – 9227 – 040 Página 7 de 20
Servicio Nacional de Aprendizaje

DIAGRAMAS DE FLUJO Modelo de la


Mejora Continua

La figura 7 es un diagrama de flujo básico:

Figura 7 Diagrama de flujo.

El diagrama citado (Figura 7) representa la resolución de un programa que deduce el salario neto de un
trabajador a partir de la lectura del nombre, horas trabajadas, precio de la hora, y sabiendo que los impuestos
aplicados son el 10 por 100 sobre el salario bruto.
Los símbolos estándar normalizados por ANSI (abreviatura de American NationalStandardsInstitute) son muy
variados. Los símbolos más utilizados representan:

— proceso
— decisión
— conectores
— fin
— entrada/salida
— dirección del flujo

En un diagrama de flujo:
a) Existe una caja etiquetada ―inicio‖, que es de tipo elíptico;
b) Existe otra caja etiquetada ―fin‖ de igual forma que en a;
c) Si existen otras cajas, normalmente son rectangulares, tipo rombo o paralelogramo (el resto de las
figuras se utilizan sólo en diagramas de flujo generales o de detalle y no siempre son imprescindibles).

Se puede escribir más de un paso del algoritmo en una sola caja rectangular. El uso de flechas significa que
la caja no necesita ser escrita debajo de su predecesora. Sin embargo, abusar demasiado de esta flexibilidad
conduce a diagramas de flujo complicados e ininteligibles.

Este documento impreso se considera COPIA NO CONTROLADA Versión 2.0 F08 – 9227 – 040 Página 8 de 20
Servicio Nacional de Aprendizaje

DIAGRAMAS DE FLUJO Modelo de la


Mejora Continua

Símbolos de diagramas de flujo


Cada símbolo visto anteriormente indica el tipo de operación a ejecutar y el diagrama de flujo ilustra
gráficamente la secuencia en la que se ejecutan las operaciones.
— Las líneas de flujo (  ) representan el flujo secuencial de la lógica del programa.
— Un rectángulo ( ) significa algún tipo de proceso en la computadora, es decir, acciones a realizar
(sumar 2 números, calcular la raíz cuadrada de un número, etcétera).
— El paralelogramo (  ) es un símbolo de entrada/salida que representa cualquier tipo de entrada o
salida desde el programa o sistema; por ejemplo, entrada de teclado, salida en impresora o pantalla,
etc.
— El símbolo rombo ( ) es una caja de decisión que representa respuestas Sí/no o bien diferentes
alternativas 1, 2, 3, 4,..., etc.
— Cada diagrama de flujo comienza y termina con un símbolo terminal ( ).
— Un pequeño círculo ( O ) es un conector y se utiliza para conectar caminos, tras roturas previas del
flujo del algoritmo.

EJEMPLO 2

Calcular la media de una serie de números positivos suponiendo que los datos se leen desde una terminal. Un
valor de cero como entrada indicará que se ha alcanzado el final de la serie de números positivos.
El primer paso a dar en el desarrollo del algoritmo es descomponer el problema en una serie de pasos
secuenciales. Para calcular una media se necesita sumar y contar los valores.
Por consiguiente, nuestro algoritmo en forma descriptiva sería:

1. Inicializar contador de número C, y variable suma, S.


2. Leer un número.
3. Si el número leído es cero:
• calcular la media;
• imprimir la media;
• fin del proceso.
Si el número leído no es cero.
• calcular la suma;
• incrementar en un contador de números;
• ir al paso 2.
4. Fin.

El refinamiento del algoritmo conduce a los pasos sucesivos necesarios para realizar las operaciones de
lectura de datos, verificación del último dato, suma y media de los datos.

Este documento impreso se considera COPIA NO CONTROLADA Versión 2.0 F08 – 9227 – 040 Página 9 de 20
Servicio Nacional de Aprendizaje

DIAGRAMAS DE FLUJO Modelo de la


Mejora Continua

Ejemplo 3. Diagrama de flujo sencillo con los pasos a seguir si una lámpara no funciona.

Este documento impreso se considera COPIA NO CONTROLADA Versión 2.0 F08 – 9227 – 040 Página 10 de 20
Servicio Nacional de Aprendizaje

DIAGRAMAS DE FLUJO Modelo de la


Mejora Continua

Reglas para la creación de Diagramas

1. Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha.
2. Los símbolos se unen con líneas, las cuales tienen en la punta una flecha que indica la dirección que
fluye la información procesos, se deben de utilizar solamente líneas de flujo horizontal o verticales
(nunca diagonales).
3. Se debe evitar el cruce de líneas, para lo cual se quisiera separar el flujo del diagrama a un sitio
distinto, se pudiera realizar utilizando los conectores. Se debe tener en cuenta que solo se vana utilizar
conectores cuando sea estrictamente necesario.

Incorrecto Correcto

4. No deben quedar líneas de flujo sin conectar


5. Solo debe llegar una sola línea de flujo a un símbolo. Pero pueden llegar muchas líneas de flujo a otras
líneas., a excepción del símbolo final.

Incorrecto Correcto
6. Solo los símbolos de decisión pueden y deben tener más de una línea de flujo de salida.

Este documento impreso se considera COPIA NO CONTROLADA Versión 2.0 F08 – 9227 – 040 Página 11 de 20
Servicio Nacional de Aprendizaje

DIAGRAMAS DE FLUJO Modelo de la


Mejora Continua

Estructuras Básicas

Estructura Secuencia
Está formada por varios bloques uno a continuación del otro. Desde el punto de vista gráfico, la estructura
secuencia se representa como un conjunto de bloques dispuestos en forma vertical, con la salida de cada
uno conectado a la entrada del siguiente. Esto significa que las acciones representadas por los respectivos
bloques se ejecutadas una después de la otra en estricto orden.

Ejemplo.
La construcción de una casa requieres la ejecución de un conjunto de acciones que podría representarse
con un diagrama de flujo como sigue:

Inicio

Medición Terreno

Hacer planos

Preparación terreno

Hacer cimientos
Inicio.
Medir Terreno
Hacer planos
Ductos sanitarios Preparar terrenos
Hacer cimientos
Hacer ductos sanitarios
Hacer Muros Hacer muros
Hacer techo
Hacer conexiones eléctricas
Hacer Techo Realizar acabados
Fin

Conexiones eléctricas

Realizar Acabados

Fin

Este documento impreso se considera COPIA NO CONTROLADA Versión 2.0 F08 – 9227 – 040 Página 12 de 20
Servicio Nacional de Aprendizaje

DIAGRAMAS DE FLUJO Modelo de la


Mejora Continua

Estructuras de decisión.
Gráficamente está formada por una toma de decisión, dos bloques y un nodo con dos entradas y un
salida. Cuando el proceso entra a la estructura, ingresa por el nodo de decisión donde se consulta el
cumplimiento de una condición. Si la condición se cumple, el flujo continúa por uno de los dos caminos que
conduce a realizar la acción correspondiente Si la condición no se cumple, el proceso continúa por el otro
camino.
Después de realizar cualquiera de las dos acciones la salida de la estructura es única, a través de l nodo
donde se unen los dos caminos.

Ejemplo1.
Cada vez que salimos de la casa examinamos los pronósticos del tiempo para decidir sobre qué clase de
ropa usaremos en la calle. Podríamos representarlo de la siguiente manera.
Salir de la Casa

Salir de la casa

Pronóstico SI Sí pronóstico es frió entonces


frío? Usar ropa ligera

NO Sino entonces
Usar ropa abrigada
Usar ropa ligera Usar ropa abrigada

Uno de los boques de la estructura puede ser vacío (no realizar ninguna operación).

Opción A.
Si condición entonces
Condición
SI
Condición
SI Realizar proceso 2

NO NO

Opción B.
Proceso 2 Proceso 1
Si condición

Si no entonces
Realizar Proceso 2

A B

Este documento impreso se considera COPIA NO CONTROLADA Versión 2.0 F08 – 9227 – 040 Página 13 de 20
Servicio Nacional de Aprendizaje

DIAGRAMAS DE FLUJO Modelo de la


Mejora Continua

Ejemplo 2:
Un sensor de temperatura contra incendios en una bodega, está encargado de dar la alarma en caso de que
la temperatura sobrepase cierto límite previamente establecido.
El diagrama de flujo que describe el funcionamiento del sensor se muestra a continuación

Temperatura NO
< Límite?
Si temperatura es menor que límite entonces
No haga nada
SI
Si no entonces
Activar Alarma
Activar Alarma

Estructura Mientras (While).


Dentro de la programación de una tarea no solamente debemos preparar acciones sucesivas que difieren
unas de otras, sino que muy a menudo es necesario repetir una misma acción cierto número de veces o
hasta que cambien ciertas circunstancias que son modificadas por las acciones mismas. Por ejemplo si uno
se encuentra nadando en un lago y desea salir de él, debe bracear hasta alcanzar la orilla. Mentalmente uno
se puede programar de la siguiente manera.

Mientras no llegue a la orilla haga

NO
Dar una brazada
LLegué a
la orilla?
Fin mientras

SI

Dar una brazada

Cada vez que se da un brazada se retorna a la verificación de la condición, así, si estoy separado de la
orilla, doy una brazada tantas veces como sea necesario hasta que la condición deje de cumplirse.
En forma general la condición mientras tiene la siguiente estructura:
Este documento impreso se considera COPIA NO CONTROLADA Versión 2.0 F08 – 9227 – 040 Página 14 de 20
Servicio Nacional de Aprendizaje

DIAGRAMAS DE FLUJO Modelo de la


Mejora Continua

NO
Condición?

SI

Proceso

En el gráfico se observa que si al consultar la condición por primera vez, y si esta no se cumple, entonces
el proceso o tarea descrita en el bloque no se ejecuta ni una sola vez.

Refinamiento

Las tres estructuras de programación son en realidad todo lo que se requiere para describir cualquier
algoritmo, por esto se llaman estructuras básicas.Con estas estructuras se han desarrollado combinaciones,
las cuales resultan muy útiles a la hora de programas.

Cuando se inicia la labor de creación de un programa o una tarea, todo es una gran idea global cuyo
contenido hay que explicar a medida que se avanza. En el diagrama de flujo, cada proceso se representa
por medio de un bloque que tiene entradas y salida, además se incluye las tareas que se van a realizar.
Tomando como ejemplo el algoritmo para la construcción de una casa, el bloqueCimiento representa todas
las tares necesarias para hacer los cimientos de la casa.

A su vez este proceso se puede detallar más, describiendo cada una de las tareas que se deben realizar.
Entonces el bloque se refina mostrando como contenido una secuencia de bloques, tomas decisiones y
operaciones necesarias para completar el procedimiento.En la siguiente figura se muestras más detallado el
proceso mencionado.
Demarcar cimiento

Hacer excavaciones

Cimientos Instalar Estructuras Cimientos

Vaciar concreto

Fraguar

Este documento impreso se considera COPIA NO CONTROLADA Versión 2.0 F08 – 9227 – 040 Página 15 de 20
Servicio Nacional de Aprendizaje

DIAGRAMAS DE FLUJO Modelo de la


Mejora Continua

Estructuras repetición (Do-While)

Cuando se utiliza la estructura mientras se debe tener en cuenta que antes de ejecutar el procedimiento, se
consulta si se cumple la condición correspondiente en la toma de decisión. En ocasiones es necesario que se
ejecute el procedimiento antes de consultar la condición, esta estructura se denomina repetir-hasta ó Do-
While y tiene la siguiente estructura en diagrama de flujo:

Do-while

Haga

Proceso
Proceso
Mientras condición se verdadera repetir

NO
Condición?

SI

Para considerar mejor esta estructura consideremos el siguiente ejemplo: supongamos que se desea realizar
compras y se lleva cierta cantidad de dinero para dicha labor; la primera compra se realiza sin verificar si hay
dinero disponible y las siguientes antes de realizar los gastos se verifica si queda dinero. Esta condición se
realiza repetidamente hasta que no hay más dinero. El diagrama que describe esta situación se muestra a
continuación.

Haga

Hacer Compra Realizar compras

Mientras hay dinero repetir


SI
Hay
Dinero?

NO

Esta estructura es derivada de la estructura Mientras como se muestra a continuación.

Este documento impreso se considera COPIA NO CONTROLADA Versión 2.0 F08 – 9227 – 040 Página 16 de 20
Servicio Nacional de Aprendizaje

DIAGRAMAS DE FLUJO Modelo de la


Mejora Continua

Hacer Compra

SI
Hay
dinero?

NO Hacer Compra

Las dos estructura son semejantes pero la primera es más eficiente que las segunda, ya que en la primera
solo hay un proceso a ejecutar mientras en la segunda dos, además , desde el punto de vista de
programación la primera está ocupando menos espacio en memoria.

Estructura Iteración (For).

A menudo es necesario hacer que un proceso se repita un número de veces, conocido de antemano. Una
manera de hacerlo es por medio de estructuras básicas en la cual se incluye el uso de una variable de
control o contador, la cual, a partir de cierto valor inicial se incrementa cada vez que se cumple un ciclo. Aquí
el contenido de la variable o contador se modifica por medio de un proceso de asignación, que consiste en
reemplazar el valor existente por uno nuevo. La consulta del contenido de una variable no altera su valor. Es
estructura en programación de denomina For. Un ciclo que repite un proceso o acción y que utiliza una
variable de control se muestra a continuación.

Contador=0

Contador ← 0
Mientras contador sea menor a 10 Haga
Proceso 1
SI Contador ← Contador + 1
Contador <
10? Repetir

NO Proceso

Contador=Cont ador*+1

Este documento impreso se considera COPIA NO CONTROLADA Versión 2.0 F08 – 9227 – 040 Página 17 de 20
Servicio Nacional de Aprendizaje

DIAGRAMAS DE FLUJO Modelo de la


Mejora Continua

En este ejemplo el proceso se repite hasta que el contador sea menor que 10. Cada vez que se ejecuta el
proceso o tarea el contador se incrementa en uno, luego se verifica la condición, si es menor de 10 se
ejecuta de nuevo, de contrario termina el ciclo. En total el proceso se repite 10 veces. En la siguiente tabla se
muestra como va cambiando el valor de contador y la evaluación de la condición, además del número
iteraciones que se realizan.

Condición Iteracción Contador


0 0
0<10? Si 1 0+1=1
1<10? Si 2 1+1=2
2<10? Si 3 2+1=3
3<10? Si 4 3+1=4
4<10? Si 5 4+1=5
5<10? Si 6 5+1=6
6<10? Si 7 6+1=7
7<10? Si 8 7+1=8
8<10? Si 9 8+1=9
9<10? Si 10 9+1=10
10<10? No FIN

El mismo diagrama de flujo se puede escribir en una forma equivalente, mas abreviada, que permite
introducir la definición de la estructura iteración.
For

Contador =0 has ta 9
Para contador ← 9 hasta 9 hacer

Realizar proceso
Proceso

Fin para

Estructura Casos (Switch-Case)


Cuando se presenta la necesidad de tomar una decisión, las alternativas no siempre se limitan a los casos
verdadero y falso o blanco y negro, sino que es corriente encontrar un conjunto de posibilidades más amplio.
Por ejemplo si se desea organizar las cartas de una baraja por pintas, cada una puede pertenecer a una de
las cuatro posibilidades: Diamante, Corazón, Picas, Trébol. Esta situación se puede expresar a través de las
estructuras básicas por medio del refinamiento sucesivo a partir de una decisión inicial como se muestra a
continuación.

Este documento impreso se considera COPIA NO CONTROLADA Versión 2.0 F08 – 9227 – 040 Página 18 de 20
Servicio Nacional de Aprendizaje

DIAGRAMAS DE FLUJO Modelo de la


Mejora Continua

NO
Diamante?

SI

NO
Colocar en el Corazón?
primer Montón

SI

NO
Colocar en el Picas?
segundo Montón

SI

Colocar en el Colocar en el
tercer Montón cuarto Montón

Si las alternativas son numerosas, el diagrama tendrá gran dificultad en la lectura. Para evitar esto se
introduce la alternativa casos la cual es mas simple y además facilita percibir que todas las alternativas se
encuentran en igualdad. A continuación se muestran dos formas de representa ésta estructura.

NO NO NO
Diamante? Corazón? Picas?

SI SI SI

Colocar en el Colocar en el Colocar en el Colocar en el


primer Montón segundo Montón tercer Montón cuarto Montón

Este documento impreso se considera COPIA NO CONTROLADA Versión 2.0 F08 – 9227 – 040 Página 19 de 20
Servicio Nacional de Aprendizaje

DIAGRAMAS DE FLUJO Modelo de la


Mejora Continua

SI Colocar en el
Diamante?
primer Montón

NO

SI Colocar en el
Corazón?
segundo Montón

NO

SI Colocar en el
Picas?
tercer Montón

NO

Colocar en el
cuarto Montón

Se puede dar el caso que al evaluar todas las condicione, ninguna cumpla con la comparación, para estos
casos se puede optar en no realizar ningún procedimiento, ó colocar un condición en la cual se evalúe esa
condición

Tomado con fines educativos de:


Fundamentos de Programación. Algoritmos y Estructuras de Datos. [Joyanes]

Desarrollado por:
Andrey Julián Rentería Scarpetta

Este documento impreso se considera COPIA NO CONTROLADA Versión 2.0 F08 – 9227 – 040 Página 20 de 20

You might also like