Java – Paso a paso Tema 2

Written by lopezatienza on 25/06/2009 – 13:49 -

TEMA2. LA PROGRAMACIÓN ESTRUCTURADA

En esta Unidad Didáctica se pretende dar unas nociones muy básicas sobre el paradigma de la programación estructurada. Dado que en la otra parte de la asignatura se va a realizar el estudio de este paradigma y más concretamente del lenguaje C, considero bastante útil ver los aspectos generales para poder comparar este paradigma con el que va a centrar nuestro estudio, que como sabéis, es el paradigma de la Orientación a Objetos.

1. Historia de la programación estructurada
2. La programación estructurada
3. Definiciones de las estructuras básicas de control lógico
4. Ventajas de la programación estructurada
5. Inconvenientes de la programación estructurada
6. El lenguaje C

1. Historia de la programación estructurada

Durante los años 60, el desarrollo de software se encontró con severas dificultades. Los programas de entrega del software se retrasaban, sus costos excedían en gran medida los presupuestos y los productos terminados no eran confiables. La actividad de investigación de los años 60 dio como resultado la evolución de la programación estructurada – un método disciplinado de escribir programas que sean claros, que se demuestre que son correctos y fáciles de modificar.

Uno de los resultados más tangibles de esta investigación, fue el desarrollo en 1971 hecho por el profesor Nicklaus Wirth del lenguaje de programación Pascal. Pascal fue diseñado para la enseñanza de la programación estructurada en entornos académicos y se convirtió con rapidez en el lenguaje introductoria de programación de la mayor parte de las universidades.

ADA fue desarrollado bajo el patrocinio del Departamento de Defensa de los Estados Unidos (DOD) durante los años 70 y principios de los 80.

DOD deseaba un solo lenguaje que pudiera llenar sus objetivos. PASCAL fue seleccionado como base, pero el lenguaje final fue ADA.

Ada Augusta Byron, también llamada Lady Lovelace, fue uno de los personajes más interesantes de la historia de la computación. Se le reconoce haber escrito el primer programa de computación del mundo a principios de 1800. Por eso, el nombre de ADA en honor a la condesa. Una capacidad importante de este lenguaje de programación es el concepto de multitarea.

El lenguajes C nació en los Laboratorios Bell de AT&T y ha sido estrechamente asociado con el Sistema Operativo UNIX, ya que su desarrollo se realizó en este sistema y debido a que tanto UNIX como el propio compilador de C y la casi totalidad de los programas y herramientas de UNIX, fueron escritos en C. Su eficacia y claridad han hecho que el lenguaje asembler apenas haya sido utilizado en UNIX.

Este lenguaje está inspirado en el lenguaje B escrito por Ken Thompson en 1970 con intención de recodificar el UNIX, que en la fase de arranque esta escrito en asembler, en vistas a su transportabilidad a otras máquinas. B era un lenguaje evolucionado e independiente de la máquina, inspirado en la lenguajes BCPL concedido por Martin Richard en 1967.

En 1972, Dennis Ritchie, toma el relevo y modifica el lenguaje B, creando el lenguaje C y reescribiendo el UNIX en dicho lenguaje. La novedad que proporcionó el lenguaje C sobre el B fue el diseño de tipos y estructuras de datos.

Una de las particularidades de C es su riqueza de operadores, Puede decirse que prácticamente dispone de un operador para cada una de las posibles operaciones en código máquina.

2. La programación estructurada

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: SECUENCIA, SELECCIÓN, ITERACIÓN.

Un programa estructurado se compone de funciones, segmentos, módulos y/o subrutinas, cada una con una sola entrada y una solada salida.

La programación estructurada 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). Solamente con estas estructuras se puede hacer un programa informático, en pseudocódigo, si bien los lenguajes de programación, y sus compiladores, tienen un repertorio de estructuras de control mayor.

3. Definición de las estructuras básicas de control lógico

1. 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 y una única salida.

JavaPasoAPaso0101.JPG

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.

Ejemplo:

auxiliar:= x
x:= y
y:= auxiliar

2. 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:

JavaPasoAPaso0102.JPG

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.

Ejemplo:

si a > b entonces
Escribir a es mayor que b
si_no
Escribir a no es mayor que b
Fin_si

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:

JavaPasoAPaso0103.JPG

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.

Ejemplo:

a:= 0
b:= 7
mientras b > a hacer
Escribir a
a:= a + 1
fin_mientras

Esta instrucción tiene tres palabras reservadas:

- mientras: señala el comienzo del bucle y después de esta palabra se espera la condición de repetición, si la condición es cierta se pasa al cuerpo del bucle, si no al final de la instrucción mientras.

- hacer: señala el final de la condición, lo que esté después será el cuerpo del bucle.

- fmientras: señala el final del cuerpo del bucle y de la instrucción mientras.

El bucle mientras, se repite mientras la condición sea cierta, esta condición se comprueba al principio por lo que el cuerpo del bucle puede que no se ejecute nunca, cuando la condición es falsa en un principio, o que se repita tantas veces como sea necesario, mientras la condición sea cierta.

En el ejemplo tenemos dos variables a y b que al iniciarse el bucle tienen los valores a=0 y b=7.

La condición del bucle es b > a.

Cuando a=0 y b=7. la condición es cierta, en el cuerpo del bucle se escribe el valor de a en pantalla y se incrementa a en una unidad. Entonces a=1 y b=7.

Cuando a=6 y b=7. la condición es cierta, se escribe el valor de a en pantalla y se incrementa en una unidad.

Resultando que a=7 y b=7. Entonces la condición es falsa y la instrucción mientras finaliza.

La salida por pantalla de este ejemplo seria 0 1 2 3 4 5 6

Algunos lenguajes ofrecen un modelo de estructuras iterativas algo diferente donde la condición puede variar en cada iteración.

4. Ventajas de la programación estructurada

Con la programación estructurada, 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. Programas más fáciles de entender. Un programa estructurado puede ser leído en secuencia, de arriba 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 sí, 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 los fallos o depuración se facilita debido a la lógica más visible, de tal forma que los errores se pueden detectar y conseguir 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.

5. Inconvenientes de la programación estructurada

El principal inconveniente de este método de programación, es que se obtiene un único bloque de programa, que cuando se hace demasiado grande puede resultar problemático su manejo, esto se resuelve empleando la programación modular, definiendo módulos interdependientes programados y compilados por separado, cada uno de los cuales ha podido ser desarrollado con programación estructurada.

6. Características del lenguaje C

Algunas características de este lenguaje:

- Programación estructurada

- Abundancia en operadores y tipos de datos

- Codificación en alto y bajo nivel simultáneamente

- Utilización natural de las funciones primitivas del sistema

- No está orientado a ningún área en especial

- Producción de código objeto altamente optimizado

- Facilidad de aprendizaje

Como todo lenguaje también tiene desventajas como las siguientes:

- Carece de instrucciones de entrada/salida, de instrucciones para manejo de cadenas de caracteres, con lo que este trabajo queda para la biblioteca de rutinas, con la consiguiente pérdida de transportabilidad

- La excesiva libertad en la escritura de los programas puede llevar a errores en la programación que, por ser correctos sintácticamente no se detectan a simple vista

- Por otra parte las precedencias de los operadores convierten a veces las expresiones en pequeños rompecabezas

<< Volver al tema anterior  || >> Ir al tema siguiente

 

Referencias:

 

http://www.jmordax.com/

 


Autor: Antonio Lopez Atienza


Tags:
Posted in Java | No Comments »

Leave a Comment

 

RSS
MCC D5E