Holas esta ves les traigo un ejercicio muy simple de recursividad en java
se trata de un par de ejercicios que se hacen en metodos recursivos con un menu por consola utiliza la clase main y la clase operaciones 1
aqui les dejo el codigo de las dos clases espero y les sirva ;)
/*
* tarea de recursividad que consiste en hacer un menu con diferentes metodos que usan funciones
recursivas este programa utiliza dos clases una que es el main donde se ejecuta todo y se
envian los parametros a la clase operaciones1 que se encarga de realizar las operaciones correspondientes
*/
package recursividad1;
//paquetes importados para el proyecto
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
//declaracion de variables globales
operaciones1 opera = new operaciones1();
int opcion = 0;
// condicional que se hace hasta que el usuario decida salir
while (opcion!=5){
//opciones que el usuario puede digitar
System.out.println("DIGITE UNA OPCION" );
System.out.println("\t1. INVERTIR UN NUMERO" );
System.out.println("\t2. SUMA VECTOR" );
System.out.println("\t3. NUMERO POSITIVO" );
System.out.println("\t4. NUMERO NEGATIVO" );
System.out.println("\t5. SALIR" );
System.out.println("INTRODUCE LA OPCION ELEGIDA :");
InputStreamReader entrada = new InputStreamReader(System.in);
BufferedReader flujoEntrada = new BufferedReader(entrada);
String datoEntrada = flujoEntrada.readLine();
opcion = Integer.parseInt(datoEntrada);
int n = 0;
int i;
int tamaño = 0;
int [] vec;
int v;
// switch que permite decidir entre varias opciones
switch (opcion)
{
// caso 1 en el que pide un numero lo lee y lo envia al metodo invertir
case 1:
System.out.println("digite el numero a invertir");
String m = flujoEntrada.readLine();
n = Integer.parseInt(m);
opera.invertir(n);
break;
// caso dos en el que pide el tamaño del vector los numeros y los envia el metodo suma_vec
case 2:
System.out.println("Ingrese el tamaño del vector: ");
String b = flujoEntrada.readLine();
v = Integer.parseInt(b);
for(i=1;i<=v;i++){ System.out.println("ingrese el numero para la suma:"); String a = flujoEntrada.readLine(); n = Integer.parseInt(a); opera.suma_vec(v , n); } break; // caso 3 pide un numero y lo envia al metodo positivo case 3: System.out.println("ingrese el numero"); String positivo = flujoEntrada.readLine(); n = Integer.parseInt(positivo); opera.positivo(n); break; // caso 4 pide un numero y lo envia al metodo negativo case 4: System.out.println("ingrese el numero"); String negativo = flujoEntrada.readLine(); n = Integer.parseInt(negativo); opera.negativo(n); break; //caso 5 es el que saca al usuario del programa case 5: System.exit(5); break; default: System.out.println("la opcion ingresada no es valida "); break; } } } } y aqui va la clase de operaciones /* clase operaciones1 que es requerida por el Main para ejecutar el programa */ package recursividad1; public class operaciones1 { // metodo invertir que recibe el parametro entero n hace las operaciones necesarias y devuelve el //numero de manera inversa public int invertir(int n) { int inv=0; if (n<10){ inv=n; } else if ((n/10)<10){ inv=(10*(n%10))+(n/10); } else{ inv=(n%10)+(invertir(n/10)*10); } System.out.println("el numero invertido es "+inv); return(inv); } //metodo que suma los numeros de un vector //tiene como variable local suma y recibe dos parametros enteros public int suma_vec(int v [], int n) { int suma; if (n == 0){ System.out.println("el vector esta vacio"+v[n]); return v [n]; } else suma=suma_vec(v, n - 1) + v [n]; System.out.println("la suma es:"+suma); return suma; } //metodo positivo es un metodo que recibe un parametro entero y debuelve verdadero o falso public boolean positivo(int n){ if(n>0)
{
System.out.println("el numero"+n+"es positivo");
return true;
}
else
System.out.println("el numero" +n+ "es negativo");
return negativo(n);
}
//metodo negativo es un metodo que recibe un parametro entero y en caso de no cumplir la condicion debuelve falso
public boolean negativo(int n){
if(n<0)
{
System.out.println("el numero"+n+"es negativo");
return false;
}
else
System.out.println("el numero"+n+"es positivo");
return positivo(n);
}
void suma_vec(int v, int n) {
}
}
este esta hecho con netbeans 6.9.1
se trata de un par de ejercicios que se hacen en metodos recursivos con un menu por consola utiliza la clase main y la clase operaciones 1
aqui les dejo el codigo de las dos clases espero y les sirva ;)
/*
* tarea de recursividad que consiste en hacer un menu con diferentes metodos que usan funciones
recursivas este programa utiliza dos clases una que es el main donde se ejecuta todo y se
envian los parametros a la clase operaciones1 que se encarga de realizar las operaciones correspondientes
*/
package recursividad1;
//paquetes importados para el proyecto
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
//declaracion de variables globales
operaciones1 opera = new operaciones1();
int opcion = 0;
// condicional que se hace hasta que el usuario decida salir
while (opcion!=5){
//opciones que el usuario puede digitar
System.out.println("DIGITE UNA OPCION" );
System.out.println("\t1. INVERTIR UN NUMERO" );
System.out.println("\t2. SUMA VECTOR" );
System.out.println("\t3. NUMERO POSITIVO" );
System.out.println("\t4. NUMERO NEGATIVO" );
System.out.println("\t5. SALIR" );
System.out.println("INTRODUCE LA OPCION ELEGIDA :");
InputStreamReader entrada = new InputStreamReader(System.in);
BufferedReader flujoEntrada = new BufferedReader(entrada);
String datoEntrada = flujoEntrada.readLine();
opcion = Integer.parseInt(datoEntrada);
int n = 0;
int i;
int tamaño = 0;
int [] vec;
int v;
// switch que permite decidir entre varias opciones
switch (opcion)
{
// caso 1 en el que pide un numero lo lee y lo envia al metodo invertir
case 1:
System.out.println("digite el numero a invertir");
String m = flujoEntrada.readLine();
n = Integer.parseInt(m);
opera.invertir(n);
break;
// caso dos en el que pide el tamaño del vector los numeros y los envia el metodo suma_vec
case 2:
System.out.println("Ingrese el tamaño del vector: ");
String b = flujoEntrada.readLine();
v = Integer.parseInt(b);
for(i=1;i<=v;i++){ System.out.println("ingrese el numero para la suma:"); String a = flujoEntrada.readLine(); n = Integer.parseInt(a); opera.suma_vec(v , n); } break; // caso 3 pide un numero y lo envia al metodo positivo case 3: System.out.println("ingrese el numero"); String positivo = flujoEntrada.readLine(); n = Integer.parseInt(positivo); opera.positivo(n); break; // caso 4 pide un numero y lo envia al metodo negativo case 4: System.out.println("ingrese el numero"); String negativo = flujoEntrada.readLine(); n = Integer.parseInt(negativo); opera.negativo(n); break; //caso 5 es el que saca al usuario del programa case 5: System.exit(5); break; default: System.out.println("la opcion ingresada no es valida "); break; } } } } y aqui va la clase de operaciones /* clase operaciones1 que es requerida por el Main para ejecutar el programa */ package recursividad1; public class operaciones1 { // metodo invertir que recibe el parametro entero n hace las operaciones necesarias y devuelve el //numero de manera inversa public int invertir(int n) { int inv=0; if (n<10){ inv=n; } else if ((n/10)<10){ inv=(10*(n%10))+(n/10); } else{ inv=(n%10)+(invertir(n/10)*10); } System.out.println("el numero invertido es "+inv); return(inv); } //metodo que suma los numeros de un vector //tiene como variable local suma y recibe dos parametros enteros public int suma_vec(int v [], int n) { int suma; if (n == 0){ System.out.println("el vector esta vacio"+v[n]); return v [n]; } else suma=suma_vec(v, n - 1) + v [n]; System.out.println("la suma es:"+suma); return suma; } //metodo positivo es un metodo que recibe un parametro entero y debuelve verdadero o falso public boolean positivo(int n){ if(n>0)
{
System.out.println("el numero"+n+"es positivo");
return true;
}
else
System.out.println("el numero" +n+ "es negativo");
return negativo(n);
}
//metodo negativo es un metodo que recibe un parametro entero y en caso de no cumplir la condicion debuelve falso
public boolean negativo(int n){
if(n<0)
{
System.out.println("el numero"+n+"es negativo");
return false;
}
else
System.out.println("el numero"+n+"es positivo");
return positivo(n);
}
void suma_vec(int v, int n) {
}
}
este esta hecho con netbeans 6.9.1
Comentarios
Publicar un comentario