13

Click here to load reader

Alirio teran _ Primer trabajo Programacion 2

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

Page 1: Alirio teran _ Primer trabajo Programacion 2

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

Page 2: Alirio teran _ Primer trabajo Programacion 2

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

Page 3: Alirio teran _ Primer trabajo Programacion 2

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

Page 4: Alirio teran _ Primer trabajo Programacion 2

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

Page 5: Alirio teran _ Primer trabajo Programacion 2

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

Page 6: Alirio teran _ Primer trabajo Programacion 2

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.

Page 7: Alirio teran _ Primer trabajo Programacion 2

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

Page 8: Alirio teran _ Primer trabajo Programacion 2

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

Page 9: Alirio teran _ Primer trabajo Programacion 2

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.

Page 10: Alirio teran _ Primer trabajo Programacion 2

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:

Page 11: Alirio teran _ Primer trabajo Programacion 2

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:

Page 12: Alirio teran _ Primer trabajo Programacion 2

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.

Page 13: Alirio teran _ Primer trabajo Programacion 2

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.