Foro de elhacker.net

Programación => Java => Mensaje iniciado por: bengy en 26 Abril 2011, 00:53 am



Título: ejercicios + soluciones en java
Publicado por: bengy en 26 Abril 2011, 00:53 am

Código:
Este tema es para todos los que estan interesados en programar en JAVA
la finalidad es que compartamos ideas, ejercicios entre otros


Título: Re: ejercicios + soluciones en java
Publicado por: bengy en 26 Abril 2011, 01:41 am
Dada una cadena y una subCadena
verificar si la subCadena se encuentra en la Cadena
ejemplo:
entrada: cadena       =hola                     entrada: cadena        =hola
             subCadena  = hol                                   subCadena  = nuj
 salida: verdadero                                    salida: falso

Código:
public boolean existe(String palabra, String sub){
        boolean res=false;
        int tamPalabra=palabra.length();
        int tamSub= sub.length();
        int i=0;
        while(i<tamPalabra && tamSub<=tamPalabra){
            String auxPal=palabra.substring(i,tamSub);
        if(auxPal.equals(sub)){
            res=true;
         }
        else{
            tamSub++;
        }
        i++;
    }
        return res;
    }

 :rolleyes: :laugh: ;-) :silbar: :silbar: :laugh: ;-)


Título: Re: ejercicios + soluciones en java
Publicado por: 1mpuls0 en 26 Abril 2011, 02:01 am
Hola qué tal.

http://foro.elhacker.net/java/faqentry_point_sources_guias_manuales_tutoriales_y_demas-t298215.0.html
http://foro.elhacker.net/java/ejercicios_java_teoriaejemplos-t34891.0.html

http://foro.elhacker.net/ejercicios/ejercicios_recursivos_en_java_y_sus_soluciones-t231013.0.html
http://foro.elhacker.net/ejercicios/juego_ejercicios_2_java-t282378.0.html
http://foro.elhacker.net/ejercicios/ejercicios_resueltos_java_programacion_estructurada-t201981.0.html

http://foro.elhacker.net/ejercicios/ejercicios_simples_en_java-t221889.0.html

PD. No hace falta que envíes MP  :¬¬

Saludos.


Título: Re: ejercicios + soluciones en java
Publicado por: angelxxi en 28 Abril 2011, 03:51 am
Muy buenajavascript:void(0); aportacion nadamas que si quiero en contrar en la palabra "hola" la subcadena "la" pone false lo unico que hay que agregar es en el while el signo igual
tamSub<=tamPalabra es una pequeñes


Título: Re: ejercicios + soluciones en java
Publicado por: bengy en 28 Abril 2011, 04:14 am
 Dado un numero entero positivo, se pide eliminar las segundas ocurrencias repetidas de digitos
ejemplo
entrada= 2356342
salida   = 56342


Título: Re: ejercicios + soluciones en java
Publicado por: bengy en 1 Mayo 2011, 01:57 am
  • bueno mandare un problema cada 2 o 3 dias y luego publicare la respuesta

    ejercicio 1: hacer la siguiente serie
            entrada: 22
            salida: 22,11,34,17,52 , 26, 13,40,20,10,5,16,8,4,2,1


Título: Re: ejercicios + soluciones en java
Publicado por: bengy en 4 Mayo 2011, 22:48 pm
solucion   
Código:
public ArrayList<Integer> secuencial(int n){
    ArrayList<Integer> res=new ArrayList<Integer>();
   
   
    while(n%2==0 && n>1){
        res.add(n);
        n=n/2;
       
       
        while(n%2==0 && n>1){
            res.add(n);
           n=n/2;

        }
        res.add(n);
       
       
        if(n%2!=0 && n>1){
            n=(3*n)+1;
             
        }
    }
    return res;
    }


Título: Re: ejercicios + soluciones en java
Publicado por: bengy en 9 Mayo 2011, 01:59 am
Ordenar la siguiente secuencia
El problema consiste en que los numeros mayores de la secuencia se encuentren en los ambos estremos
entrada: {4, 5, 6}            entrada: {1,1,1,1,2,1,2}
salida:{5,4,6}                  salida:    {1,1,1,1,1,2,2}

