Java - Necesito ayuda con JAVA

 
Vista:

Necesito ayuda con JAVA

Publicado por Juan Martínez (6 intervenciones) el 29/03/2017 20:57:13
Soy un estudiante de programación, y me gustaria que alguien con experiencia y tiempo me pudiese ayudar a reforzar y mejorar mi nivel, ya que carezco de él, y ni quiero suspender en clase, ni hacer el ridículo en la empresa.

Si alguien me puede ayudar que lo diga por favor, le estaria eternamente agradecido.

Un saludo, y muchas gracias por vuestro tiempo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Necesito ayuda con JAVA

Publicado por Juan Martínez (6 intervenciones) el 29/03/2017 21:42:42
Tengo que implementar una función recursiva que dado un número decimal inferior a 1024, lo transforme en binario, utilizando como elemento de almacenamiento un array de tipo char. Y tiene que mostrar -> Ejemplo: 10 ---> 0000001010.

Pero la cabecera de la función recursiva debe ser: void decimalAbinari(int n, char [] arrayBin, int nbits).

Dónde n es el valor que hay que convertir a binario, arrayBin es el array de char inicializado a 0 en cada posición, y nbits el número de bits de nuestro resultado en binario.

Ya me perdí con el diseño modular, ahora que hacemos recursividad estoy fuera.

Si no es mucha molestia si podeis comentar los aspectos más importantes para intentar entenderlo os lo agradecería mucho.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Necesito ayuda con JAVA

Publicado por Andrés (340 intervenciones) el 30/03/2017 01:35:02
Ando apurado, te dejo esto, revisa y si hay dudas, por aquí te leo, saludos.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package lwp;
 
/**
 *
 * @author andreas
 */
public class DecimalABinario {
 
 
    public void decimalAbinario(int n, char [] arrayBin, int nbits) {
 
        final int LIMITE = 1024;
 
        if(LIMITE == n) {
            throw new IllegalArgumentException("El numero debe ser menor a 1024");
        }
 
        if(0 == n) return;
 
        int tmpN = n;
        n /= 2;
 
        arrayBin[arrayBin.length-(++nbits)]= (tmpN % 2 == 0) ? '0' : '1';
 
        decimalAbinario(n, arrayBin, nbits);
 
    }
 
