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