1. Programación estructurada
El creciente empleo de los computadores ha conducido a buscar un abaratamiento del desarrollode software, paralelo a la reducción del costo del hardware obtenido gracias a los avances
tecnológicos. Los altos costos del mantenimiento de las aplicaciones en producción normal también
han urgido la necesidad de mejorar la productividad del personal de programación.
DEFINICIONES
La programación estructurada (en adelante simplemente PE ), es un estilo de programación con el
cual el programador elabora programas, cuya estructura es la más clara posible, mediante el uso
de tres estructuras básicas de control lógico, a saber :
a. SECUENCIA.
b. SELECCIÓN.
c. ITERACIÓN.
Un programa estructurado se compone de funciones,segmentos, módulos y/o subrutinas, cada una
con una sola entrada y una sola salida. Cada uno de estos módulos (aún en el mismo programa
completo), se denomina programa apropiado cuando, además de estar compuesto sólamente por las
tres estructuras básicas, tiene sólo una entrada y una salida y en ejecución no tiene partes por las
cuales nunca pasa ni tiene ciclos infinitos.
La PE tiene un teorema estructural o teorema fundamental, el cual afirma que cualquier
programa, no importa el tipo de trabajo que ejecute, puede ser elaborado utilizando únicamente
las tres estructuras básicas ( secuencia, selección, iteración ).
DEFINICIÓN DE LAS ESTRUCTURAS BÁSICAS DE CONTROL LÓGICO
SECUENCIA
Indica que las instrucciones de un programa se ejecutan una después de la otra, en el mismo orden
en el cual aparecen en el programa. Se representa gráficamente como una caja después de otra,
ambas con una sola entrada
Las cajas A y B pueden ser definidas para ejecutar desde una simple instrucción hasta un módulo
o programa completo, siempre y cuando que estos también sean programas apropiados.
SELECCIÓN
También conocida como la estructura SI-CIERTO-FALSO, plantea la selección entre dos
alternativas con base en el resultado de la evaluación de una condición o predicado; equivale a la
instrucción IF de todos los lenguajes de programación y se representa gráficamente de la siguiente manera.
En el diagrama de flujo anterior, C es una condición que se evalúa; A es la acción que se ejecuta
cuando la evaluación de este predicado resulta verdadera y B es la acción ejecutada cuando indica
falso. La estructura también tiene una sola entrada y una sola salida; y las funciones A y B
también pueden ser cualquier estructura básica o conjunto de estructuras.
3.- ITERACIÓN
También llamada la estructura HACER-MIENTRAS-QUE, corresponde a la ejecución repetida
de una instrucción mientras que se cumple una determinada condición. El diagrama de flujo para
esta estructura es el siguiente :
Aquí el bloque A se ejecuta repetidamente mientras que la condición C se cumpla o sea cierta.También tiene una sola entrada y una sola salida; igualmente A puede ser cualquier estructura básica o conjunto de estructuras.
VENTAJAS DE LA PROGRAMACIÓN ESTRUCTURADA
Con la PE, elaborar programas de computador sigue siendo una labor que demanda esfuerzo,creatividad, habilidad y cuidado. Sin embargo, con este nuevo estilo podemos obtener las siguientes ventajas :
1. Los programas son más fáciles de entender. Un programa estructurado puede ser leído en secuencia, de arriba hacia abajo, sin necesidad de estar saltando de un sitio a otro en la lógica, lo cual es típico de otros estilos de programación. La estructura del programa es más clara puesto que las instrucciones están más ligadas o relacionadas entre si, por lo que es más fácil comprender lo que hace cada función.
2. Reducción del esfuerzo en las pruebas. El programa se puede tener listo para producción normal en un tiempo menor del tradicional; por otro lado, el seguimiento de las fallas o depuración (debugging) se facilita debido a la lógica más visible, de tal forma que los
errores se pueden detectar y corregir más fácilmente.
3. Reducción de los costos de mantenimiento.
4. Programas más sencillos y más rápidos.
5. Aumento en la productividad del programador.
6. Se facilita la utilización de las otras técnicas para el mejoramiento de la productividad en
programación.
7. Los programas quedan mejor documentados internamente.
Herramientas de programación
Las dos herramientas más utilizadas comúnmente para diseñar algoritmos son : diagramas de flujo
y pseudocódigos.
DIAGRAMAS DE FLUJO
Un diagrama de flujo (flowchar) es una representación gráfica de un algoritmo. Los símbolos
utilizados han sido normalizados por el Instituto Norteamericano de Normalización (ANSI), y los
más frecuentemente empleados se muestran acontinuación:
PSEUDOCÓDIGO
Con la PE, el pseudocódigo sigue siendo un excelente medio para expresar la lógica de un
programa. A continuación se muestran algunos ejemplos de palabras para construir algoritmos en
pseudocódigo.
PALABRA UTILIZACIÓN
ABRE Abre un archivo
CASO Selección entre múltiples alternativas
CIERRA Cierra un archivo
ENTONCES Complemento de la selección
SI - ENTONCES
ESCRIBE Visualiza un dato en pantalla
FIN Finaliza un bloque de instrucciones
HASTA Cierra la iteración HAZ - HASTA
HAZ Inicia la iteración HAZ - HASTA
INICIO Inicia un bloque de instrucciones
LEER Leer un dato del teclado
MIENTRAS Inicia la iteración mientras
NO Niega la condición Disyunción lógica BIEN Complemento opcional de la selección
SI - ENTONCES
PARA Inicia un número fijo de iteraciones
SI Inicia la selección SI-ENTONCES
USUAL Opcional en la instrucción CASO
Y Conjunción lógica
{ Inicio de comentario
} Fin de comentario
<= Asignación
Procedimientos y funciones
Notación Conway para la sintaxis de la declaración de procedimientos
(prototipo e implementación).
Una vez declarado, el procedimiento puede ser llamado (invocado) en el programa.
Para ello basta especificar su nombre (y parámetros en el caso de que los tuviese) como
si se tratara de una sentencia más. Cuando se alcanza la llamada, el control pasa a la
primera sentencia de dicho procedimiento y cuando éste acaba de ejecutar su cuerpo el
control vuelve a la siguiente instrucción escrita tras la llamada al procedimiento.3.2.1. La sentencia nula
implementación del procedimiento) está formado por una secuencia de sentencias. Las
sentencias más importantes de C++ se han descrito en los temas anteriores.
Procedimientos con parámetros
Un procedimiento puede resultar mucho más útil si se puede variar sucomportamiento de una llamada a otra. Esto se consigue añadiéndole parámetros. Por
ejemplo, sería poco útil que el procedimiento system de la biblioteca stdlib ejecutase
siempre el mismo comando de sistema. Por eso es posible pasarle un parámetro que se
corresponde con el comando que queremos ejecutar en cada momento.system( "dir" );
En C++ existen dos tipos de parámetros diferentes:
1.Parámetros de entrada (valor)
2.Parámetros de entrada/salida (referencia)
Los parámetros únicamente de salida no son implementados por C++.
Los parámetros que se declaran en la cabecera de un procedimiento se denominan
Parámetros Formales, mientras que los parámetros que aparecen en una llamada al
procedimiento se denominan Parámetros Actuales o Reales.
. Parámetros de entrada (valor)
Los parámetros de entrada (valor) se usan para proporcionar información de
entrada a un procedimiento. Dentro de éste pueden considerarse como variables cuyo
valor inicial es el resultado de evaluar los parámetros actuales
Funciones
Mientras que un procedimiento ejecuta un grupo de sentencias, una función ademásdevuelve un valor al punto donde se llamó. Una llamada a una función puede aparecer
como operando de alguna expresión. El valor de la función se usa, por tanto, para
calcular el valor total de la expresión.
En la Figura 3.9 se muestra un ejemplo de función que recibe dos parámetros de
tipo float y devuelve un valor de este mismo tipo. Concretamente, la función de la
de forma que la llamada devolverá el mayor valor entre 3.0 y el contenido de la
variable p y con dicho valor se evaluará el resto de la expresión. Otro ejemplo puede
ser:
p = Maximo( 3.0, p );
Obsérvese que el tipo del resultado que devolverá la función aparece declarado en
la cabecera sustituyendo a la palabra void que identifica a un procedimiento. En este
sentido, en C++, puede verse a un procedimiento como un tipo especial de función que
devuelve un valor void (nulo).
Las funciones en C++ pueden devolver cualquier tipo menos arrays.
Toda función debe ejecutar una sentencia return