Click here to load reader
Upload
javier-eulacio
View
151
Download
1
Embed Size (px)
DESCRIPTION
en el presente trabajo se describen las características básicas de los lenguajes de programación estructurada, con ello también se pretende que la información plasmada sea de utilidad para futuros investigadores del tema
Citation preview
Alirio Terán
República Bolivariana De Venezuela
Ministerio Del Poder Popular Para La Defensa
Universidad Nacional Experimental Politécnica De La Fuerza Armada
Núcleo Yaracuy _ Extensión Nirgua
Facilitador: Emprendedor:
Ing. Luis Sequera Alirio Terán
Ing. De Sistemas
VIII Semestre
Nirgua, Abril de 2014
Alirio Terán
Dos conceptos que se mencionan mucho al hablar de programación
son:
programación estructurada.
programación orientada a objetos.
La programación estructurada: Consiste en dotar al programa de un
cierto orden, dividiéndolo en bloques independientes unos de otros, que se
encargan de cada una de las tareas necesarias. Esto hace un programa más
fácil de leer y modificar.
La programación orientada a objetos: Se tratará más adelante,
cuando ya se tenga una buena base de programación "convencional". Como
simple comentario, para que vayan sonando las cosas a conocidas, diré que
"Objects Pascal" es el nombre que se suele dar a un lenguaje Pascal que
permita programación orientada a objetos (como es el caso de Turbo
Pascal), y que "C++" es una ampliación del lenguaje C, que también soporta
P.O.O.
Programación Modular
La programación estructurada es una técnica de diseño de programas
que comenzó a ponerse en práctica a principios de los años 70. Su
utilización tiene como objetivo paliar algunas deficiencias:
Los programas que están constituidos por un único bloque, más o
menos grande, de código, dependiendo de la complejidad y tamaño de la
aplicación, por ejemplo 5000 ó 6000 líneas de código sin comentar, sin
documentar y sin estructurar, esto es, sin hacer uso de un sólo submódulo,
son programas pocos legibles, difíciles de depurar y modificar y poco
reutilizables.
Un problema complejo no puede solucionarse de una sola vez y con
un único algoritmo; además, existen operaciones que se repiten una y otra
Alirio Terán
vez a lo largo del programa, de tal manera que es necesario el mismo bloque
de código pero con diferentes datos. Con el fin de dar solución a los puntos
anteriores se introdujo la programación estructurada. Su objetivo primordial
es resolver un problema, más o menos complejo, dividiéndolo en otros más
sencillos, que ligados convenientemente, nos den la solución del problema
original.
Cada subproblema se representará mediante uno o varios módulos
según su complejidad. La idea es que estos módulos sean independientes,
es decir, que se puedan modificar o reemplazar sin afectar al resto del
programa o que puedan ser reutilizados en otros programas. Supongamos el
siguiente ejemplo. “Un profesor quiere crear un programa para gestionar la
notas de sus alumnos.
Quiere que dicho programa le permita realizar tareas tales como
asignar notas, cambiar notas, ver las notas según las distintas calificaciones,
etc.” Un posible división del problema en módulos sería: Esta subdivisión nos
permitiría, fácilmente, cambiar la forma de visualizar a los alumnos, reutilizar
el módulo “Visualizar” en otro programa y sobre todo es mucho más fácil de
comprobar su funcionamiento.
Por tanto, las ventajas del diseño modular se traducen, principalmente,
en que los programas son más fáciles de escribir y probar (los módulos
pueden escribirse y probarse separadamente), más fáciles de mantener y
documentar.
Programación Estructurada.
Se refiere a un conjunto de técnicas que han ido evolucionando. Estas
técnicas aumentan considerablemente la productividad del programa
reduciendo el tiempo requerido para escribir, verificar, depurar y mantener los
programas.
La programación estructurada utiliza un número limitado de
estructuras de control que minimizan la complejidad de los problemas y que
Alirio Terán
reducen los errores. Ésta incorpora entre otros elementos: el diseño
descendente, recursos abstractos y estructuras básicas.
La programación estructurada es una forma de escribir programación
de ordenador de forma clara, para ello utiliza únicamente tres estructuras:
secuencial, selectiva e iterativa; siendo innecesario y no permitiéndose el uso
de la instrucción o instrucciones de transferencia incondicional ( GOTO ).
¿QUÉ ES UNA INTERFAZ GRAFICA DE USUARIO?
En el contexto del proceso de interacción persona-ordenador, la
interfaz gráfica de usuario (IGU), es el artefacto tecnológico de un sistema
interactivo que posibilita, a través del uso y la representación del lenguaje
visual, una interacción amigable con un sistema informático.
La interfaz gráfica de usuario: (en inglés Graphical User Interface,
GUI) es un tipo de interfaz de usuario que utiliza un conjunto de imágenes y
objetos gráficos (iconos, ventanas, tipografía) para representar la información
y acciones disponibles en la interfaz. Habitualmente las acciones se realizan
mediante manipulación directa para facilitar la interacción del usuario con la
computadora.
Surge como evolución de la línea de comandos de los primeros
sistemas operativos y es pieza fundamental en un entorno gráfico. Como
ejemplo de interfaz GUI podemos citar el escritorio o desktop del sistema
operativo Windows y el entorno X-Window de Linux.
La programación estructurada es una teoría de programación que
consiste en construir programas de fácil comprensión.
La programación estructurada es especialmente útil, cuando se
necesitan realizar correcciones o modificaciones después de haber concluido
un programa o aplicación.
Al haberse utilizado la programación estructurada, es mucho más
sencillo entender la codificación del programa, que se habrá hecho en
diferentes secciones. La programación estructurada se basa en una
Alirio Terán
metodología de desarrollo de programas llamada refinamiento sucesivo: Se
plantea una operación como un todo y se divide en segmentos más sencillos
o de menor complejidad.
Una vez terminado todos los segmentos del programa, se procede a
unificar las aplicaciones realizadas por el pool de programadores. Si se ha
utilizado adecuadamente la programación estructurada, esta integración
debe ser sencilla y no presentar problemas al integrar la misma, y de
presentar algún problema, será rápidamente detectable para su corrección.
La representación grafica de la programación estructurada se realiza a
través de diagramas de flujo o flow chart, el cual representa el programa con
sus entradas, procesos y salidas.
La programación estructurada propone segregar los procesos en
estructuras lo más simple posibles, las cuales se conocen como secuencia,
selección e interacción.
Ellas están disponibles en todos los lenguajes modernos de
programación imperativa en forma de sentencias. Combinando esquemas
sencillos se pueden llegar a construir sistemas amplios y complejos pero de
fácil entendimiento.
La programación estructurada es la técnica de desarrollo de
programas de la forma más clara posible haciendo uso de tres estructuras de
control: la secuencia, la selección y la interacción.
Estas estructuras pueden combinarse para crear programas que
manejen cualquier necesidad de procesamiento de datos.
Conceptos fundamentales en torno a la programación
estructurada:
Estructuras de control
Segmentación
Identación
Alirio Terán
Composición:
La programación estructurada está compuesta por segmentos de
código que pueden incluir desde una instrucción hasta varias páginas de
estas.
Cada uno de los segmentos de un programa, debe cumplir con dos
procesos básicos: la entrada y la salida de datos.
A diferencia de otros estilos de programación, los programas
estructurados pueden ser leídos secuencialmente, desde el inicio hasta el
final, sin perder la continuidad.
Características de la programación estructurada
Los programas escritos con estos principios tienen no solo una
estructura fácil de leer, sino que además tienen una excelente presentación,
que permite comprender el código con mayor facilidad.
La estructuración del contenido facilita la revisión de la codificación y
reduce el tiempo de prueba y depuración de programas.
Alirio Terán
Estructuras de control
Son estructuras que permiten controlar el orden de ejecución de las
instrucciones contenidas dentro de ellas dependiendo de condiciones
previamente establecidas.
Todos los programas pueden desarrollarse utilizando únicamente con
las tres estructuras de control características de la programación
estructurada.
Secuencia:
Se refiere al orden en la que las instrucciones de un programa son
ejecutadas, tal y como se tienen en el programa.
Los elementos 1, 2 y 3 pueden ser instrucciones o bloques que indican
que independientemente de su complejidad o tamaño, su ejecución es
realizada en el orden indicado.
La estructura secuencial: Está definida por el flujo de control
automático de un programa. De manera natural, a menos que otra cosa se
indique, la computadora ejecuta las líneas de código en el orden en que
Alirio Terán
fueron escritas. El control del programa fluye de la línea anterior a la línea
siguiente.
Selección:
Es la posibilidad de elegir entre dos instrucciones, donde la decisión
se toma en base a la evaluación de una expresión a la que llamamos
condición.
La imagen indica que si se cumple la condición 1, se avanza al punto 2 y se
llega al punto 4, en caso de no cumplirse la condición 1 entonces se avanza
al punto 3 y así se llega al punto 4.
Las estructuras de selección: Se basan en una declaración
condicional. Si es verdadera, ciertas líneas de código son ejecutadas. Si tal
declaración es falsa, esas líneas no serán ejecutadas. Las dos estructuras de
selección más comunes son: Si-Entonces (If-Then) y Si-Entonces-de lo
contrario (If-Then-Else).
Iteración:
Es una estructura que se utiliza para repetir alguna instrucción o grupo
de instrucciones siempre que se cumpla una condición.
Si se cumple la condición 1, se avanza al punto 2 y se llega al punto 3
donde se encuentra una nueva condición 3 que si se cumple se regresa a la
condición 1 y si no se cumple, se continúa al punto 4.
Las estructuras de repetición (o de ciclos): Su construcción también hace uso de declaraciones condicionales. Si la condición evaluada
Alirio Terán
es verdadera, un bloque de una o más instrucciones se repetirá, hasta que la condición sea falsa. La computadora prueba la condición una primera vez, si es verdadera, ejecuta el bloque de comandos.
Entonces, finalizada la primera repetición, comprueba de nuevo la
condición y si es verdadera se repite el bloque nuevamente, y así sucesivamente hasta que la condición sea falsa. Ya que este funcionamiento es cíclico, cada una de estas repeticiones es llamada también ciclo. Tres estructuras de este tipo son: Repita para (For-Next), Repita Mientras (While) y Repita Hasta (Do-While).
Segmentación
Para favorecer la comprensión del código de los programas
desarrollados, es conveniente establecer segmentos del programa para que
estos no excedan una página de codificación (50 líneas en promedio). No se
trata únicamente de dividir un programa en trozos donde la longitud sea de
50 líneas; la segmentación debe cumplir con las siguientes características
básicas:
Las partes se deben relacionar entre sí de forma jerárquica, formando
una estructura de árbol.
Debe mostrar claramente las relaciones existentes entre las funciones
para permitir comprender lo que debe hacer el programa de forma
fácil.
La comunicación entre los segmentos se debe realizar
cuidadosamente y de forma controlada.
La comunicación entre los segmentos se debe realizar a través de una
lista de parámetros, lo cual reduce la oportunidad de se relacionen entre ellos
de forma indeseada o inentendible.
Identación
Es el espacio o sangría que se asigna a una línea de código y
dependiendo de su longitud, esta indica si una instrucción o grupo de
instrucciones pertenecen a determinado bloque.
Alirio Terán
Este espacio es importante ya que facilita la lectura del programa
respecto a las relaciones existentes entre las instrucciones y los segmentos.
Lenguajes de programación estructurada
Es posible hacer la programación estructurada en cualquier lenguaje
de programación, aunque es preferible usar algo como un lenguaje de
programación procedimental. Algunos de los lenguajes utilizados inicialmente
para programación estructurada incluyen: ALGOL, Pascal, PL/I y Ada, pero la
mayoría de los nuevos lenguajes de programación procedimentales desde
entonces han incluido características para fomentar la programación
estructurada y a veces deliberadamente omiten características4 en un
esfuerzo para hacer más difícil la programación no estructurada.
Hay distintos lenguajes que nos permiten dar instrucciones a un
ordenador (un programa de ordenador es básicamente eso: un conjunto de
órdenes para un ordenador).
El lenguaje más directo es el propio del ordenador, llamado "lenguaje
de máquina" o "código máquina", formado por secuencias de ceros y unos.
Este lenguaje es muy poco intuitivo para nosotros, y difícil de usar. Por ello
se recurre a otros lenguajes más avanzados, más cercanos al propio
lenguaje humano (lenguajes de alto nivel), y es entonces el mismo ordenador
el que se encarga de convertirlo a algo que pueda manejar directamente.
Se puede distinguir dos tipos de lenguajes, según se realice esta
conversión:
Alirio Terán
En los intérpretes, cada instrucción que contiene el programa se va
convirtiendo a código máquina antes de ejecutarla, lo que hace que sean
más lentos (a cambio, los intérpretes suelen ser más fáciles de crear, lo que
permite que sean baratos y que puedan funcionar en ordenadores con menor
potencia).
En los compiladores, se convierte todo el programa en bloque a
código máquina y después se ejecuta. Así, hay que esperar más que en un
intérprete para comenzar a ver trabajar el programa, pero después éste
funciona mucho más rápido (a cambio, los compiladores son más caros y
suelen requerir ordenadores más potentes).
Hay lenguajes para los que sólo hay disponibles intérpretes, otros para
los que sólo existen compiladores, y otros en los que se puede elegir entre
ambos. La mayoría de los lenguajes actuales son compilados, y el entorno
de desarrollo suele incluir:
Un editor para escribir o revisar los programas.
El compilador propiamente dicho, que los convierte a código máquina.
Otros módulos auxiliares, como enlazadores (linkers) para unir
distintos subprogramas, y depuradores (debuggers) para ayudar a
descubrir errores.
Es cada vez más frecuente que todos estos pasos se puedan dar
desde un único "entorno integrado". Por ejemplo, el entorno de Turbo Pascal
tiene la siguiente apariencia:
Alirio Terán
Ventajas de la programación estructurada
Las ventajas de la programación estructurada más resaltantes en
comparación con el modelo anterior (hoy llamado despectivamente código
espagueti) son las siguientes:
Los programas son más fáciles de entender, pueden ser leídos de
forma secuencial y no hay necesidad de hacer engorrosos
seguimientos en saltos de líneas (GOTO) dentro de los bloques de
código para intentar entender la lógica.
La estructura de los programas es clara, puesto que las instrucciones
están más ligadas o relacionadas entre sí.
Reducción del esfuerzo en las pruebas y depuración. El seguimiento
de los fallos o errores del programa ("debugging") se facilita debido a
su estructura más sencilla y comprensible, por lo que los errores se
pueden detectar y corregir más fácilmente.
Reducción de los costos de mantenimiento. Análogamente a la
depuración, durante la fase de mantenimiento, modificar o extender
los programas resulta más fácil.
Los programas son más sencillos y más rápidos de confeccionar.
Se incrementa el rendimiento de los programadores, comparado con
la forma anterior que utiliza GOTO.
Algunos de los lenguajes más difundidos son:
BASIC, que durante mucho tiempo se ha considerado un buen
lenguaje para comenzar a aprender, por su sencillez, aunque se podía tender
a crear programas poco legibles. A pesar de esta "sencillez" hay versiones
muy potentes, incluso para programar en entornos gráficos como Windows.
COBOL, que fue muy utilizado para negocios (para crear software de
gestión, que tuviese que manipular grandes cantidades de datos), aunque
últimamente está bastante en desuso.
Alirio Terán
FORTRAN, concebido para ingeniería, operaciones matemáticas, etc.
También va quedando desplazado.
Ensamblador, muy cercano al código máquina (es un lenguaje de
"bajo nivel"), pero sustituye las secuencias de ceros y unos (bits) por
palabras más fáciles de recordar, como MOV, ADD, CALL o JMP.
C, uno de los mejor considerados actualmente (junto con C++ y Java,
que mencionaremos a continuación), porque no es demasiado difícil de
aprender y permite un grado de control del ordenador muy alto, combinando
características de lenguajes de alto y bajo nivel.
Además, es muy transportable: existe un estándar, el ANSI C, lo que
asegura que se pueden convertir programas en C de un ordenador a otro o
de un sistema operativo a otro con bastante menos esfuerzo que en otros
lenguajes.
C++, un lenguaje desarrollado a partir de C, que permite
Programación Orientada a Objetos, por lo que resulta más adecuada para
proyectos de una cierta envergadura.
Java, desarrollado a su vez a partir de C++, que elimina algunos de
sus inconvenientes, y ha alcanzado una gran difusión gracias a su empleo en
Internet.
PASCAL, el lenguaje estructurado por excelencia (ya se irá viendo
qué es esto más adelante), y que en algunas versiones tiene una potencia
comparable a la del lenguaje C, como es el caso de Turbo Pascal en
programación para DOS y de Delphi en la programación para Windows.
Frente al C tiene el inconveniente de que es menos portable, y la
ventaja de que en el caso concreto de la programación para DOS, Turbo
Pascal no tiene nada que envidiar la mayoría de versiones del lenguaje C en
cuanto a potencia, y además resulta más fácil de aprender, es muy rápido,
crea ficheros EXE más pequeños, etc., mientras que en la programación
para Windows, Delphi es una muy buena herramienta para crear
aplicaciones de calidad en un tiempo razonablemente breve.