Funciones/M´todos            e                  Las funciones/m´todos son trozos de c´digo que encapsulan                 ...
Funciones/M´todos en JAVA            e                  La funci´n matem´tica funcion(x) = x 2 + 3 podr´ verse en         ...
Funciones/M´todos            e                  Las funciones en JAVA tienen varias partes importantes en su              ...
Un ejemplo completo        class EjemploFuncion        {          public static void main(String[] args)          {       ...
Temas importantes en el uso de funciones                  M´todo principal main.                   e                  Par´...
Ejemplo        class Ejemplo        {          public static void main(String[] args)          {            double a = Are...
Ejemplo        class Ejemplo        {          public static void main(String[] args)          {            int n;        ...
Ejemplo        class Ejemplo        {          public static void main(String[] args)          {            int num, f;   ...
Ejemplo        class Ejemplo        {          public static void main(String[] args)          {            int num = 1;  ...
Varios par´metros           a        Haga una funci´n potencia que reciba dos datos enteros y retorne                     ...
Ejemplo potencia        class Ejemplo        {          public static void main(String[] args)          {            int n...
Ejemplo dos funciones        class Ejemplo        {          public static void main(String[] args)          {            ...
Funciones/M´todos            e        Los m´todos nos sirven entre otras cosas para:             e                  No rep...
Funciones sin valor de retorno        Algunas funciones pueden no retornar un valor pero servirnos en        alguna tarea ...
Funciones sin valor de retorno        class ImprimeMatriz        {          public static void main(String[] args)        ...
Arreglos como datos de entrada                  Cuidado cuando se pasa un arreglo a un m´todo.                            ...
M´todos y Arreglos  e        class Ejemplo        {          public static void main(String[] args)          {            ...
Matrices como arreglos                  Cuando creamos una matriz en realidad lo que estamos                  creando es u...
Arreglos como matrices y m´todos                           e        class Ejemplo        {          public static void mai...
Funciones que llaman a otras funciones                  El m´todo principal (main) puede llamar a otros m´todos y         ...
Upcoming SlideShare
Loading in …5
×

Estructurada 7

251 views
193 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
251
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Estructurada 7

  1. 1. Funciones/M´todos e Las funciones/m´todos son trozos de c´digo que encapsulan e o cierta funcionalidad especial. En general tienen datos de entrada y datos de salida (pueden no tenerlos). Son muy similares a la idea de una funci´n en matem´ticas: o a funcion(x) = x 2 + 3 Esta funci´n tiene una definici´n y puede ser evaluada con o o distintos valores, por ejemplo si hacemos funcion(5) sabemos que el resultado ser´ 28. aJorge P´rez e – Programaci´n Estructurada en JAVA o 1 / 20
  2. 2. Funciones/M´todos en JAVA e La funci´n matem´tica funcion(x) = x 2 + 3 podr´ verse en o a ıa JAVA como funcion(x) { resultado = x * x + 3 } veremos que es un poco m´s complicado.... a La idea ser´ poder usar la funcion en un c´digo cualquiera, a o por ejemplo: int x, y; x = 1 + funcion(2); y = funcion(x); System.out.println(x); System.out.println(y);Jorge P´rez e – Programaci´n Estructurada en JAVA o 2 / 20
  3. 3. Funciones/M´todos e Las funciones en JAVA tienen varias partes importantes en su definici´n: o Nombre → funcion Nombres de los datos de entrada → x Tipos de datos de entrada → ??? Tipo de dato de retorno → ??? C´digo v´lido interno o a Instrucci´n de retorno → ??? o En JAVA se un poco m´s como: a int funcion(int x) { int resultado = x * x + 3; return resultado; } adicionalmente tenemos que empezar la funci´n con o public static luego veremos qu´ significa... eJorge P´rez e – Programaci´n Estructurada en JAVA o 3 / 20
  4. 4. Un ejemplo completo class EjemploFuncion { public static void main(String[] args) { int x, y; x = 1 + funcion(2); y = funcion(x) * funcion(x - 2); System.out.println(x); System.out.println(y); System.out.println( funcion(0) ); } public static int funcion(int x) { int resultado; resutado = x * x + 3; return resultado; } }Jorge P´rez e – Programaci´n Estructurada en JAVA o 4 / 20
  5. 5. Temas importantes en el uso de funciones M´todo principal main. e Par´metros y ´mbito de las variables. a a Valor e instrucci´n de retorno return. o Orden de ejecuci´n de las instrucciones. o Distintos tipos de datos de entrada y salida. Distinta cantidad de par´metros. a Veremos estos conceptos con otros ejemplos.Jorge P´rez e – Programaci´n Estructurada en JAVA o 5 / 20
  6. 6. Ejemplo class Ejemplo { public static void main(String[] args) { double a = AreaCirc(2); System.out.println(a); } public static double AreaCirc(double radio) { double area; area = 3.14 * radio * radio; return area; } }Jorge P´rez e – Programaci´n Estructurada en JAVA o 6 / 20
  7. 7. Ejemplo class Ejemplo { public static void main(String[] args) { int n; System.out.println("Dime un numero"); n = In.readInt(); if ( esPrimo(n) ) { System.out.println( n + " es primo"); } else { System.out.println( n + " no es primo"); } } public static boolean esPrimo(int n) { int i = 2; while ( (n % i) != 0 && i < n ) { i++; } if ( i == n ) { return true; } else { return false; } } }Jorge P´rez e – Programaci´n Estructurada en JAVA o 7 / 20
  8. 8. Ejemplo class Ejemplo { public static void main(String[] args) { int num, f; System.out.println("Ingrese un numero"); num = In.readInt(); f = factorial(num); System.out.println("El factorial de " + num + " es " + f); } public static int factorial(int numero) { int factorial = 1; for(int i =1; i<=numero; i++) { factorial = factorial * i; } return factorial; } }Jorge P´rez e – Programaci´n Estructurada en JAVA o 8 / 20
  9. 9. Ejemplo class Ejemplo { public static void main(String[] args) { int num = 1; while( factorial(num) < 110 ) { num++; } System.out.println(num); } public static int factorial(int numero) { int factorial = 1; for(int i =1; i<=numero; i++) { factorial = factorial * i; } return factorial; } }Jorge P´rez e – Programaci´n Estructurada en JAVA o 9 / 20
  10. 10. Varios par´metros a Haga una funci´n potencia que reciba dos datos enteros y retorne o el resultado de elevar el primer dato al segundo. public static int potencia(int base, int exponente) { int resultado = 1; int i; for(i = 1; i <= exponente; i++) { resultado = resultado * base; } return resultado; } ahora podemos usarlo en el m´todo principal eJorge P´rez e – Programaci´n Estructurada en JAVA o 10 / 20
  11. 11. Ejemplo potencia class Ejemplo { public static void main(String[] args) { int n, i; System.out.print("Dime un entero positivo"); n = In.readInt(); System.out.println("Las primeras 5 potencias de " + n + " son:"); for( i = 1; i <= 5; i++) { System.out.println(potencia(n,i)); } } public static int potencia(int base, int exponente) { int resultado = 1; int i; for(i = 1; i <= exponente; i++) { resultado = resultado * base; } return resultado; } }Jorge P´rez e – Programaci´n Estructurada en JAVA o 11 / 20
  12. 12. Ejemplo dos funciones class Ejemplo { public static void main(String[] args) { int n, i; System.out.println("Dime un entero positivo"); n = In.readInt(); System.out.println( n + "! = " + factorial(n) ); System.out.println( n + "^" + n + " = " + potencia(n,n)); } public static int potencia(int base, int exponente) { int resultado = 1; int i; for(i = 1; i <= exponente; i++) { resultado = resultado * base; } return resultado; } public static int factorial(int numero) { int factorial = 1; for(int i =1; i<=numero; i++) { factorial = factorial * i; } return factorial; } }Jorge P´rez e – Programaci´n Estructurada en JAVA o 12 / 20
  13. 13. Funciones/M´todos e Los m´todos nos sirven entre otras cosas para: e No repetir lo mismo varias veces en el c´digo. o Ordenar el c´digo. o Comprender m´s f´cilmente el c´digo. a a o Separar trabajo entre programadores. Realizar trabajos m´s complejos. a Veremos otras formas de interacci´n entre funciones. oJorge P´rez e – Programaci´n Estructurada en JAVA o 13 / 20
  14. 14. Funciones sin valor de retorno Algunas funciones pueden no retornar un valor pero servirnos en alguna tarea repetitiva. Si no hay valor de retorno usamos void como valor de retorno: class Ejemplo { public static void main(String[] args) { int n; muestraMenu(); n = In.readInt(); while( n != 0 ) { ..... ..... muestraMenu(); n = In.readInt(); } } public static void muestraMenu() { System.out.println("Menu:"); System.out.println("====="); System.out.println("0 para salir"); System.out.println("1 para obtener promedio"); System.out.println("2 para obtener minimo"); System.out.println("3 para obtener maximo"); } }Jorge P´rez e – Programaci´n Estructurada en JAVA o 14 / 20
  15. 15. Funciones sin valor de retorno class ImprimeMatriz { public static void main(String[] args) { int[][] Tablero = {{2, 3, 5}, {4, 6, 1}}; muestraMatriz(Tablero, 2, 3); } public static void muestraMatriz(int[][] M, int n, int m) { int i,j; for(i = 0; i < n; i++) { for(j = 0; j < m; j++) { System.out.print(M[i][j] + " "); } System.out.println(); } } }Jorge P´rez e – Programaci´n Estructurada en JAVA o 15 / 20
  16. 16. Arreglos como datos de entrada Cuidado cuando se pasa un arreglo a un m´todo. e Como vimos un arreglo es una referencia. Cuando un arreglo se entrega a un m´todo cualquier cambio e que se haga al arreglo se mantendr´ al terminar el llamado a a la funci´n. o Podemos usar esto para generar m´todos que implicitamente e generen varios valores de salida. public static void transponer(int[][] M, int n) { int i,j,t; for(i = 0; i < n; i++) { for(j = i; j < n; j++) { t = M[i][j]; M[i][j] = M[j][i]; M[j][i] = t } } }Jorge P´rez e – Programaci´n Estructurada en JAVA o 16 / 20
  17. 17. M´todos y Arreglos e class Ejemplo { public static void main(String[] args) { double[] a= {1.0, 2.4, 5.6, 4.5, 6.7}; int i; swap(a, 0, 3); for(i = 0; i < 5; i++) { System.out.print(a[i]+ " "); } } public static void swap(double[] A, int i, int j) { double temp; temp= A[i]; A[i]= A[j]; A[j]=temp; } }Jorge P´rez e – Programaci´n Estructurada en JAVA o 17 / 20
  18. 18. Matrices como arreglos Cuando creamos una matriz en realidad lo que estamos creando es un arreglo de arreglos. Por ejemplo, si escribimos: int[][] a; lo que creamos es una variable a que hace referencia a un arreglo (de arreglos), no a una matriz. Luego cuando escribimos: a = new int[3][4]; lo que creamos es un arreglo de tres elementos, a[0], a[1], a[2].Jorge P´rez e – Programaci´n Estructurada en JAVA o 18 / 20
  19. 19. Arreglos como matrices y m´todos e class Ejemplo { public static void main(String[] args) { int[][] A={{1,2,3}, {4,5,6}, {7,8,9}}; int[] b = A[0]; int i; for(i = 0; i < 3 i++) { System.out.println(b[i]); } swap(A[0], 0, 2) for(i = 0; i < 3 i++) { System.out.println(b[i]); } } public static void swap(double[] A, int i, int j) { double temp; temp= A[i]; A[i]= A[j]; A[j]=temp; } }Jorge P´rez e – Programaci´n Estructurada en JAVA o 19 / 20
  20. 20. Funciones que llaman a otras funciones El m´todo principal (main) puede llamar a otros m´todos y e e estos a su vez pueden llamar a otros. class Ejemplo { public static void main(String[] args) { ... } public static double combinaciones(int n, int k) { int c; c = factorial(n) / ( factorial(k) * factorial(n-k) ); return c; } public static double factorial (int numero) { int factorial = 1; for(int i = 1; i <= numero; i++) { factorial = factorial * i; } return factorial; } }Jorge P´rez e – Programaci´n Estructurada en JAVA o 20 / 20

×