Programación estructurada
De Wiki Alfonso Morcuende
Contenido |
Partes de un programa
Todo programa está constituido por un conjunto de órdenes capaces de manipular un conjunto de datos. Esas órdenes, pueden ser divididas en tres grandes bloques:
Entrada de datos
En este bloque se engloban todas aquellas instrucciones que toman datos de un dispositivo o periférico externo, depositándolos posteriormente en memoria central o principal, para poder ser procesados.
Proceso o algoritmo
Engloba todas aquellas instrucciones encargadas de procesar la información. Todos los datos obtenidos del tratamiento de dicha información son depostitados nuevamente en memoria principal.
Salidas de datos o resultados
Está formado por todas aquellas instrucciones que toman los resultados depositados en memoria principal una vez procesados los datos de entrada, enviándolos seguidamente aun dispositivo o periférico externo.
Algoritmos
Concepto
Se puede definir como la descripción abstracta de todas las acciones u operaciones que debe realizar un ordenador de forma clara y detallada, así como el orden en el que éstas deberán ejecutarse junto con la descripción de todos aquellos datos que deberán ser manipulados por dichas acciones y que nos conducen a la solución del problema.
Todo algoritmo debe ser totalmente independiente del lenguaje de programación en que será utilizado.
La dificultad de conseguir una solución a un problema reside en la fase de diseño, no en la de traducción del algoritmo a un lenguaje de programación determinado.
Las características que debe cumplir todo el diseño de algoritmo son las siguientes:
- Conciso y detallado, es decir debe reflejar con el máximo detalle el orden de ejecución de cada acción u operación que vaya a realizar el ordenador
- Nunca debe de ser rígido en su diseño. Su característica debe de ser la flexibilidad en sus representaciones gráficas, permitiendo y facilitando las futuras modificaciones o actualizaciones del diseño realizado.
- Todo Algoritmo se caracteriza por tener un comienzo y un final. Es finito o limitado.
- Con los mismos datos de entrada debe de obtener siempre los mismos datos de salida. Por ello se puede decir que es exacto o preciso.
- Claro y sencillo para facilitar su entendimiento y comprensión por parte del personal informático.
Diagramas de flujo
Para el diseño de algoritmos se utilizan técnicas de representación. Una de estas técnicas son los denominados diagramas de flujo, que se definen como la representación gráfica que, mediante el uso de símbolos estándar conectados o unidos mediante líneas de flujo muestran la secuencia lógica de las operaciones o acciones que debe realizar un ordenador, así como la corriente o flujo de datos en la resolución de un programa.
Organigramas
También denominados diagramas de flujo de sistemas o diagramas de flujo de configuración. Son representaciones gráficas del flujo de datos e información entre los periféricos o soportes físicos que maneja un programa.
Un Organigrama debe reflejar:
- Las distintas áreas o programas en los que se divide la solución del problema
- Las entradas y salidas de cada área, indicando los soportes que serán utilizados para el almacenamiento
- El flujo de datos
Por todo ello debe proporcionar:
- Una visión global de la solución del problema
- Fácil realización de futuras correcciones
- Control de todas las posibles soluciones
Los organigramas deben respetar las siguientes reglas de representación:
- En la parte central se situa el símbolo de proceso
- En la parte superior y siempre por encima del símbolo de proceso, deben figurar los soportes de entrada
- En la parte inferior y siempre por debajo del símbolo de proceso, deben figurar los soportes de salida
- A izquierda y derecha figurarán los soportes que son tanto de entrada como de salida
La simbología de los organigramas es la siguiente:
- Símbolos de soporte de información o dispositivos físicos:
Dibujo Dispositivo Tipo Archivo:Teclado.gif teclado entrada Archivo:Pantalla.gif pantalla salida Archivo:Disquette.gif disquette Entrada/Salida Archivo:Impresora.gif Impresora Salida Archivo:Discos-magneticos.gif Discos magnéticos entrada/salida -
Símbolos de proceso:
Símbolo Función Archivo:Proceso.gif Proceso u operación Archivo:Clasificacion.gif Clasificación u ordenación de datos en un fichero Archivo:Union.gif Fusión o mezcla de dos o más ficheros en uno solo Archivo:Extraccion.gif Partición o extracción de datos de un fichero -
Línes de flujo de datos
Símbolo Función Archivo:Flujo.gif Dirección del proceso o flujo de datos Archivo:Teleproceso.gif Líneas de teleproceso (transmisión de datos)
Para entender major el organigrams tenemos estos tres ejemplos:
Organigrama que refleja la suma de 3 numeros leidos por teclado, el resultado aparece por pantalla:
Organigrama que refleja la actualización de un fichero de datos (nominas por ejemplo)
Organigrama que refleja la unión de varios ficheros en uno solo.
Ordinogramas
También denominados Diagramas de flujo de programas. Son representaciones gráficas que muestran la secuencia lógica y detallada de las operaciones que se van a realizar en la ejecución de un programa.
Todo ordinograma debe reflejar:
- Un principio o inicio que marca el comienzo de ejecución INICIO
- La secuencia de operaciones lo más detallada posible y siguiendo siempre el orden en el que se deberán ejecutar (de arriba-abajo y de izquierda-derecha)
- Un fin que marca la finalización de ejecución del programa FIN
Las reglas que hay que seguir para la confección de un ordinograma son las siguientes:
- Todos los símbolos utilizados deben de estar conectados por medio de íneas de conexión o líneas de flujo de datos
- Queda prohibido el cruce de líneas de conexión
- El símbolo de proceso puede llegarle varias líneas de conexión o flujo, pero de él sólo puede salir una
- A un símbolo de decisión puede llegarle varias líneas de conexión de flujo pero de él sólo puede salir una
- A un símbolo de inicio de proceso no llega ningúna línea de conexión y de él sólo puede partir una línea de conexión
- A un símbolo de Final de proceso pueden llegar muchas líneas de conexión pero de él no puede partir ninguna
| Simbolo | Descripción |
| Para inicio/fin o para una parada indeterminada | |
| Símbolo de entrada/salida genérico | |
| Representa una operación o proceso general con datos de memoria. | |
| Símbolo de subprograma o subrutina. Se utiliza para realizar una llamada a un modulo del programa. | |
| Símbolo de decisión para realizar una pregunta con dos posibles respuestas. Es lo que llamamos símbolo de selección simple. | |
| Símbolo de selección múltiple | |
| Símbolo de bucle definido. | |
| Conector. Se utiliza para agrupar varias líneas de flujo que salen del mismo origen. | |
| Símbolo para poner comentarios |
Ejemplos
Este primer ejemplo te dice el mayor de dos números.
Este segundo te devuelve los grados introducidos en Kelvin y Fahrenheit.
Pseudocódigo
Notación pseudocodificada: Se puede definir omo el lenguaje intermedio entre el lenguaje natural y el lenguaje de programación. La notación pseudocodificada surge como método para la representación de instrucciones en una metodología estructurada. Utiliza palabras reservadas.
La notación pseudocodificada se caracteriza por:
- Ser una forma de representación muy sencilla de aprender y utiliza
- Permitir el diseño y desarrollo de algoritmos totalmente independientes del lenguaje de programación posteriormente utilizado
- Facilitar el paso del algoritmo al correspondiente lenguaje de programación
- Permitir gran flexibilidad en el diseño del algoritmo a la hora de expresar acciones concretas
- Facilitar futuras correcciones o actualizaciones
- Facilita la obtención de soluciones mediante aproximaciones soluciones sucesivas. Diseño Top-Down que consiste en la descomposición sucesiva del problema en niveles o subproblemas más pequeños.
Toda notación pseudocientífica debe permitr la descpripción de:
- Instrucciones primitivas (entrada, salida y asignación)
- Instrucciones de proceso o cálculo
- Instrucciones de control
- Instrucciones compuestas
- La descripción de todos aquellos elementos de trabajo y estructuras de datos que vaya a manipular el porgrama
Todo Algoritmo representado de forma pseudocientífica debe representar las siguientes partes:
- Cabecera: Bloque informativo dónde quedará reflejado el nombre del algoritmo (Módulo) y el nombre del programa al que pertenece (Programa).
- Cuerpo: Resto del diseño, está dividido en dos bloques, Bloque de datos, es el lugar donde deberán quedar descritos todos los elementos de trabajo (parámetros, constantes y variables), y el Bloque de acciones que debe describir todas las acciones que deberá realizar durante la ejecución del programa.
Comentarios
Son utilizados para aclarar o facilitar la comprensión de los algoritmos
- Aclarar el cometido o función de una variable definida
- Explicar el objetivo de una instrucción de control (Alternativa o repetitiva)
- Aclarar zonas del programa donde se realizan cálculos y operaciones complejas
- Comentar llamadas realizadas a subprogramas o funciones
Para el diseño de algoritmos mediante notación pseudocodificada, el uso de comentarios lo haremos anteponiendo dos asteriscos al comentario propiamente dicho.
Tablas de decisisón
Son las herramientas para el diseño de algoritmos que muestran las acciones que deben ejecutar en nuestro programa cuando se cumplan ciertas condiciones. Una tabla de decisiones presenta cuatro bloques o apartados:
- Matriz de condiciones: Contiene todas las condiciones del problema
- Matriz de acciones refleja todas las acciones a realizar
- Entrada de condiciones Muesta las situaciones que se pueden presentar
- Entrada de acciones Indica las acciones a efectuar
Cada combinación de entrada de condiciones con su correspondiente entrada de acciones recibe el nombre de regla de decisión
Reglas de construcción
- A una condición de entrada sólo le corresponde una decisión
- A una condición de salida le pueden corresponder varias condiciones de entrada
- El número de reglas de decisión es 2 elevado a n, siendo n el número de condiciones que se pueden dar
- La entrada de condiciones se representan con una X indiferencia, una S afirmativo y una N negativo.
- La entrada de acciones se representa con una X si se realiza y con un guión (-) en caso contrario.
- La lista de condiciones pueden especificarse en cualquier orden
- La lista de acciones debe ponerse en el orden que se tenga que ejecutar
- Cada regla de decisión o columna equivale a un camino en un diagrama de flujo
- Las tablas de decisión se leen siempre de izquierda a derecha y las reglas de arriba a abajo
Tipos de instrucciones
Concepto
Una instrucción puede ser considerada como un hecho o suceso de duración limitada que genera unos cambios previstos en la ejecución de un programa.
Instrucciones de definición de datos
Son las utilizadas para informar al procesador del espacio que debe reserva en memoria para almacenar un dato. La difinición consiste en indicar un nombre a través del cual haremos referencia al dato y un tipo a través del cual le dieremos al procesador de las características y espacio que deberá reservar en memoria.
Instrucciones primitivas
Instrucciones de entrada:
Son las encargadas de recoger el dato y seguidamente almacenarlo en una variable previamente definida
Instrucciones de asignación:
Son aquellas cuya principal misión es almacenar un dato o valor simple obtenido como resultado al evaluar una expresión en una variable definida y declarada
Instrucciones de salida:
Son las encargadas de recoger los datos de variables o los resultados obtenidos de expresiones evaluadas y depositarlos en un periférico o dispositivo de salida
Instrucciones compuestas
Aquellas instrucciones que no pueden ser ejecutadas directamente por el procesador, y están constituidas por un bloque de acciones, agrupadas en subrutinas, subprogramas, funciones o módulos.

