Ir al contenido principal

Recursividad en Java + Codigo Fuente

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

Comentarios

Entradas populares de este blog

Tablas y gráficas estadísticas dinámicas con JavaScript, highcharts, HTML y JSON

Después de tener mucho tiempo sin entradas, quiero retomar  el blog  con un poco más de desarrollo códigos ejemplos y más cosas interesantes que he podido realizar en mi día a día. En esta ocasión quiero realizar un ejemplo para el cual pueda  graficar tablas, gráficas estadísticas  utilizando la librería de highcharts ( https://www.highcharts.com/ ), esta librería tiene muchas aplicaciones se puede  usar en diferentes campos y es realmente interesante para realizar todo tipo de tratamiento de data. Este ejemplo se va a trabajar sobre un proyecto realizado en visual studio 2015, pero se debe tener en cuenta que se puede aplicar a cualquier tipo de proyecto en el cual se use javascript y objetos JSON. La idea con este código es poder generar la cantidad de objetos JSON que sean necesarios desde  el code behind usado y este sea procesado para que se genere a nivel del cliente todas las gráficas requeridas. Ejemplo: 1- Se debe crear el proyecto con el cual se va

Exportar Archivos en C# con NPOI

Siempre que se tiene que exportar un archivo, se tienen varias opciones; se puede pensar en usar reporting services, se puede usar librerías que se encuentran en la red, se pueden usar librerías especificas de .NET, pero hoy vamos a ver como usar la librería NPOI. La librería NPOI es una librería de código abierto que se usa para parsear data en archivos de excel, en este caso vamos a usar  un data set  para realizar toda la operación. Se va a crear un libro de excel con extensión xlsx, en el cual se va a crear la plantilla que se requiere para poder visualizar la data y la gráfica correspondiente. se crea el método dentro del cual se tendrá la lógica         public void ejemplonpoi()           { } Se crean la variables necesarias para realizar la conversión del archivo             var extension = "xlsx";             string result = Path.GetTempPath();             DataSet dt = new DataSet();             dt = (DataSet)Session["ListData"