Páginas

lunes, 21 de abril de 2014

Metodos en Java

Los metodos en JAVA, son un conjuntos de instrucciones con la finalidad de realizar una tarea especifica, existen distintos tipos de metodos: los que devuelven o retornan un valor, los que no devuelven ningun valor, metodos que aceptan parametros o variables de entradas (1 o mas), metodos que no tienen ningun parametro de entrada.
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