Download Tema 3. Programación

Document related concepts

Haxe wikipedia , lookup

Programación funcional wikipedia , lookup

Lisp wikipedia , lookup

Dylan (lenguaje de programación) wikipedia , lookup

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