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

Entradas populares de este blog

BUSQUEDA BINARIA EN C++

holas aqui les dejo el codigo de un ejemplo de busqueda binaria en un vector; esto esta hecho en dev c++.
recordemos que para hacer la busqueda binaria hay un requisito y es que el vector donde se va a buscar debe estar ordenado.
todos los creditos a alejandro ;)

HACER UN LOGIN CON VISUAL BASIC .NET

En este tutorial veremos como crear un formulario para hacer un login de manera fácil y sencilla, la herramienta con la cual se trabajara es visual studio 2010. Para comenzar crearemos un proyecto aplicación de Windows forms visual Basic.

damos un nombre al proyecto y clic en aceptar.  El proyecto se creara con  un formulario por defecto.

ahora vamos a agregar el formulario para hacer el login; para esto damos clic en proyecto agregar Windows form, formulario de inicio de sesión.


le damos un nombre al formulario y clic en aceptar. Aparecerá la siguiente ventana


en esta ventana ya podemos configurar todas las propiedades que necesitemos desde cambio de colores imagen etc.
El siguiente paso es hacer el código para la autentificación El formulario ya tiene un código predefinido el cual vamos a cambiar por un código personalizado.
Para comenzar aremos doble clic sobre el botón que  Aceptar  para que nos muestre el código El eveto del botón tiene el siguiente código
Me.close()
Esa l…

CREAR ARCHIVOS TXT EN VISUAL BASIC 2010

Buenas hoy veremos un ejemplo para crear un archivo .txt en visual basic .NET  utilizando la herramienta visual studio 2010.
el manual de referencia lo podemos encontrar en el libro 
VISUAL BASIC .NET lenguaje y aplicaciones 3ra edicion  Fco. Javier Ceballos
el tipo de acceso mas simple a un fichero de datos es el secuencial, un fichero abierto  para acceso secuencial es un fichero que puede almacenar registros de cualquier longitud.
Este tipo de acceso generalmente se utiliza con ficheros de texto en los que se escribe toda la información desde el principio hasta el final y se lee de la misma forma.
las acciones mas comunes que se manejan a la hora de trabajar con archivos son: CreateNew: crea un nuevo fichero. Si el fichero existe se lanzara una excepción del tipo IOException Create: Crear un nuevo fichero. Si el fichero existe sera sobrescrito  Open: abrir el fichero existente OpenOrCreate: abrir un fichero si existe si no se crea uno nuevo Truncate: abrir un fichero existente y trunca…