Manual Estructura de Datos-Funciones y Metodos

Embed Size (px)

DESCRIPTION

un buen material para programadores

Citation preview

Estructura de Datos IDAT

Luis Arias Hidalgo

Tema 4: Funciones y ProcedimientosFunciones. Las funciones son bloques de cdigo utilizados para dividir un programa en partes ms pequeas, cada una de las cules tendr una tarea determinada. para luego retornar al punto desde donde fue llamada. Es decir es un conjunto de sentencias que hacen un proceso y devuelven un valor. Algunas funciones hacen un proceso pero no devuelven nada , en este caso a la funcin se le conoce como mtodo o procedimiento Sintaxis: tipo_funcin nombre_funcin (tipo y nombre de argumentos) { bloque de sentencias }

tipo_funcin: puede ser de cualquier tipo de los que conocemos. El valor devuelto por la funcin ser de este tipo. Por defecto, es decir, si no indicamos el tipo, la funcin devolver un valor de tipo entero ( int ). Si no queremos que retorne ningn valor deberemos indicar el tipo vaco ( void ). nombre_funcin: es el nombre que le daremos a la funcin. tipo y nombre de argumentos: son los parmetros que recibe la funcin. Los argumentos de una funcin no son ms que variables locales que reciben un valor. Este valor se lo enviamos al hacer la llamada a la funcin. Pueden existir funciones que no reciban argumentos. bloque de sentencias: es el conjunto de sentencias que sern ejecutadas cuando se realice la llamada a la funcin. Las funciones pueden ser llamadas desde la funcin main o desde otras funciones. Nunca se debe llamar a la funcin main desde otro lugar del programa. Por ltimo recalcar que los argumentos de la funcin y sus variables locales se destruirn al finalizar la ejecucin de la misma. Ejemplo /* 1) */ /* 2) */ /* 3) */ /* 4) */ int sumar(int a , int b) { return a + b; }

1) cabecera del mtodo : int sumar(int a,int b) tipo del resultado : int nombre del mtodo : sumar lista de parmetros : int a,int b 2) comienzo del bloque o cuerpo del mtodo 3) Instruccin : se retorna la suma de a y b 4) fin del bloque

-1-

Estructura de Datos IDAT

Luis Arias Hidalgo

Si se coloca las palabras public static antes del mtodo se logra un comportamiento de tipo global. 1.- Crear una function que devuleva la suma de 2 numeros class suma { public static void main(String arg[ ]) { int x,y; x = 12; y = 34; int s = suma(x,y); System.out.println("La suma es : " + s); } //Aqui se define la funcion public static int suma(int a,int b) { return a + b; } } Resultado:

1.- Crear una function que devuelva TRUE si un numero es par caso contario devuelva FALSE class metodo1 { public static void main(String arg[ ]) { int a = 5; if ( par(a) == true) { System.out.println(a + " es par "); } else { System.out.println(a + " es impar"); } } public static boolean par(int num) { boolean p = false; if (num % 2 == 0) { p = true; } return p; } }

-2-

Estructura de Datos IDAT

Luis Arias Hidalgo

3.- implementar un programa en java que determine los 100 primeros nmeros palndromes a partir de un nmero ingresado por teclado en adelante, llamando al mtodo : invertir_num.

class palindromes { public static void main(String Arg[ ]) { int numero = 0; int contador = 0; numero = Integer.parseInt(JOptionPane.showInputDialog(Ingrese numero)); System.out.println("\nLos 100 primeros palindromes a contar del " + numero); System.out.println("\n"); while (contador < 100) { if ( invertir_num(numero) == numero) { System.out.print(numero + "\t"); contador++; } numero++; } } public static int invertir_num ( int num ) { int div_entera,resto,num_inv; num_inv = 0; div_entera = num; resto = 0; while (div_entera != 0) { resto = div_entera % 10; div_entera = div_entera / 10; num_inv = num_inv * 10 + resto; } return num_inv; } }

-3-

Estructura de Datos IDATPaso de valores a funciones

Luis Arias Hidalgo

En el paso de parmetros a funciones hay dos aproximaciones clsicas: el paso por valor y paso por referencia.

Paso por valor significa que cuando un argumento se pasa a una funcin, la funcin recibe unacopia del valor original. Por lo tanto, si la funcin modifica el parmetro, slo la copia cambia y el valor original permanece intacto.

Paso por referencia significa que cuando un argumento se pasa a una funcin, la funcinrecibe la direccin de memoria del valor original, no la copia del valor. Por lo tanto, si la funcin modifica el parmetro, el valor original en el cdigo que llam a la funcin cambia. Ejercicios Resueltos 1. Imprimir nombre y promedio de un alumno, capturar 3 calificaciones y nombre en un procedimiento, calcular promedio en una funcin y mostrar los resultados. Pasando parmetros por valor package ejemplo1; import javax.swing.JOptionPane; public class Main { static double promedio (int n1, int n2, int n3){ double prom; prom = (n1+n2+n3)/3; return prom; } static int pedirnum(){ String nota =JOptionPane.showInputDialog("Ingrese Nota1:"); return Integer.parseInt(nota); } public static void main(String[] args) { String nota; int n1,n2,n3; double prom; n1 = pedirnum();n2 = pedirnum();n3 = pedirnum(); prom = promedio(n1,n2,n3); JOptionPane.showMessageDialog( null,prom,"Resultado",JOptionPane.INFORMATION_MESSAGE ); } }

-4-

Estructura de Datos IDAT

Luis Arias Hidalgo

2. Crear una tabla de multiplicar, capturar datos de entrada en funcin, control de ciclo en el principal, operaciones en una funcin, muestra de datos en el principal. import javax.swing.JOptionPane; public class Main { public int pedirnum(){ String nota =JOptionPane.showInputDialog("Ingrese Nota1:"); return Integer.parseInt(nota); } public String tabla(int num,int por){ return (num + " x " +por + " = "+num*por); } public static void main(String[] args) { int i,n = pedirnum(); for (i=0;i