sino me explique muy bien preguntan porfa
S O L U C I O N
Código:
    public int [] ordenarSecuencia(int [] secuencia){
    int tam     = secuencia.length;
    int avance  =tam/2;
    int mayor, menor=0;
        if(tam%2==0){
    for(int i=0; i< avance; i++){
    for(int j=i+1; j< avance; j++){
        if(secuencia[i]<secuencia[j]){
        menor   =   secuencia[i];
        mayor   =   secuencia[j];
        secuencia[i]=mayor;
        secuencia[j]=menor;
    }
}
}
for(int i=tam-1; i>= avance; i--){
    for(int j=i-1; j>= avance; j--){
        if(secuencia[i]<secuencia[j]){
        menor   =   secuencia[i];
        mayor   =   secuencia[j];
        secuencia[i]=mayor;
        secuencia[j]=menor;
    }
}
}
   
    }
    else{
        for(int i=0; i<= avance; i++){
    for(int j=i+1; j<= avance; j++){
        if(secuencia[i]<secuencia[j]){
        menor   =   secuencia[i];
        mayor   =   secuencia[j];
        secuencia[i]=mayor;
        secuencia[j]=menor;
    }
}
}
for(int i=tam-1; i>= avance; i--){
    for(int j=i-1; j>= avance; j--){
        if(secuencia[i]<secuencia[j]){
        menor   =   secuencia[i];
        mayor   =   secuencia[j];
        secuencia[i]=mayor;
        secuencia[j]=menor;
    }
}
}
    }
    return secuencia;
    }


Título: Re: ejercicios + soluciones en java
Publicado por: bengy en 12 Mayo 2011, 00:12 am
Cuantos numeros pares ocupan posiciones impares
    Ejemplo:
    Entrada: 25472                                   Entrada:85876122
    Salida  :  3                                          Salida:4
Código:
public int invertirNumeros(int numerito){
    int res=0;
    int aux=0;
    while(numerito>=10){
        aux=numerito%10;
        res= res*10+aux;
        numerito=numerito/10;
    }
    res=res*10+numerito;
        return res ;
    }

public int posiciones(int numero){
int res=0;
int copiaInvertido=invertirNumeros(numero);
while(copiaInvertido>99){

if((copiaInvertido%10)%2==0){
res++;
}

copiaInvertido=copiaInvertido/100;
}
if(copiaInvertido%2==0){
res=res+1;
}
return res;

}


Título: Re: ejercicios + soluciones en java
Publicado por: bengy en 13 Mayo 2011, 23:37 pm
Dada una secuencia de elementos se pide encontrar el conjunto clausura
Ejemplo

Entrada: {1,5,6}
salida   : {{},{1},{5},{6},{1,5},{1,6},{5,6},{1,5,6}}


Título: Re: ejercicios + soluciones en java
Publicado por: bengy en 24 Mayo 2011, 18:42 pm
eliminar caracter de una cadena
(dieta y lo que comes)entrada:hola, la                           entrada: mundo , m
salida:ho                                                                      salida: undo
cada ves que comes la comida de tu dieta se reduce

Código:
public String ejercicioA1(String dieta, String []provar){

int tamPro  =   provar.length-1 ;
int i=0;
int a=0;
String alimento="";
int tamA=0;
int tamDieta=dieta.length()-1;

while(i<= tamPro){
alimento    =   provar[i];
tamA= alimento.length();
while(a<= dieta.length()-1 && tamA<= dieta.length()){

if(alimento.equals(dieta.substring(a,tamA))){
dieta=dieta.replace(dieta.substring(a,tamA)," ");

}
a++;
tamA++;
}
a=0;
i++;
}

return dieta;
}


Título: Re: ejercicios + soluciones en java
Publicado por: bengy en 13 Junio 2011, 23:38 pm
Problem Statement
     You are given an integer num from which you should replace the last two digits such that the resulting number is divisible by factor and is also the smallest possible number. Return the two replacement digits as a String.



For instance:



