Algoritmos y diagramas de flujo

Anuncio
Algoritmos y Diagramas
de Flujo
2
Programación Java – NetBeans 7.0
RPC
Contenido
2.1
Algoritmo .........................................................................................................................1
Fase de creación de un algoritmo ...........................................................................................1
Herramientas de un algoritmo .................................................................................................2
2.2
Diagrama de Flujo .........................................................................................................2
Símbolos para dibujar un Diagrama de Flujo ........................................................................3
Símbolos matemáticos y lógicos .............................................................................................3
Reglas para la creación de Diagramas ..................................................................................3
2.3
Ejemplo de Aplicación ...................................................................................................4
2.4
Cuestionario ...................................................................................................................5
Bibliografía..................................................................................................................................5
r.penarrieta.c@gmail.com
2011
II
Algoritmos1 y diagramas de flujo
2.1 Algoritmo
En un sentido amplio, dado un problema y un dispositivo donde resolverlo, es necesario
proporcionar un método preciso que lo resuelva, adecuado al dispositivo. A tal método se lo
denomina algoritmo (Guerequeta y Vallecillo, 2000). Algoritmo se define como listas de
instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos
convierten los datos de un problema (entrada) en una solución (salida). De manera más
particular, es el método que describe la solución teórica de un problema computacional
mediante una serie de procesos (pasos) definidos y finitos. Un algoritmo deberá cumplir:
-
Preciso, indicar el orden de realización en cada caso;
Definido, repetir los pasos n veces para obtener el mismo resultado;
Finito, tiene un número determinado de pasos.
La solución de un algoritmo se define en tres etapas:
-
Entrada, datos que se necesita para poder ejecutarse;
Proceso, acciones y cálculos necesarios;
Salida, resultado esperado.
Los algoritmos son la base de la programación de ordenadores estructurados en un orden
rígido: no se puede escribir lo que deseáramos; su escritura no debe dejar posibilidad de duda
pero deberá recoger la posibilidad más factible de solución a un determinado problema.
Características que deben cumplir un algoritmo:
-
Debe resolver el problema para el que fuera formulado;
Un algoritmo es independiente del lenguaje de programación;
Debe ser preciso: los resultados de los cálculos deben ser exactos; no es válido un
algoritmo que aproxime una solución;
Debe ser finito: empezar (entrada), procesar y terminar (salir).
Debe ser repetitivo: deben permitir su ejecución tantas veces haga la falta resolver un
problema; no son válidos los algoritmos que al ejecutarse una vez, ya no se pueda reutilizarlo.
Fase de creación de un algoritmo
1. Análisis; se determina el problema a resolver y se colectan los datos de entrada del
algoritmo y qué datos deberán obtenerse a la salida;
2. Diseño; Elaboración del algoritmo;
3. Prueba; Comprobación y validación del resultado.
1
La palabra algoritmo procede de la latinización del nombre del matemático Persa Mohamed Ibn Al Kow Rizmi (Al juarismi) que en
su obra Quitab Al-Mugabala recogió el sistema de numeración hindú y el concepto del cero que fuera traducida por el matemático
Fibonacci al latín y la llamó: Algoritmi Dicit (Dixit Algorithmus).
1
Herramientas de un algoritmo
-
Diagramas de flujo (flow chart); Diagrama de Flujo, es una representación gráfica que
utiliza símbolos por ANSI2 y expresa las sucesivas instrucciones que se deben realizar
para resolver un problema. Las instrucciones no dependen de la sintaxis de ningún
lenguaje de programación, sino sirven únicamente para su codificación en un lenguaje
dado.
-
Diagramas N-S (Nassi-Schneiderman); conocido también como diagrama de Chapín,
la estructura es similar a la de un diagrama de flujo pero sin visualizar las flechas, se
representa dentro de una sola caja.
-
Pseudocódigo (falso lenguaje); Permite expresar las instrucciones en un lenguaje
común con la finalidad única de facilitar la escritura, lectura y solución de un problema
(en lo futuro programa). No existen reglas para escribir pseudocódigo. Es posible que
como única regla, el signo igualdad (=) es reemplazado por ←; p.e. a= b+c ; a ← b+ c.
2.2 Diagrama de Flujo
Los diagramas de flujo son una manera de representar visualmente el flujo de datos a través de
sistemas de tratamiento de información. Los diagramas de flujo describen que operaciones y
en que secuencia se requieren para solucionar un problema dado.
Un diagrama de flujo u organigrama es una representación diagramática que ilustra la
secuencia de las operaciones que se realizarán para conseguir la solución de un problema. Los
diagramas de flujo se dibujan generalmente antes de comenzar a programar el código frente a
la computadora. Los diagramas de flujo facilitan la comunicación entre los programadores y la
gente del negocio. Estos diagramas de flujo desempeñan un papel vital en la programación de
un problema y facilitan la comprensión de problemas complicados y sobre todo muy largos.
Una vez que se dibuja el diagrama de flujo, llega a ser fácil escribir el programa en cualquier
idioma de alto nivel. Vemos a menudo cómo los diagramas de flujo nos dan ventaja al
momento de explicar el programa a otros. Por lo tanto, está correcto decir que un diagrama de
flujo es una necesidad para la documentación mejor de un programa complejo.
2
Siglas del American National Institute.
2
Símbolos para dibujar un Diagrama de Flujo
Los Diagramas de flujo se dibujan generalmente usando algunos símbolos estándares; sin
embargo, algunos símbolos especiales pueden también ser desarrollados cuando sean
requeridos. Algunos símbolos estándares, que se requieren con frecuencia para diagramar
programas de computadora se muestran a continuación:
Inicio o fin del programa
Disco magnético
Pasos, procesos o líneas de
instrucción de programa de
computo
Operaciones de entrada y salida
Conector de pagina
Toma
de
Ramificación
Anotación
decisiones
Líneas de flujo
y
Conector para unir el flujo a otra
parte del diagrama
Pantalla, para mostrar datos
Cinta magnética
Envía datos a la impresora
Teclado o escritura manual
SubAlgoritmo
Símbolos matemáticos y lógicos
Dentro de los símbolos fundamentales para la creación de diagramas de flujo, los símbolos
gráficos son utilizados específicamente para operaciones aritméticas y relaciones
condicionales:
+
*
/
\
^
=
Mod
Suma
Resta
Multiplicación
División
División entera
Exponenciación
Igualdad
Módulo (resto de una
división)
>
<
>=
<=
<>
Y
O
No
Mayor que
Menor que
Mayor o igual que
Menor o igual que
Diferente que
Y lógico
O lógico
No lógico
Reglas para la creación de Diagramas
Los Diagramas de flujo3 deben escribirse de arriba hacia abajo, y/o de izquierda a derecha. 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).
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
van a utilizar conectores cuando sea estrictamente necesario. No deben quedar líneas de flujo
sin conectar.
3
Los Diagramas de Flujo han sido elaborados con la Aplicación Diaw.exe 0.97.1.
3
Todo texto escrito dentro de un símbolo debe ser legible, preciso, evitando el uso de muchas
palabras. Todos los símbolos pueden tener más de una línea de entrada, a excepción del
símbolo final. Solo los símbolos de decisión pueden y deben tener más de una línea de flujo de
salida.
Diagrama flujo
Diagrama N-S
n: Entero
r: Cadena
Leer n
n: Mod 3=0 Y n Mod 5=0
F
V
r: Cadena
R ←“NO ES MULTIPLO DE 3 Y 5”
R ←“SI ES MULTIPLO DE 3 Y 5”
Escribir r
2.3 Ejemplo de Aplicación
Dados dos números enteros (n1 y n2) encuentre la suma:
Diagrama de Flujo
Pseudocódigo
Inicio
Código java
//Variables
n1, n2, s : Entero
//Entrada
Leer n1, n2
//Proceso
s ← n1 + n2
//Salida
Escribir s
Fin
Si introducimos n1= 5 y n2= 3 tenemos:
4
2.4 Cuestionario
1
2
3
¿Qué es un algoritmo?
¿Porqué es importante planificar (haciendo uso de algoritmos) una aplicación?
Dados dos números a y b, elabore el algoritmo para hallar el resto.
Bibliografía
GUEREQUETA, R.; VALLECILLO, A. (2000) [en línea] “Técnicas de Diseño de Algoritmos” Universidad de Málaga,
España. p. 1-6. <http://www.lcc.uma.es/~av/Libro/> [Acceso: 10, mar. 2011].
FREE SOFTWARE FOUNDATION (2009) [en línea] “Diaw.exe 0.97.1: Programa para Dibujar Diagramas
Estructurados” <http://live.gnome.org/Dia> [Acceso: 6, mar. 2011].
VILLALOBOS, R. (2008) “Fundamentos de Programación Java” Ed. Macro, Lima, Perú. p. 28-40.
5
Descargar