0% encontró este documento útil (0 votos)
296 vistas20 páginas

Funciones y Procedimientos en Java

El documento describe las funciones y métodos en Java, incluyendo su definición, parámetros, tipos de datos de entrada y salida, y cómo se usan para encapsular funcionalidad y ordenar el código de manera modular.

Cargado por

Carlos PS
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
296 vistas20 páginas

Funciones y Procedimientos en Java

El documento describe las funciones y métodos en Java, incluyendo su definición, parámetros, tipos de datos de entrada y salida, y cómo se usan para encapsular funcionalidad y ordenar el código de manera modular.

Cargado por

Carlos PS
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Funciones/M etodos

Las funciones/m etodos son trozos de c odigo que encapsulan 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 on en matem aticas: funcion(x ) = x 2 + 3

Esta funci on tiene una denici on y puede ser evaluada con distintos valores, por ejemplo si hacemos funcion(5) sabemos que el resultado ser a 28.
Jorge P erez Programaci on Estructurada en JAVA 1 / 20

Funciones/M etodos en JAVA


La funci on matem atica funcion(x ) = x 2 + 3 podr a verse en JAVA como
funcion(x) { resultado = x * x + 3 }

veremos que es un poco m as complicado.... La idea ser a poder usar la funcion en un c odigo cualquiera, por ejemplo:
int x, y; x = 1 + funcion(2); y = funcion(x); [Link](x); [Link](y);
Jorge P erez Programaci on Estructurada en JAVA 2 / 20

Funciones/M etodos
Las funciones en JAVA tienen varias partes importantes en su denici on:
Nombre funcion Nombres de los datos de entrada x Tipos de datos de entrada ??? Tipo de dato de retorno ??? C odigo v alido interno Instrucci on de retorno ???

En JAVA se un poco m as como:


int funcion(int x) { int resultado = x * x + 3; return resultado; }

adicionalmente tenemos que empezar la funci on con public static luego veremos qu e signica...
Jorge P erez Programaci on Estructurada en JAVA 3 / 20

Un ejemplo completo
class EjemploFuncion { public static void main(String[] args) { int x, y; x = 1 + funcion(2); y = funcion(x) * funcion(x - 2); [Link](x); [Link](y); [Link]( funcion(0) ); } public static int funcion(int x) { int resultado; resutado = x * x + 3; return resultado; } }
Jorge P erez Programaci on Estructurada en JAVA 4 / 20

Temas importantes en el uso de funciones

M etodo principal main. Par ametros y ambito de las variables. Valor e instrucci on de retorno return. Orden de ejecuci on de las instrucciones. Distintos tipos de datos de entrada y salida. Distinta cantidad de par ametros. Veremos estos conceptos con otros ejemplos.

Jorge P erez

Programaci on Estructurada en JAVA

5 / 20

Ejemplo

class Ejemplo { public static void main(String[] args) { double a = AreaCirc(2); [Link](a); } public static double AreaCirc(double radio) { double area; area = 3.14 * radio * radio; return area; } }

Jorge P erez

Programaci on Estructurada en JAVA

6 / 20

Ejemplo
class Ejemplo { public static void main(String[] args) { int n; [Link]("Dime un numero"); n = [Link](); if ( esPrimo(n) ) { [Link]( n + " es primo"); } else { [Link]( 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 erez

Programaci on Estructurada en JAVA

7 / 20

Ejemplo
class Ejemplo { public static void main(String[] args) { int num, f; [Link]("Ingrese un numero"); num = [Link](); f = factorial(num); [Link]("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 erez Programaci on Estructurada en JAVA 8 / 20

Ejemplo
class Ejemplo { public static void main(String[] args) { int num = 1; while( factorial(num) < 110 ) { num++; } [Link](num); } public static int factorial(int numero) { int factorial = 1; for(int i =1; i<=numero; i++) { factorial = factorial * i; } return factorial; } }
Jorge P erez Programaci on Estructurada en JAVA 9 / 20

Varios par ametros


Haga una funci on potencia que reciba dos datos enteros y retorne 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 etodo principal

Jorge P erez

Programaci on Estructurada en JAVA

10 / 20

Ejemplo potencia
class Ejemplo { public static void main(String[] args) { int n, i; [Link]("Dime un entero positivo"); n = [Link](); [Link]("Las primeras 5 potencias de " + n + " son:"); for( i = 1; i <= 5; i++) { [Link](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 erez

Programaci on Estructurada en JAVA

11 / 20

Ejemplo dos funciones


class Ejemplo { public static void main(String[] args) { int n, i; [Link]("Dime un entero positivo"); n = [Link](); [Link]( n + "! = " + factorial(n) ); [Link]( 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 erez

Programaci on Estructurada en JAVA

12 / 20

Funciones/M etodos

Los m etodos nos sirven entre otras cosas para: No repetir lo mismo varias veces en el c odigo. Ordenar el c odigo. Comprender m as f acilmente el c odigo. Separar trabajo entre programadores. Realizar trabajos m as complejos. Veremos otras formas de interacci on entre funciones.

Jorge P erez

Programaci on Estructurada en JAVA

13 / 20

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 = [Link](); while( n != 0 ) { ..... ..... muestraMenu(); n = [Link](); } } public static void muestraMenu() { [Link]("Menu:"); [Link]("====="); [Link]("0 para salir"); [Link]("1 para obtener promedio"); [Link]("2 para obtener minimo"); [Link]("3 para obtener maximo"); } } Jorge P erez Programaci on Estructurada en JAVA 14 / 20

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++) { [Link](M[i][j] + " "); } [Link](); } } }
Jorge P erez Programaci on Estructurada en JAVA 15 / 20

Arreglos como datos de entrada


Cuidado cuando se pasa un arreglo a un m etodo. Como vimos un arreglo es una referencia. Cuando un arreglo se entrega a un m etodo cualquier cambio que se haga al arreglo se mantendr a al terminar el llamado a la funci on. Podemos usar esto para generar m etodos que implicitamente 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 erez Programaci on Estructurada en JAVA 16 / 20

M etodos y Arreglos
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++) { [Link](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 erez Programaci on Estructurada en JAVA 17 / 20

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 erez

Programaci on Estructurada en JAVA

18 / 20

Arreglos como matrices y m etodos

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++) { [Link](b[i]); } swap(A[0], 0, 2) for(i = 0; i < 3 i++) { [Link](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 erez

Programaci on Estructurada en JAVA

19 / 20

Funciones que llaman a otras funciones


El m etodo principal (main) puede llamar a otros m etodos y 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 erez Programaci on Estructurada en JAVA 20 / 20

También podría gustarte