Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porEva María Botella Poblete Modificado hace 9 años
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; }
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.