2.Representación gráfica de algoritmos.

2.1.Introducción.
2.2.Diagramas de flujo: Organigramas.
2.3.Diagramas de flujo del proceso: Ordinogramas.
2.4.Técnicas de programación estructurada.
2.5.Ejercicios.

2.1.Introducción.

Durante las fases de análisis de un problema, se hace necesaria la representación de las operaciones que el programa debe realizar y el orden en que se han de ejecutar.

Las representaciones más usadas son los flujogramas, los diagramas NS y el pseudocódigo.

En todo caso el algoritmo representado ha de ser independiente del lenguaje de programación.

Cuando la representación es gráfica, se obtienen los diagramas de flujo y pueden ser de dos tipos : Diagramas de flujo del sistema (Organigramas) o Diagramas de flujo del proceso (Ordinogramas).

2.2.Diagramas de flujo: Organigramas.

Los Organigramas describen el flujo de datos entre los distintos soportes que van a intervenir en el proceso. Se plantean de forma general, indicando los datos de entrada, el nombre de los programas o procesos, el soporte de los resultados y las líneas de flujo de datos a través de los procesos.

2.2.1.Símbolos.

Se utilizan una serie de símbolos que permiten representar los soportes de entrada y salida de datos, procesos y líneas de flujo.

2.2.1.1.Símbolos de entrada.

Pueden ser el teclado o de tipo genérico, en cuyo caso se especificará el nombre.

Entrada

2.2.1.2.Símbolos de salida.

Los soportes de salida de datos son la impresora y el monitor.

Salida

2.2.1.3.Símbolos de entrada/salida.

Hay soportes que permiten tanto la entrada como la salida de datos, en general, son soportes de almacenamiento de información.

E/S

2.2.1.4.Símbolos de procesos.

Son los que representan las operaciones de procesado de la información.

Procesos

2.2.1.5. Líneas y símbolos de flujo.

Indican el sentido de movimiento de la información.

Flujo

2.2.2.Normas de representación.

Existen unas reglas básicas para que la representación de los algoritmos de forma clara y sin ambigüedades, las más básicas son las siguientes:

  • Los soportes de entrada de datos se situarán en la parte superior.
  • En la parte central se situará el símbolo del proceso, con la indicación del tipo de programa.
  • Los soportes de entrada/salida se situarán en ambos lados del símbolo del proceso.
  • Los soportes de salida se situarán en la parte inferior.
  • El flujo de datos irá de arriba abajo y de izquierda a derecha.
  • Se debe procurar que el resultado sea simétrico, siempre que el mismo lo permita.

2.2.3. Ejemplos.

Ejemplo1

Digitalización de fotografías:
Se utiliza un scanner para digitalizar las fotografías, y mediante el teclado de suministran los datos de cada una (nombre, tema, etc...). Se ordenan, se graban en disco y se visualizan los resultados.

Ejemplo2

2.3.Diagramas de flujo del proceso: Ordinogramas.

Es una notación gráfica para implementar algoritmos. Se basa en la utilización de unos símbolos gráficos que denominamos cajas, en las que escribimos las acciones (procesos) que tiene que realizar el algoritmo.

Las cajas están conectadas entre sí por líneas y eso nos indica el orden en el que tenemos que ejecutar las acciones.

En todo algoritmo siempre habrá una caja de inicio y otra de fin, para el principio y final del algoritmo.

2.3.1.Símbolos.

Representan los distintos tipos de operaciones en el programa, los puntos de decisión, los comentarios y las líneas de flujo y conexión.

2.3.1.1.Símbolos de operación.

Permiten distinguir el tipo de operación que se realiza en el proceso en cada momento.

InicioPrincipio y fin: Dentro del símbolo irá la palabra inicio o fin del algoritmo.

ProcesoSímbolo de proceso: Indica la acción que tiene que realizar el ordenador. Dentro escribimos la acción.

E/SRepresenta las acciones de entrada y salida. Dentro colocaremos las acciones de lectura y escritura.

SubprogramaSubprograma: Dentro se coloca el nombre del subprograma al que se llama.

2.3.1.2.Símbolos de comentario.

Permiten incluir informaciones y aclaraciones al algoritmo, para facilitar la comprensión del mismo. Es una aclaración para entender mejor el código, pero no es parte del código, no se ejecuta.

ComentarioSe suele representar por medio de una línea de trazos, que parte del módulo al que se refiere el comentario.

