Los metodos pueden ser llamados en cualquier lugar del programa principal.
Metodos que Retornan un valor (funcion)
EJEMPLOS:
1) Dado un numero leido por teclado calcular su factorial.
import java.util.Scanner; class Metodo01 { static int facto(int n){ int f=1; for (int i = 1; i <= n; i++) { f=f*i; } return f; } public static void main(String[] args) { int x,y; //leemos un numero por teclado Scanner lee=new Scanner(System.in); x=lee.nextInt(); //llamamos al metodo facto y lo guardamos en la variable y y=facto(x); System.out.println(x+"! = "+y); } }
El metodo facto(int n) tiene un parametro de entrada y devuelve un valor entero (int f)
2) Hallar el maximo comun divisor entre dos numeros. Ej mcd(21,6)=3
import java.util.Scanner; class Metodo02 { static int mcd(int a,int b){ while(a!=b){ if(a>b) a=a-b; else b=b-a; } return a; } public static void main(String[] args) { int x,y,z; //leemos dos valores Scanner lee=new Scanner(System.in); x=lee.nextInt(); y=lee.nextInt(); //llamamos al metodo mcd //para hallar el maximo comun divisor de x e y z=mcd(x,y); System.out.println("mcd("+x+","+y+")="+z); } }
El metodo mcd(int a,int b) tiene dos parametro de entrada y devuelve un valor entero
3) Hallar el area de un circulo (A=π r2) dado el valor de radio introducido por teclado. Ej si r=3u A=π(3)(3)=28,27u2
import java.util.Scanner; class Metodo03 { static double AreaCirculo(int r){ double res; res=Math.PI*r*r; return res; } public static void main(String[] args) { int radio; double a; //leemos dos valores Scanner lee=new Scanner(System.in); radio=lee.nextInt(); //llamamos al metodo AreaCirculo //y lo guardamo en a a=AreaCirculo(radio); //mostramos el resultado usando dos decimales (%.2f) System.out.printf("Area del circulo de radio %du es : %.2f u^2",radio,a); } }
El metodo AreaCirculo(int r) tiene un parametro de entrada y devuelve un valor real (double)
4) Invertir los caracteres de una cadena introducida por teclado. Ej. cad="hola", cadena invertida cad2="aloh"
import java.util.Scanner; class Metodo04 { static String InvierteCadena(String cad) { String ncad = ""; for (int i = 0; i < cad.length(); i++) { ncad = cad.charAt(i) + ncad; } return ncad; } public static void main(String[] args) { String cadena,cad2; // leemos por teclado Scanner lee = new Scanner(System.in); cadena = lee.nextLine(); // llamamos al metodo InvierteCadena // y lo guardamo en cad2 cad2 = InvierteCadena(cadena); // mostramos el resultado System.out.println("Cadena invertida : "+cad2); } }
El metodo InvierteCadena(String cad) tiene un parametro de entrada y devuelve una cadena
5) Introducir un numero por teclado y comprobar si es primo o no
import java.util.Scanner; class Metodo05 { static boolean EsPrimo(int p) { int d = 2; while (p % d != 0 && p>1) { d++; } if (p==d) return true;//p es primo else return false;//p No es primo } public static void main(String[] args) { int n; // leemos un numero por teclado Scanner lee = new Scanner(System.in); n = lee.nextInt(); // llamamos al metodo EsPrimo y preguntamos si n es Primo if (EsPrimo(n)) System.out.println(n + " es primo"); else System.out.println(n + " No es primo"); } }
Metodos que NO Retornan un valor (procedimientos)
EJEMPLOS:
Crear un menu de opciones para llenar, mostrar, y contar los elementos de un vector de tipos entero
import java.util.Scanner; class Metodo06 { static int n; static void llenar(int v[],int n){ int i; Scanner lee; for(i=1;i<=n;i++){ lee=new Scanner(System.in); v[i]=lee.nextInt(); } } static void mostrar(int v[],int n){ int i; for(i=1;i<=n;i++) System.out.print(v[i]+" "); System.out.println(); } static int CuentaPares(int v[],int n){ int i,c=0; for(i=1;i<=n;i++){ if(v[i]%2==0) c++; } return c; } static void menu() { System.out.println(" ----------------------------------"); System.out.println(" MENU"); System.out.println(" 1. Llenar elementos de un vector"); System.out.println(" 2. Mostramos elementos de un vector"); System.out.println(" 3. Contar Elementos pares de un vector"); System.out.println(" 4. Salir"); System.out.println(" ----------------------------------"); } public static void main(String[] args) { int op; int vector[]=new int[20]; // leemos dos valores do{ menu(); Scanner lee = new Scanner(System.in); op = lee.nextInt(); switch (op) { case 1: System.out.print("cantidad de elementos : "); Scanner lee2=new Scanner(System.in); n=lee2.nextInt(); System.out.println("llenamos los elementos del vector"); llenar(vector,n); break; case 2: System.out.println("Mostramos los elementos del vector"); mostrar(vector,n); break; case 3: System.out.println("Cantidad de elementos pares del vector : "+CuentaPares(vector,n)); break; } }while (op != 4); } }
En este caso tenemos cuatro metodos:
El metodo llenar(int v[],int n) que tiene dos parametros de entrada y no devuelve ningun valor,
El metodo mostrar(int v[],int n) que tiene dos parametros de entrada y no devuelve ningun valor,
El metodo ContarPares(int v[],int n) que tiene dos parametros de entrada y devuelve un valor,
El metodo menu() que NO tiene ningun parametro de entrada y no devuelve ningun valor
No hay comentarios:
Publicar un comentario