Foros del Web » Programación para mayores de 30 ;) » Java »

.class Expected en un algoritmo Divide y Venceras

Estas en el tema de .class Expected en un algoritmo Divide y Venceras en el foro de Java en Foros del Web. Buenas Tengo que implementar en Java un algoritmo de Divide y venceras, sobre el siguiente ejercicio: Nos dan una matriz de n filas y m ...
  #1 (permalink)  
Antiguo 15/04/2013, 13:14
 
Fecha de Ingreso: mayo-2009
Mensajes: 69
Antigüedad: 15 años, 5 meses
Puntos: 0
.class Expected en un algoritmo Divide y Venceras

Buenas

Tengo que implementar en Java un algoritmo de Divide y venceras, sobre el siguiente ejercicio:

Nos dan una matriz de n filas y m columnas, mas un vector de tamaño n (igual al numero de filas de la matriz). Cada fila de la matriz tiene una serie de numeros enteros ordenados de manera decreciente

Ejemplo: 90 | 80 | 70 | 60 | 50

Lo que tenemos que hacer es buscar el valor que haya en el vector en la posicion v[i] en la fila[i] de la matriz. Y devolver la primera fila donde esto ocurra.

En el ejercicio las tres primeras filas, esto no ocurre, es decir, la primera coincidencia sucede en la 4ª fila y 4ª posicion en el vector, que seria fila[3] y vector[3].


Tenemos que usar un algoritmo de divide y venceras, asi que como las filas estan ordenadas, yo lo que he pensado es la fila la divido en dos, y miro si la mitad es mayor o menor que el valor que estoy buscando, y si la mitad es mayor, descarto la parte izquierda y vuelvo a dividir y si la mitad es menor, descarto la parte derecha y vuelvo a dividir, asi hasta que de con el valor.

El problema es que llevo muchooo sin tocar java y la teoria la llevo bien, pero a la hora de implementar el codigo nose porque BlueJ me lanza este error .class Expected

Código:
import java.util.*;
import java.io.*;
public class dyv {

 static void mDyV (int m[][],int []v, int inicio, int fin)  {
    
 }
 
 public static void main(String[] args) {
     int m[][]  = {{8,7,6,5,4,3,2,1},{16,14,12,10,8,6,4,2},{90,80,70,60,50,40,30,20},{20,15,11,9,7,3,2,1},{22,20,11,10,8,6,5,4},{17,16,15,13,9,7,3,1},{64,32,16,8,4,2,1,0},{12,10,8,6,5,4,3,2},{90,72,64,56,48,40,32,24},{30,27,24,21,18,15,12,9}};
    int v[] = {9,13,24,15,22,1,8,2,72,18};
    int inicio=0;
    int fin=m.length;
    int resultado=this.mDyV(m[][],v[],inicio,fin);
 } 
}
Dentro del metodo mDyV seria donde lo llamaria a el mismo de manera recursiva para ir divividiendo las mitades.

¿Porque me da el error a la hora de compilar con BlueJ de .class Expected ?

Gracias y saludos.
  #2 (permalink)  
Antiguo 15/04/2013, 13:54
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: .class Expected en un algoritmo Divide y Venceras

Pues no llevarás tan bien la teoría viendo la cantidad de errores que tienes.

Cita:
int resultado=this.mDyV(m[][],v[],inicio,fin);
Sólo aquí tienes dos fallos bastante grandes, uno de ellos es el que te produce ese error.

Repasa la teoría, que buena falta te hace.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 15/04/2013, 14:25
 
Fecha de Ingreso: mayo-2009
Mensajes: 69
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: .class Expected en un algoritmo Divide y Venceras

Cita:
Iniciado por Xerelo Ver Mensaje
Pues no llevarás tan bien la teoría viendo la cantidad de errores que tienes.



Sólo aquí tienes dos fallos bastante grandes, uno de ellos es el que te produce ese error.

Repasa la teoría, que buena falta te hace.
Un error se que era en esta linea

Código:
int fin=m.length;
Que es asi

Código:
int fin=m[x].length;
Donde x es el numero de la fila, que estoy recorriendo.

Teoria me referia a la teoria de como tiene que funcionar el metodo o que es lo que tiene que hacer.

Me podrias decir donde esta el error por favor? Se que en teoria en cuanto a java, estoy verde no, lo siguiente...pero siempre me ha costado la programacion, sobre todo en java, nose porque...ademas llevo mucho sin programar en java.

Saludos y gracias.
  #4 (permalink)  
Antiguo 16/04/2013, 01:35
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: .class Expected en un algoritmo Divide y Venceras

Cita:
int fin=m.length;
int fin=m[x].length;
Cualquiera de las dos son correctas, no te provocan error, la diferencia es el valor que te devuelven.

La primera te devuelve el tamaño del array, la segunda el tamaño de un array que es el elemento x de otro array.

Cita:
int resultado=this.mDyV(m[][],v[],inicio,fin);
1. m[] sólo se utiliza para crear una referencia, no para usar la variable.
2. this representa al actual objeto, pero tú no usas ningún objeto.
3. myDiv lo has definido como void (y sin código) sin embargo pretendes que devuelva un int.

Estudia un poco, con estos errores trasmites la sensación de que no has leído nada sobre java, y antes de andar hay que aprender a levantarse, aunque sea aburrido.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 16/04/2013, 02:07
 
Fecha de Ingreso: mayo-2009
Mensajes: 69
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: .class Expected en un algoritmo Divide y Venceras

Cita:
Iniciado por Xerelo Ver Mensaje
Cualquiera de las dos son correctas, no te provocan error, la diferencia es el valor que te devuelven.

La primera te devuelve el tamaño del array, la segunda el tamaño de un array que es el elemento x de otro array.

1. m[] sólo se utiliza para crear una referencia, no para usar la variable.
2. this representa al actual objeto, pero tú no usas ningún objeto.
3. myDiv lo has definido como void (y sin código) sin embargo pretendes que devuelva un int.

Estudia un poco, con estos errores trasmites la sensación de que no has leído nada sobre java, y antes de andar hay que aprender a levantarse, aunque sea aburrido.
Gracias por tus respuestas :)

En el punto uno, me di cuenta, tras repasar la teoria :(

En el punto dos, fue a la desesperada, leyendo por internet y teoria

Y en el tres se que no devuelve nada, pero primero me centre en solucionar el otro error.

Gracias de nuevo!!

Etiquetas: divide, expected, matriz, metodo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:50.