if num = 275, and factor = 5, you would return "00" because 200 is divisible by 5.

if num = 1021, and factor = 11, you would return "01" because 1001 is divisible by 11.

if num = 70000, and factor = 17, you would return "06" because 70006 is divisible by 17.

 
Código:
public int invertir(int numero){
        int aux=0;
        while(numero>9){
        aux= aux*10+numero%10;
        numero=numero/10;    
    }
    aux= aux*10+numero;
        return aux;
    }
    public int reservando(int numero){
        int reserva=0;
        int cont=0;
    while(cont <2){
            reserva=reserva*10+numero%10;
        numero= numero/10;
        cont++;
        }
        return reserva;
    }
    public String  multiplosAumentados(int numero2, int factor){
    int numero= numero2;
    int reserva=0;
    int res=0;
    String contadorMultiplo=" ";
       numero=numero-(invertir(reservando(numero2)));

        while(numero%factor!=0){
        numero++;
        }
         res= invertir(reservando(numero));
         contadorMultiplo=  res+ " ";
        
        
    return contadorMultiplo;
    }
    
}


Título: Re: ejercicios + soluciones en java
Publicado por: bengy en 15 Junio 2011, 23:23 pm
todos los divisores de un numero
Código:
public ArrayList<Integer> divisores(int numero){
    int cociente=1;
    int copia= numero/2;
   
   ArrayList<Integer>  arreglo= new ArrayList<Integer> ();
       while(cociente<= copia){
        if(copia%cociente==0){
            arreglo.add(cociente);
        }
        cociente++;
        }
        arreglo.add(numero);
    return arreglo;
    }
no olviden poner
import java.util.*;
bye byeeeeeeeeeeeeeee


Título: Re: ejercicios + soluciones en java
Publicado por: bengy en 15 Junio 2011, 23:26 pm
import java.util.*;

Código:
public ArrayList<Integer> divisores(int numero){
    int cociente=1;
    int copia= numero/2;
   
   ArrayList<Integer>  arreglo= new ArrayList<Integer> ();
       while(cociente<= copia){
        if(copia%cociente==0){
            arreglo.add(cociente);
        }
        cociente++;
        }
        arreglo.add(numero);
    return arreglo;
    }

espero que les sirva //solo para novatos


Título: Re: ejercicios + soluciones en java
Publicado por: bengy en 21 Junio 2011, 22:10 pm
ustedes tambien pueden poner ejercicios propuestos o resueltos a asi ayudarnos entre colegas de la programacion  


Título: Re: ejercicios + soluciones en java
Publicado por: dan_69 en 30 Agosto 2011, 19:45 pm
Escribe un programa que solo a través de procesos RECURSIVOS reciba dos cadenas c1 y c2, y
devuelva una respuesta que diga si c1 es sufijo de c2. Ej.-
Entradas Salidas
C1=”ado” C2=”Teclado” respuesta=true
C1=”eon” C2=”Cancion” respuesta=false
Recuerda que para obtener los caracteres de un String uno por uno debes utilizar el método
charAt(int i)

Me puenden ayudar??


Título: Re: ejercicios + soluciones en java
Publicado por: Valkyr en 30 Agosto 2011, 21:36 pm
Escribe un programa que solo a través de procesos RECURSIVOS reciba dos cadenas c1 y c2, y
devuelva una respuesta que diga si c1 es sufijo de c2. Ej.-
Entradas Salidas
C1=”ado” C2=”Teclado” respuesta=true
C1=”eon” C2=”Cancion” respuesta=false
Recuerda que para obtener los caracteres de un String uno por uno debes utilizar el método
charAt(int i)

Me puenden ayudar??

Código
  1. public boolean sufijo(String c1, String c2){
  2. if(c1.length() == 0)
  3. return true;
  4. int aux = c1.length();
  5. if(c1.charAt(c1.length()-1) == c2.charAt(c2.length()-1))
  6. return sufijo(c1.substring(0, c1.length()-1), c2.substring(0, c2.length()-1));
  7. else
  8. return false;
  9. }