2.3.1.3.Símbolos de decisión.

Permiten la toma de decisiones por parte del programa bifurcando el flujo dependiendo de una condición.

CondicionalLas condiciones serán del tipo A>B, A=b, A<b, etc...

2.3.1.4.Símbolos de flujo y conexión.

Los símbolos de flujo son los que indican el sentido de flujo del programa y los de conexión se utilizan para conectar las líneas de flujo.


Flujo

En los conectores se suele incluir un número de correspondencia para indicar la continuidad del flujo.

2.3.2.Normas de representación.

Las reglas más importantes son:

  • El comienzo del programa debe situarse en la parte superior y el final en la inferior, situando los símbolos de INICIO y FIN.
  • El flujo del programa irá de arriba abajo y de izquierda a derecha.
  • Se procurará evitar cruces entre las líneas de flujo.
  • Deben incluirse los comentarios justos para facilitar la legibilidad del ordinograma.
  • Pueden emplearse varias hojas utilizando los conectores adecuados.
  • Las indicaciones dentro de los símbolos deben ser independientes del lenguaje de programación.
  • A cada símbolo excepto INICIO llegará una sola línea de flujo.
  • De cada símbolo excepto los de decisión y FIN saldrá una única línea de flujo.
  • El ordinograma debe ser claro, sin ambigüedades y lo más simétrico posible.

2.3.3.Ejemplos.

Ejemplo

2.4.Técnicas de programación estructurada.

Se basa en escribir programas utilizando exclusivamente tres tipos de estructuras básicas: Secuenciales, condicionales y repetitivas.

2.4.1.Estructura secuencial.

Secuencial Las acciones se ejecutan de forma encadenada y sucesiva.


2.4.2.Estructura condicional.

Permite la toma de decisiones en función de una condición en la que intervienen las variables que forman parte del proceso. Puede ser de tres tipos: simple, doble

2.4.2.1.Condición simple.

Condicional simple

Según se cumpla o no la condición se ejecutará o no una serie de sentencias.


2.4.2.2.Condición doble.

Condicional doble

Se evalúa la condición y en función del resultado se opta por la ejecución de uno de los dos conjuntos diferentes de sentencias.






2.4.2.3.Condición múltiple.

Condicional múltiple

Permite programar tantos caminos distintos para el flujo de ejecución como valores puede tomar una variable o expresión del programa. (Se asocia con la sentencia case).








2.4.3.Estructura repetitiva

También denominada bucle, permite la ejecución repetida de una o varias operaciones mientras se verifique cierta condición. La condición de salida es aquella que determina la finalización de la repetición. Pueden ser de cuatro tipos: tipo mientras, tipo hasta, tipo para y tipo iterar.

2.4.3.1.Tipo mientras.

Mientras





Se asocia a la sentencia while. Permite programar un conjunto de operaciones que se estará ejecutando mientras se cumpla una condición. La comprobación de la condición se realiza al principio del bloque de operaciones.










2.4.3.2.Tipo hasta.



Hasta





Se asocia a la sentencia do.....while. Permite programar un conjunto de acciones que se ejecutarán hasta que la condición deje de cumplirse. En este caso, la comprobación de la condición se realiza al final del bloque de operaciones.










2.4.3.3.Tipo para.



Para







Se asocia a la sentencia for. Se utiliza cuando un conjunto de acciones deben ejecutarse un número específico de veces. Es similar a la estructura mientras, aunque con la diferencia de que controla el número de veces de forma automática.






2.4.3.4.Tipo iterar.



Iterar







Es similar a la estructura mientras y hasta, con la particularidad de que la verificación de la condición de salida está intercalada entre las distintas operaciones.









2.5.Ejercicios.

Realizar mediante ordinogramas los siguientes programas:

a)Mostrar el resultado de realizar las operaciones básicas entre dos números introducidos por teclado.

b)Visualizar el mayor de dos números introducidos por teclado.

c)Presentar el factorial de un número introducido por teclado.

d)Mostrar la suma de diez números introducidos desde teclado.

e)Juego de adivinar un número generado aleatoriamente por el ordenador.

f)Presentar el resultado de elevar un número a otro introducidos por teclado, mediante multiplicaciones sucesivas.

g)Mostrar el cociente y el resto de dos números introducidos por teclado.

h)Desglosar una cantidad de dinero en el menor número de monedas de curso legal posible.

Last modified: Saturday, 27 March 2010, 6:25 PM