La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Paso de parámetros Diseño de programas iterativos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 7 Versión.

Presentaciones similares


Presentación del tema: "Paso de parámetros Diseño de programas iterativos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 7 Versión."— Transcripción de la presentación:

1 Paso de parámetros Diseño de programas iterativos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 7 Versión 1.0.2

2 UD7: Paso de parámetros. Diseño de programas iterativos Índice  Paso de Parámetros  Parámetros Formales  Parámetros Reales  Parámetros de entrada  Parámetros de entrada/salida  Paso de parámetros en Java  Diseño de programas iterativos  for-extendido  for-clásico  while

3 UD7: Paso de parámetros. Diseño de programas iterativos Parámetros Formales  Aparecen en la signatura del método en el momento de su declaración.  Representan la información que el método recibe para su ejecución.  Es necesario especificar tanto el tipo como el nombre de la variable que se usará en el cuerpo del método. public void setX (Double nx){ x = nx; } public void setX (Double nx){ x = nx; } P. Formal (tipo + variable)

4 UD7: Paso de parámetros. Diseño de programas iterativos Parámetros Reales  Son los utilizados en una llamada concreta al método.  No aparece el tipo, sólo la expresión que se quiere pasar al método.  El resultado de la expresión debe ser del mismo tipo que el definido por el parámetro formal.  Punto p = new PuntoImpl ( ); p.setX(2.0); Punto p = new PuntoImpl ( ); p.setX(2.0); Punto p = new PuntoImpl ( ); Double a = 2.0; p.setX(a); Punto p = new PuntoImpl ( ); Double a = 2.0; p.setX(a); Punto p = new PuntoImpl ( ); p.setX(2.0 + 3.2); Punto p = new PuntoImpl ( ); p.setX(2.0 + 3.2); Punto p = new PuntoImpl ( ); Punto q = new PuntoImpl(1.2,1.1); p.setX(q.getX()); Punto p = new PuntoImpl ( ); Punto q = new PuntoImpl(1.2,1.1); p.setX(q.getX());

5 UD7: Paso de parámetros. Diseño de programas iterativos Paso de Parámetros  En la llamada a un método, se asignan los parámetros reales a los formales. public void setX (Double nx){ x = nx; } public void setX (Double nx){ x = nx; } Punto p = new PuntoImpl ( ); Double a = 2.0; p.setX(a); Punto p = new PuntoImpl ( ); Double a = 2.0; p.setX(a); nx toma el valor 2.0 El atributo x del objeto Punto p toma el valor 2.0

6 UD7: Paso de parámetros. Diseño de programas iterativos Parámetros de entrada y entrada-salida  Parámetro de entrada. Se modifica dentro del método invocado sin que se refleje el cambio en el método invocador (el parámetro recibido es una copia del que se pasa).  Parámetro de entrada-salida (E/S). Se modifica dentro del método invocado reflejándose el cambio en el método invocador (el parámetro recibido es idéntico al que se pasa).

7 UD7: Paso de parámetros. Diseño de programas iterativos Paso de Parámetros en Java  En Java el paso de parámetros depende del tipo del parámetro  Tipos primitivos (int, double, boolean, char…)  Parámetro de entrada  Objetos: dependerá de si son mutables o inmutables  Tipos mutables (Lista, Punto, Racional…)  Parámetro E/S  Tipos inmutables (Integer, Double, Boolean, Character…)  Parámetro de entrada

8 UD7: Paso de parámetros. Diseño de programas iterativos Ejemplos de paso de parámetros public static void pasoParametros (double d, Integer i, List l, Punto p){ d = d + 2.0; i++; l.add(5); p.setX(6.0); } public static void pasoParametros (double d, Integer i, List l, Punto p){ d = d + 2.0; i++; l.add(5); p.setX(6.0); } public static void main(String[] args) { double d = 1.0; Integer i = 2; List l = new Vector (); l.add(3); Punto p = new Punto(4.0, 4.0); mostrar(“Los valores iniciales son: “+d+”,”+i+”,”+l+”,”+p); pasoParametros(d,i,l,p); mostrar(“Los valores finales son: “+d+”,”+i+”,”+l+”,”+p)); } public static void main(String[] args) { double d = 1.0; Integer i = 2; List l = new Vector (); l.add(3); Punto p = new Punto(4.0, 4.0); mostrar(“Los valores iniciales son: “+d+”,”+i+”,”+l+”,”+p); pasoParametros(d,i,l,p); mostrar(“Los valores finales son: “+d+”,”+i+”,”+l+”,”+p)); } Los valores iniciales son: 1.0,2,[3, 3],(4.0,4.0) Los valores finales son: 1.0,2,[3, 3, 5],(6.0,4.0) Los valores iniciales son: 1.0,2,[3, 3],(4.0,4.0) Los valores finales son: 1.0,2,[3, 3, 5],(6.0,4.0)

9 UD7: Paso de parámetros. Diseño de programas iterativos Diseño de Programas Iterativos  Los tratamientos iterativos son muy frecuentes en programación: “incremente en un 5% los precios de los 10000 productos de un supermercado”, “calcule la media de edad de todos los alumnos matriculados en FP ”…  Se gestionan como un bloque inicial de sentencias y una estructura de control iterativa: for clásico, for extendido, while.  A estas estructuras se les denomina bucles.

10 UD7: Paso de parámetros. Diseño de programas iterativos Diseño de Programas Iterativos  Para un buen diseño iterativo debemos usar los siguientes conceptos:  variables del bucle  bloque inicial  bloque del bucle  expresión lógica del bucle  Como norma usaremos siempre que sea posible for-extendido.  Sólo usaremos while si los otros bucles no son aplicables.

11 UD7: Paso de parámetros. Diseño de programas iterativos Diseño de Programas Iterativos  Usaremos for-extendido para el recorrido de estructuras de datos que implementen Iterable.  Ejemplo: calcule la suma de los elementos de una lista (recorrido ascendente de elemento en elemento) public static Double sumaLista(List l){ Double r = 0.0; for(Double e: l){ r = r + e; } return r; } public static Double sumaLista(List l){ Double r = 0.0; for(Double e: l){ r = r + e; } return r; }

12 UD7: Paso de parámetros. Diseño de programas iterativos Diseño de Programas Iterativos  Usaremos for-clásico cuando necesitemos información acerca de la posición en el agregado de datos o cuando no se implemente Iterable  Ejemplo: calcule la suma de los elementos que ocupan las posiciones pares de una lista public static Double sumaListaPar(List l){ Double r = 0.0; for(int i = 0; i < l.size(); i++){ if (i % 2 == 0){ r = r + l.get(i); } return r; } public static Double sumaListaPar(List l){ Double r = 0.0; for(int i = 0; i < l.size(); i++){ if (i % 2 == 0){ r = r + l.get(i); } return r; }

13 UD7: Paso de parámetros. Diseño de programas iterativos Diseño de Programas Iterativos  Usaremos while cuando nuestro diseño iterativo no requiera una variable contador.  Ejemplo: cree un método que calcule la división entera entre dos números de tipo entero y devuelva el resultado. public static Integer divisionEntera(Integer a, Integer b){ Integer res = 0, aux = a; while(aux >= b){ aux = aux - b; res++; } return res; } public static Integer divisionEntera(Integer a, Integer b){ Integer res = 0, aux = a; while(aux >= b){ aux = aux - b; res++; } return res; }


Descargar ppt "Paso de parámetros Diseño de programas iterativos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 7 Versión."

Presentaciones similares


Anuncios Google