Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - utz

#1
Hola a todos, generalmente programo e C/C++ pero ahora me ha tocado aprender JAVA, estoy en la parte de hilos (hebras, threads...) y me he topado con un detalle del cual no puedo encontrar info en google xDDDD

y es que quiero pasar una columna de una matriz a una funcion en otra clase...

algo asi como

respuesta = funcion(matriz[fila], matriz[columna]);

en C lo hacia con el punto

respuesta = funcion(matriz[fila], matriz.[columna]);

pero en JAVA no me esta funcionando :S

espero me puedan dar una ayuda, desde ya muchas gracias.


PD: las matrices son algo grandes como para estarlas rotando... tomaria mucho tiempo hacer que el pc haga esos cambios, por eso busco algo mas directo.

edit:
este es el codigo que trabajara con los vectores:

public class Multiplica extends Thread{
   int resultado,x[],y[],n;
   //contructor
   public Multiplica(int x[], int y[],int n){
       super("multiplica");
       this.x=x;
       this.y=y;
       this.n=n;
   }
   //realiza la operacion multiplicacion
   public void  run(){
       for(int i=0;i<n;i++){
           resultado+= x[i]*y[i];
       }
   }
   //retorna el resultado
   public int retorno(){
       return resultado;
   }
}


y este es el codigo que pasa los vectores:

for(int i=0;i<n;i++){
                       for(int j=0;j<n;j++){
                           Multiplica multiplica = new Multiplica(matriz1[i],matriz2rot[j],n);
                           multiplica.run();
                           multiplicada[i][j]=multiplica.retorno();

                           /*mas operaciones con otros hilos*/

                       }
                   }


la idea es no tener que rotar la matriz2 y pasar la columna directamente, para ahorrar un poco de menoria :D


saludos!!

EDIT: Fui a preguntarle a mis profesores y al parecer no se puede hacer lo que estoy buscando de esa forma tan directa :(
#2
desde windows creo que solo eso puedes hacer, pues el ordenador debe reservar memoria para el resto de los programas, sino podria terminar colgado tu windows.
#3
lo imprimia con printf o con puts... pero ya da lo mismo, decidi hacerlo con memoria dinamica para salir del paso rapido.

saludos
#4
hola, esta es la forma en que leo el string, en el archivo en la primera linea hay un numero que me indica la longitud de la cadena y el en la siguiente linea esta la cadena que debo leer.
esto es lo que leo desde el fichero:
77
rwrwrwrwrwrwrwrwrwrwrwrwbwrwbwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwr

al momento de imprimir me muestra bien solo hasta la posicion 70, luego solo "basura"

FILE *filePointer=fopen("beads.in.txt","r");
    int n;
    fscanf(filePointer,"%d",&n);
    char beads[n];
    fscanf(filePointer,"%s",beads);
    fclose(filePointer);

#5
para guardar usas gets(a); y para imprimir usas puts(a);

ahora te toca averiguar que libreria se usa para esto... te tomara menos de un minuto en google :D

saludos
#6
hola, estaba leyendeo un string de tamaño 77 desde un fichero.txt, pero cuando voy a imprimir el string me imprime solo los 70 primeros caracteres correctamente, el resto solo "basura".

Alguien me podria decir porque pasa esto y como arreglarlo por favor?
o bien que solo me diga como arreglarlo y ya me imaginare por que sucede :D

pd: estoy leyendo este string de la forma mas simple, con un fscanf... sin utilizar memoria dinamica ni nada de eso.


desde ya muchas gracias por su ayuda.