Título: Re: ejercicios + soluciones en java
Publicado por: dan_69 en 5 Septiembre 2011, 21:50 pm
como hago esto ???
 :PSe pide diseñar procesos(s) recursivo(s) necesario(s) para decidir si un número es un supernúmero.
Se dice que un número es un súper número, si y solo si la suma de sus dígitos al cuadrado, es
menor que la suma de los dígitos más significativos (excluyendo el dígito de la unidad) al cubo y
esta suma a su vez es menor que la suma de los dígitos más significativos (excluyendo las decenas)
elevadas a la cuarta, y así sucesivamente. Por ejemplo:
Caso 1:
n = 111111
no es súper número ya que la suma de sus dígitos al cuadrado 6 es mayor a la suma de los cubos del
numero sin unidades que es 5
Caso 2:
n = 55432
si es súper número, ya que la suma de los dígitos al cuadrado es 79 y menor que la suma de los
dígitos al cubo que es 341, y 341 es menor que la suma de los dígitos más significativos excluyendo
decenas elevado a la cuarta que es 1506. 1506 a su vez es menor que 6250 que vendría a ser la
suma de los dígitos a la 5 excluyendo las centenas.
Y por último 6250 es menor que 15625.


Título: Re: ejercicios + soluciones en java
Publicado por: Valkyr en 5 Septiembre 2011, 22:35 pm
Tienes dos mensajes en el foro y los dos son haciendo peticiones de ejercicios. La primera me salté las normas del foro y te puse el código y ni si quiera has agradecido por el simple hecho de que NO es mi tarea y la postee. Ahora el segundo mensaje viene siendo más de lo mismo pidiendo ejercicios sin tan si quiera decir sí a ti se te ha ocurrido algo...

En fin.


Título: Re: ejercicios + soluciones en java
Publicado por: dan_69 en 6 Septiembre 2011, 18:02 pm
perdon por no agradecerte...mil gracias por el codigo ...  solo necesitaba ubicarme en el problema


Título: Re: ejercicios + soluciones en java
Publicado por: bengy en 7 Septiembre 2011, 20:05 pm
lo quieres si o si con recursividad???????


Título: Re: ejercicios + soluciones en java
Publicado por: bengy en 12 Septiembre 2011, 21:41 pm
manejo de archivos...crear un archivo txt e ingresar datos

Código:
import java.util.*;
import java.io.*;

public class txt
{
private File archivo;   
public void crear(String nombreCarpeta){
    archivo= new File("D:\\"+nombreCarpeta+".txt");
    try{
        FileWriter escritor = new FileWriter(archivo);
        BufferedWriter ayudaEscritor= new BufferedWriter(escritor);
        ayudaEscritor.close();
    }
    catch(Exception e){}
   
    }
public void ingresar(String nombreCarpeta, String [] datos){
archivo= new File("D:\\"+nombreCarpeta+".txt");
ArrayList<String> campos= new ArrayList<String>();

    try{
       String linea="";
       FileReader leedor= new FileReader(archivo);
       BufferedReader auxLeer= new BufferedReader(leedor);
       FileWriter escritor = new FileWriter(archivo);
       BufferedWriter ayudaEscritor= new BufferedWriter(escritor);
       while((linea=auxLeer.readLine())!=null){
            campos.add(linea);
       }
       for(int a=0;a<=datos.length-1;a++){
            campos.add(datos[a]);
        }
       
        for(int i=0; i<=campos.size()-1; i++){
            ayudaEscritor.write( campos.get(i) );
            ayudaEscritor.newLine();
        }
        ayudaEscritor.close();
    }
    catch(Exception e){}
}
 }   


Título: Re: ejercicios + soluciones en java
Publicado por: Valkyr en 13 Septiembre 2011, 01:11 am
manejo de archivos...crear un archivo txt e ingresar datos

Código:
import java.util.*;
import java.io.*;

