Download Tecnologías para e-learning (I)

Document related concepts
no text concepts found
Transcript
Tema 1 Introducción a la programación
(Lenguaje java).
1.3 Programación modular. Subprogramas.
1.3 Programación modular. Subprogramas.
EL TRABAJO MODULAR COMO PARADIGMA DE INGENIERÍA:
Tecnología para la programación modular.

Módulos externos



Incluidos como paquetes (packages) en el entorno de desarrollo.

Construidos por el programador.

Adquiridos a terceros.

Desarrollados por el programador como ficheros independientes.

Desarrollados por el programador e incorporados en el fichero que
contiene el programa principal.
“Conjunto de algoritmo más estructuras de datos”. Wirth
(1985)
1.3 Programación modular. Subprogramas.
 Modelo estático.
Modelo dinámico:
El bloque correspondiente al programa principal está permanentemente en memoria mientras
que los subprogramas se cargan cuando se necesitan y al finalizar su ejecución se libera la
memoria ocupada.
1.3 Programación modular. Subprogramas.
Mecanismos para el paso de información.
 Llamada:

Se indica nombre e información que se pasa al módulo: lista de argumentos.

Forma de compartir la información:

Valor . Se pasa una copia del argumento. Única forma posible en Java para los
tipos simples (primitivos).

Referencia. Se permite al módulo acceder al argumento (se pasa su referencia).
Se puede modificar el contenido de la referencia. Única forma posible en Java
para tipos no primitivos.
 Otras consideraciones:

El subprograma puede tener sus propias variables (locales). Inaccesibles desde el
módulo de llamada.

Es posible (pero no recomendable) declarar variables (globales) accesibles por
los módulos de llamada (principal) y módulos llamados (subprograma).
1.3 Programación modular. Subprogramas.
Aplicación al lenguaje Java.
Los subprogramas en Java se denominan métodos (funciones o
procedimientos en otros lenguajes).
 Cabecera:

<tipoDevuelto> <nombreDel Método>(<tipo> <argumento1>, <tipo> <argumento2>,... )




Los nombres de los argumentos son formales.
La lista de argumentos puede estar vacía.
El método puede no devolver nada (void).
Cuerpo:
 Delimitado por { }.
 Incluye la declaración de las variables globales y el algoritmo.
 Debe finalizar con:


return <variableDeTrabajoLocal>;
(return; si no devuelve nada)
1.3 Programación modular. Subprogramas.
Estructura
general de
un programa
en Java.
1.3 Programación modular. Subprogramas.
Recursividad (I).

Concepto de objeto recursivo:
“Aquel que forma parte de sí mismo o que forma parte de su propia
definición”.

Ejemplos:
Número
natural:
El 1 es un número natural.
El siguiente de un número natural es un número natural.
Factorial de un número
0! = 1;
 N > 0, N! = N * (N-1)!
natural.
1.3 Programación modular. Subprogramas.
Recursividad (II).

La recursividad en programación.
Justificación:


El tratamiento recursivo (frente al iterativo) simplifica la lógica pero resulta
menos eficiente para la máquina (memoria y tiempo).

Es la única alternativa posible para la resolución de algunos problemas.
Materialización.


Es un subprograma que se llama, a sí mismo (fase “de ida”) hasta que se
alcanza una condición “de parada” (fase “de transición”). A continuación se
realiza un recorrido en sentido inverso (fase “de vuelta”) por las diferentes
instancias que fueron invocadas en la fase de ida.

Hace uso del modelo dinámico de subprogramación.
1.3 Programación modular. Subprogramas.
Recursividad (III).

Consideraciones complementarias.

Terminación anticipada. Por omisión: no hacer una
nueva llamada.

Utilización de módulos de llamada. Inicialización del
estado de partida.

Momentos de realización del proceso (fases de ida,
transición o vuelta) y su implicación en la modalidad
del paso de argumentos (valor o referencia).

Recursividad indirecta. Reciprocidad de llamadas.