LPR GRUPO_28

Este Blog ha sido creado para el seguimiento de la asignatura LPR por parte del grupo 28 cuyos miembros son: LMALVAREZ, pachon, RRLOPEZ. Un saludo.

jueves, enero 11, 2007

Abstracción funcional en pascal



Tipo de subprograma

Los subprogramas en pascal son de dos tipos: procedimientos y funciones.

Procedimientos: Al ejecutar un procedimiento se crean en memoria las constantes y variables de la parte de declaración, pero después de que se haya terminado el procedimiento desaparecen, lo cual supone un ahorro de memoria. Puede recibir cero o más valores del programa que llama y devolver cero o más valores al programa que realizó la llamada.

Declaración:

Es obligatorio declararlos y deben ser declarados antes de que puedan ser referenciados en el cuerpo del programa.

Procedure nombreproc(parámetros);

Declaraciones locales

Begin

Cuerpo del procedimiento

End;

Con frecuencia los procedimientos necesitan que se les dé uno o más valores, que se conocen como parámetros. Estos se incluyen en la cabecera, dentro de los paréntesis que siguen al identificador.

Funciones: La diferencia entre un procedimiento y una función es que el identificador de una función asume un valor cuando la función ha terminado y devuelve este valor a la rutina que la llamó en sustitución del nombre de la función. En un sentido amplio el nombre de la función es también una variable.

Todo lo indicado previamente respecto a la definición de los procedimientos se aplica a las funciones.

Function nombrefuncion ( Parámetro : tipo parámetro) ; tipo dato devuelto

Declaraciones locales

Begin

Cuerpo función

Return o actualización de la variable a la que se le asigne la función

End;

PASO DE PARÁMETROS:

Tanto en funciones como procedimientos se pueden pasar por valor o por referencia.

Paso por valor: se transfiere una copia del valor del parámetro actual al procedimiento, el procedimiento no accede a la variable real y por lo tanto no puede modificarla. Un procedimiento puede cambiar el valor de un parámetro por valor, pero a la vuelta al programa queda sin modificar el valor actual del parámetro original.

Paso por referencia: el parámetro actual debe ser una variable o una constante con tipo. Delante de la declaración del parámetro formal hay que poner la palabra clave Var. De este modo quedaría modificado el valor de la variable pasada por referencia.

Subprogramas como parámetros:

Algunas versiones de Pascal permiten pasar subprogramas como parámetros: junto con el nombre del subprograma se incluye la lista de parámetros formales.

Sobrecarga de subprogramas: Es posible realizar sobrecarga de funciones y procedimientos. O sea declarar funciones con el mismo nombre pero que difieren en los parámetros o el tipo de valor que devuelven. Según el tipo de parámetros que se le pasen llamará a la función original o a la sobrecargada.

Subprogramas polimórficos: En pascal no es posible crear subprogramas polimórficos.

Enlaces:

http://www.wikilearning.com/subprogramas_en_pascal-wkccp-3633-3.htm

http://www.mailxmail.com/curso/informatica/pascal/capitulo15.htmç

http://www.programacion.com/blogs/21_pascal_y_turbo_vision/archive/688_el_compilador_freepascal.html

Diferencias y similitudes entre Java y Pascal

DIFERENCIAS Y SIMILITUDES

DIFERENCIAS:

- Java proporciona funciones, llamadas métodos, Pascal incluye funciones y procedimientos.

- Java el paso de parámetros es siempre por valor, en Pascal hay paso por valor y paso por referencia

- Pascal permite declarar funciones dentro de otras funciones, en Java no es posible declarar un método dentro de otro.

-En Pascal no es posible que una función devuelva datos complejos como un array, por ejemplo, en Java los métodos si pueden devolver este tipo de datos.

- En Java en el caso de que el número de parámetros sea distinto podemos declarar mas de una función con el mismo nombre , Pascal no lo permite, el nombre de las funciones

- En Pascal podemos pasar subprogramas como parámetros , en Java no existe esta posibilidad.


SIMILITUDES:

- Java y Pascal permiten el paso de parámetros en la funciones

- Ambos lenguajes comparten el funcionamiento de las funciones

- Los dos lenguajes permiten la sobrecarga de funciones

- Si se hace un mal uso de las variables locales y globales en ambos leguajes se producen efectos laterales.

Abstracción funcional en Java

Abstracción funcional: los subprogramas se invocan para realizar una tarea, pero sin necesidad de saber cómo la llevan a cabo.
Está estrechamente ligada a las técnicas de diseño funcional descendente y a la programación estructurada.
Permite llevar a cabo el concepto de modularidad:
– Una función agrupa a un conjunto de instrucciones altamente cohesionadas
– Una función realiza una tarea específica.
– Para usar una función no es necesario conocer su implementación.



Tipo de subprograma

Java utiliza como tipo de subprograma las funciones.
Las funciones en Java reciben el nombre de métodos.

Método: Sección de código autocontenida que pertenece a una clase y que define la parte del comportamiento del sistema correspondiente a dicha clase y a sus objetos.

Sintaxis:
[Modificadores] tipoDevuelto identificadorMetodo([argumentos])
{
// cuerpo del método
}

Los modificadores (public, protected, private, final, static) y los argumentos (tipo primitivo, objeto) son opcionales.

tipoDevuelto: puede ser void, un tipo primitivo (int, float,…) o una referencia.

Para indicar que una función se comporta como un procedimiento indicaremos con void que ésta no devuelve nada.
No es necesario declarar el tipo de los parámetros debido a que Java comprueba dichos tipos en tiempo de ejecución.
Los métodos están todos al mismo nivel, esto quiere decir que no se pueden definir métodos dentro de métodos.



Métodos de paso de parámetros

En Java todos los parámetros son pasados por valor, excepto los objetos que se pasan por referencia.
La no existencia de punteros no permite el paso por referencia de escalares (sí como parte de un objeto).
Java no ofrece nada parecido a const, en cuanto a lo que al paso de parámetros se refiere.



Subprogramas como parámetros


Los métodos no se pueden pasar como parámetro a un método en Java. Pero si se podría pasar un objeto a un método y luego llamar a los métodos del objeto.

Sobrecarga de subprogramas

En Java se permite definir métodos con el mismo nombre siempre que difieran en los argumentos de entrada (ya sea en orden, número y/o tipo de éstos) o en el tipo que devuelven.




Subprogramas polimórficos



Polimorfismo: característica que permite que métodos con el mismo nombre puedan efectuar acciones distintas.


Se puede clasificar el polimorfismo en dos grandes clases:


Polimorfismo estático (o polimorfismo ad hoc) es aquél en el que los tipos a los que se aplica el polimorfismo deben ser explicitados y declarados uno por uno antes de poder ser utilizados. En Java existe el polimorfismo ad hoc gracias a la sobrecarga de métodos.


Polimorfismo dinámico (o polimorfismo paramétrico) es aquél en el que el código no incluye ningún tipo de especificación sobre el tipo de datos sobre el que se trabaja. Así, puede ser utilizado a todo tipo de datos compatible. En Java una superclase, combinando la herencia con la sobrecarga de métodos, puede definir la forma general de los métodos que serán utilizados por todas sus subclases.




Referencias utilizadas

Abstracción funcional
Polimorfismo
Características de Java
El lenguaje Java
Sobrecarga de métodos

Tutorial de Java