public class txt
{
private File archivo;   
public void crear(String nombreCarpeta){
    archivo= new File("D:\\"+nombreCarpeta+".txt");
    try{
        FileWriter escritor = new FileWriter(archivo);
        BufferedWriter ayudaEscritor= new BufferedWriter(escritor);
        ayudaEscritor.close();
    }
    catch(Exception e){}
   
    }
public void ingresar(String nombreCarpeta, String [] datos){
archivo= new File("D:\\"+nombreCarpeta+".txt");
ArrayList<String> campos= new ArrayList<String>();

    try{
       String linea="";
       FileReader leedor= new FileReader(archivo);
       BufferedReader auxLeer= new BufferedReader(leedor);
       FileWriter escritor = new FileWriter(archivo);
       BufferedWriter ayudaEscritor= new BufferedWriter(escritor);
       while((linea=auxLeer.readLine())!=null){
            campos.add(linea);
       }
       for(int a=0;a<=datos.length-1;a++){
            campos.add(datos[a]);
        }
       
        for(int i=0; i<=campos.size()-1; i++){
            ayudaEscritor.write( campos.get(i) );
            ayudaEscritor.newLine();
        }
        ayudaEscritor.close();
    }
    catch(Exception e){}
}
 }   


¿No sería mejor en el método crear establecer la ruta completamente con el parámetro que se le pasa a la función? De la forma que tú lo tienes estás obligando a que exista el medio D:\\. Por cierto, ¿ese método que es lo que hace exactamente? ¿crear un archivo vacío?.

Saludos.


Título: Re: ejercicios + soluciones en java
Publicado por: bengy en 14 Septiembre 2011, 02:28 am
pero para que complicarnos si podemos hacer todo en un solo directorio, la busqueda de archivos en varios directorios es muy costoso y respondiendo a la segunda pregunta si es un archivo vacio por que el formato .txt es totalmente libre acomparacion del formato .xml que es de la siguiente manera <a>cuerpo<a>. saludos...


Título: Re: ejercicios + soluciones en java
Publicado por: Valkyr en 14 Septiembre 2011, 12:34 pm
pero para que complicarnos si podemos hacer todo en un solo directorio, la busqueda de archivos en varios directorios es muy costoso y respondiendo a la segunda pregunta si es un archivo vacio por que el formato .txt es totalmente libre acomparacion del formato .xml que es de la siguiente manera <a>cuerpo<a>. saludos...

Si, pero puede ser que la persona que ejecute ese código no tenga un directorio D:\\ y por tanto lance una excepción que además no se trataría.

Por otro lado, porque tanta complicación sin con esto mismo también crearías un archivo vacío:

Código
  1. File archivo2 = new File("rutaYNombre" + ".txt");
  2.    try {
  3. archivo2.createNewFile();
  4. } catch (IOException e) {
  5. System.out.println("Imposible crear archivo");
  6. }
Por otro lado, a la hora de ingresar contenido en el archivo, en estas líneas concretamente:

Código
  1. while((linea=auxLeer.readLine())!=null){
  2.            campos.add(linea);
  3.       }
  4.       for(int a=0;a<=datos.length-1;a++){
  5.            campos.add(datos[a]);
  6.        }
  7.  
  8.        for(int i=0; i<=campos.size()-1; i++){
  9.            ayudaEscritor.write( campos.get(i) );
  10.            ayudaEscritor.newLine();
  11.        }
  12.        ayudaEscritor.close();

podrías hacerlo directamente no? es decir, hacer esto:

Código
  1. while((linea=auxLeer.readLine())!=null){
  2.            ayudaEscritor.write(linea);
  3.            ayudaEscritor.newLine();
  4.       }
  5.       for(int a=0;a<=datos.length-1;a++){
  6.            ayudaEscritor.write(datos[a]);
  7.            ayudaEscritor.newLine();
  8.        }
  9.        ayudaEscritor.close();

De esa forma te ahorrarías el último bucle que sería equivalente a los dos anteriores (creo que a la hora de escribir la información lo haría igual que como tú propones).

Saludos.


Título: Re: ejercicios + soluciones en java
Publicado por: bengy en 14 Septiembre 2011, 19:01 pm
muchas gracias ... por la sugerencia me sirvio de mucho para tener un code mas limpio