    public static void main(String argv[]) {
 
 
        int n = 1023;
        char[] arrayBin = new char[]{'0','0','0','0','0','0','0','0','0','0'};
        DecimalABinario b = new DecimalABinario();
 
        b.decimalAbinario(n, arrayBin, 0);
 
        System.out.println(new String(arrayBin));
 
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Necesito ayuda con JAVA

Publicado por Juan Martínez (6 intervenciones) el 01/04/2017 23:53:02
Muchisimas gracias! Si no es mucha molestia me podrias explicar esta línea de código por favor?

arrayBin[arrayBin.length-(++nbits)]= (tmpN % 2 == 0) ? '0' : '1';

Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Necesito ayuda con JAVA

Publicado por Andrés (340 intervenciones) el 02/04/2017 02:49:25
arrayBin tiene una longitud de 10 porque es el número de bits que se necesitan para representar al número decimal 1023 y se va llenando de derecha a izquierda, en cada llamado recursivo hay que restar nbits a la longitud del arreglo, que al final de cuentas vendría siendo el número de bits al momento. cada casilla en el arrayBin, almacena el residuo de dividir el número decimal entre 2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Necesito ayuda con JAVA

Publicado por Juan Martínez (6 intervenciones) el 02/04/2017 17:30:44
Vale ya lo voy entendiendo muchas gracias compañero, y por último y si no es mucha molestia, podrías ayudarme con este por favor?

Contar las veces que aparece un valor en un array con recursividad.

Dado un array de ints, contar el número de veces que aparece un valor determinado; y la función tiene que ser:
int contar(int [] array, int valor, int posInicio)

array: array con los valores.
valor: valor a buscar.
posInicio: posición inicial donde comenzamos a buscar.

Ya es lo último que pido, muchas gracias y un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Necesito ayuda con JAVA

Publicado por Juan Martínez (6 intervenciones) el 03/04/2017 20:36:41
Lo tengo asi pero no me funciona:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package Practica3;
 
import java.util.Scanner;
 
public class Contador {
 
	static int comptador = 0;
 
	public static void main(String[] args) {
 
		Scanner lector = new Scanner(System.in);
 
		System.out.print("Escriu un número.");
		int valor = lector.nextInt();
		int posInici = 0;
		int[] array = new int[] { 4, 7, 9, 1, 2, 1, 5, 1, 3, 1 };
 
		Contador programa = new Contador();
 
		programa.comptar(array, valor, posInici);
 
		System.out.println("El número " + valor + " ha sortit " + comptador + " vegades.");
 
	}
 
	public int comptar(int[] array, int valor, int posInici) {
 
		if (array[posInici] == valor) {
			comptador++;
			return comptador;
 
		} else {
			return comptar(array, posInici++, posInici);
		}
 
	}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Necesito ayuda con JAVA

Publicado por Andrés (340 intervenciones) el 03/04/2017 20:58:54
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
 *
 * @author andreas
 */
public class CuentaOcurrencias {
 
    public int contar(int [] array, int valor, int posInicio) {
 
        if(array.length == posInicio) {
 
            return 0;
 
        } else if(array[posInicio] == valor) {
 
            return 1+contar(array, valor, ++posInicio);
 
        }else {
 
            return contar(array, valor, ++posInicio);
        }
 
    }
 
     public static void main(String argv[]) {
 
        int[] array = new int[] { 4, 7, 9, 1, 2, 1, 5, 1, 3, 1 };
        int valor = 1;
        int posicionInicial = 0;
 
         CuentaOcurrencias b = new CuentaOcurrencias();
         System.out.println(b.contar(array, valor, posicionInicial));
 
    }
 
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Necesito ayuda con JAVA

Publicado por Juan Martínez (6 intervenciones) el 03/04/2017 22:42:39
Podrías explicarme esta parte por favor? Esto de la recursividad me cuesta bastante...

1
2
3
4
5
6
7
8
9
10
11
12
13
if(array.length == posInicio) {
 
    return 0;
 
} else if(array[posInicio] == valor) {
 
    return 1+contar(array, valor, ++posInicio);
 
}else {
 
    return contar(array, valor, ++posInicio);
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Necesito ayuda con JAVA

Publicado por Andrés (340 intervenciones) el 03/04/2017 22:47:28
Primero se averigua si la posición es igual a la longitud del arreglo, en cuyo caso añadimos 0 a la suma y la recursividad termina,
Si la posición no es igual a la longitud del arreglo, hay dos casos, uno que el valor en en el array sea igual al valor que queremos contabilizar o no, si es igual, debemos incrementar la suma y continuar con la recursión avanzando el indice del arreglo, finalmente, si no es igual, sólo continuamos la recursión incrementando el indice del arreglo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Necesito ayuda con JAVA

Publicado por Natanael (1 intervención) el 27/01/2021 00:19:49
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package modelos;
 
import java.io.File;
import java.sql.Connection;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;  // en esta me marca error y  por esta siguen los errores para abajo//
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.DataFormatter;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 308
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Necesito ayuda con JAVA

Publicado por Lawliet (303 intervenciones) el 29/03/2017 21:09:46
Hola...

En que se te puede ayudar, aunque en mi experiencia yo no vi ninguna clase de Java mientras fui estudiante, todo lo que he aprendido hasta el momento ha sido por autonomía propia, pero con gusto puedo explicarte así como decirte buenas prácticas de Java o bien asesorarte sin problema alguno. Pero créeme, aprenderás más por cuenta propia que por lo que te pueda enseñar un profesor.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar