Download Tema 3. Programación
Document related concepts
Transcript
Curso de programador de aplicaciones informáticas JAVA Metodología de la Programación Tema 3. Programación Metodología de la programación Salvador Márquez Marín 3.1. Introducción 2 3.1.1. Programación desordenada 2 3.1.2. Programación estructurada 3 3.1.3. Programación modular 4 3.1.4. Programación Orientada a Objetos (POO) 4 3.2. Lenguajes de programación 5 Ejercicios 8 Tema 3. Programación | P á g . 1 de 8 Curso de programador de aplicaciones informáticas JAVA Metodología de la Programación Tema 3. Programación. 3.1. Introducción La programación consiste en pasar algoritmos a algún lenguaje de ordenador a fin de que pueda ser entendido por el ordenador. La programación de ordenadores comienza en los años 50 y su evolución ha pasado por diversos pasos. La programación se puede realizar empleando diversas técnicas o métodos. Esas técnicas definen los distintos tipos de programaciones, también llamados paradigmas. 3.1.1. Programación desordenada Se llama así a la programación que se realizaba en los inicios de la informática (aunque desgraciadamente en la actualidad muchos programadores siguen empleándola). En este estilo de programación, predomina el instinto del programador por encima del uso de cualquier método lo que provoca que la corrección y entendimiento de este tipo de programas sea casi ininteligible. Ejemplo: Se escribe en Basic un pequeño juego que permite intentar adivinar un número que se escogió de forma aleatoria del 1 al 100. 10 X=RANDOM()*100+1; 20 PRINT “escribe el número que crees que guardo” 30 INPUT N 40 IF N>X THEN PRINT “mi numero es menor” GOTO 20 50 IF N<X THEN PRINT “mi numero es mayor” GOTO 20 60 PRINT “¡Acertaste!” Cuando las líneas de código son pocas, como en el ejemplo, es fácil seguir el curso del programa, pero cuando ésas 6 líneas se convierten en millones se dificulta muchísimo el poder depurar y mantener un programa con ésas características. Tema 3. Programación | P á g . 2 de 8 Curso de programador de aplicaciones informáticas JAVA Metodología de la Programación 3.1.2. Programación estructurada En esta programación se utiliza una técnica que genera programas que sólo permiten utilizar tres estructuras de control: Secuencias: Instrucciones que se generan secuencialmente (unas detrás de otras) Alternativas: Sentencias If (Si) Iterativas: Bucles condicionales (While, Repeat, Do while) El programa anterior en un lenguaje estructurado (Pascal) sería: PROGRAM ADIVINANUM; USES CRT; VAR x,n:INTEGER; BEGIN X=RANDOM()*100+1; REPEAT WRITE(“Escribe el número que crees que guardo”); READ(n); IF (n>x) THEN WRITE(“Mi número es menor”); IF (n>x) THEN WRITE(“Mi número es mayor”); UNTIL n=x; WRITE(“Acertaste”); END Las ventajas respecto a la programación desordenada son: Códigos más legibles (aunque en el caso anterior, el código puede resultar más sencillo de forma desordenada). Más fáciles de mantener: Con su forma estructurada resulta más fácil modificar líneas de código sin tener resultados inesperados o saltos en la continuidad del flujo del programa. Todo programador debería escribir código de forma estructurada. Tema 3. Programación | P á g . 3 de 8 Curso de programador de aplicaciones informáticas JAVA Metodología de la Programación 3.1.3. Programación modular Completa la programación anterior permitiendo la definición de módulos independientes cada uno de los cuales se encargará de una tarea del programa. De esta forma distintos programadores (o el mismo) se concentran en la codificación de cada uno de los módulos haciendo más sencilla esta tarea. Al final se deben integrar los módulos para dar lugar a la aplicación final. El código de los módulos puede ser invocado desde cualquier parte del código. Realmente cada módulo se comporta como un subprograma que, partir de unas determinadas entradas obtiene unas salidas concretas. Su funcionamiento no depende del resto del programa por lo que es más fácil encontrar los errores y realizar el mantenimiento. 3.1.4. Programación orientada a objetos (POO) Es la más novedosa y se basa en intentar que el código de los programas se parezca lo más posible a la forma de pensar de las personas. Las aplicaciones se representan en esta programación como una serie de objetos independientes que se comunican entre sí. Cada objeto posee datos y métodos propios, por lo que los programadores se concentran en programar independientemente cada objeto y luego generar el código que inicia la comunicación entre ellos. Es la programación que ha revolucionado las técnicas últimas de programación ya que han resultado un importante éxito gracias a la facilidad que poseen de encontrar fallos, de reutilizar el código y de documentar fácilmente el código. Tiene un “inconveniente” que al ser una forma totalmente distinta de programar a la usada en programación estructurada, a algunos programadores que llevan años usando otro paradigma de programación, les puede resultar difícil cambiar la forma de pensar para adecuarse a la POO. Éste “problema” depende mucho de la persona en sí, ya que no a todo el mundo le cuesta cambiar el enfoque y a ciertas personas puede resultarle hasta más fácil el cambio. Tema 3. Programación | P á g . 4 de 8 Curso de programador de aplicaciones informáticas JAVA Metodología de la Programación 3.2. Lenguajes de programación Los lenguajes de programación permiten codificar algoritmos en el ordenador. Son una serie de símbolos e instrucciones de acuerdo con una sintaxis que facilita su posterior traducción a código entendible por el ordenador. En realidad los ordenadores sólo reconocen un lenguaje formado por los unos y ceros del código binario. Según la disposición de esos unos y ceros entenderá unas instrucciones u otras. De esa forma hay lenguajes más próximos al lenguaje de las computadores (lenguajes de bajo nivel) y lenguajes más próximos al lenguaje humano (lenguajes de alto nivel). Código máquina (lenguaje de primera generación) Está formado por una sucesión de unos y ceros que el procesador del ordenador reconoce como instrucciones. Es el lenguaje que reconoce directamente el ordenador por lo tanto es el que está a más bajo nivel. Sólo se ha utilizado por los programadores en los inicios de la informática. Su incomodidad de trabajo hace que sea impensable para ser utilizado. Pero cualquier programa de ordenador debe, finalmente, ser convertido a este código para que un ordenador pueda ejecutar las instrucciones de dicho programa. Un detalle a tener en cuente es que el código máquina es distinto para cada tipo de procesador. Lo que hace que los programas en código máquina no sean portables entre distintas máquinas. Ensamblador (lenguajes de segunda generación) Se trata de un lenguaje que representa el código máquina pero escrito con una serie de términos mnemotécnicos que facilitan su escritura. Después un software especial se encargará de traducir las instrucciones a código máquina. Ejemplo: Programa que saca el texto “Hola mundo” por pantalla: Tema 3. Programación | P á g . 5 de 8 Curso de programador de aplicaciones informáticas JAVA Metodología de la Programación DATOS SEGMENT saludo db "Hola mundo!!!","$" Este lenguaje tiene traducción exacta al DATOS ENDS código máquina, por lo que es un lenguaje CODE SEGMENT diferente para cada procesador; es decir, no es assume cs:code,ds:datos START PROC mov ax,datos mov ds,ax portable. La ventaja de este lenguaje es que se puede controlar absolutamente el funcionamiento de la máquina, lo que permite crear programas mov dx,offset saludo muy eficientes. Lo malo es precisamente que mov ah,9 hay que conocer muy bien el funcionamiento int 21h de la computadora para crear programas en mov ax,4C00h estos lenguajes. Además las líneas requeridas int 21h para realizar una tarea se disparan ya que las START ENDP instrucciones CODE ENDS excesivamente simples. de la máquina son END START Lenguajes de alto nivel (Lenguajes de 3ª generación) Se aproximan más al lenguaje de los humanos. Los programas se diseñan en un lenguaje estricto pero independiente de la máquina, lo que permite que la escritura del código cree programas ejecutables en cualquier máquina. Hace falta software que transforme el código en el lenguaje de alto nivel en código entendible por el ordenador en un proceso conocido como interpretación o compilación (dependiendo del lenguaje). El código es menos eficiente que en el caso anterior, pero es más entendible y mucho más fácilmente corregible. Hoy en día casi todos los lenguajes son de alto nivel (C, Basic, Cobol, Pascal, Java, etc.). Tema 3. Programación | P á g . 6 de 8 Curso de programador de aplicaciones informáticas JAVA Metodología de la Programación /** * Calcula los primos del 1 al 1000 */ public class primos { // Función principal public static void main(String args[]) { int nPrimos = 10000; boolean primo[] = new boolean[nPrimos + 1]; short i; for (i = 1; i <= nPrimos; i++) primo[i] = true; for (i = 2; i <= nPrimos; i++) { if (primo[i]) { for (int j = 2 * i; j <= nPrimos; j += i) { primo[j] = false; } } } for (i = 1; i <= nPrimos; i++) { System.out.print(" " + i); } } } Lenguajes de cuarta generación o 4GL (fourth generation languages) Son lenguajes en los que apenas hay código y en su lugar aparecen indicaciones sobre qué es lo que el programa debe de obtener. En estos lenguajes hay herramientas de tipo más visual mediante las que se diseña el funcionamiento del programa. Los lenguajes de consulta de datos, creación de formularios, informes, etc., son lenguajes de 4ª generación. Aparecieron con los sistemas de base de datos. Tema 3. Programación | P á g . 7 de 8 Curso de programador de aplicaciones informáticas JAVA Metodología de la Programación Ejercicios Tema 3 1. ¿Qué tipo de programación pertenece el siguiente código? 10 X=30; 20 PRINT “Adivina un número entre 1 y 50” 30 INPUT N 40 IF (N-X)>5 THEN PRINT “caliente caliente...” GOTO 20 50 IF (N-X)<=5 THEN PRINT “frio frio...” GOTO 20 60 PRINT “¡Te quemaste!” 2. ¿Qué ventaja sigue teniendo el código ensamblador frente a los lenguajes de programación más modernos? 3. ¿Por qué nacieron los lenguajes de 3ª generación? ¿Qué ventaja poseen respecto a los otros? Tema 3. Programación | P á g . 8 de 8