duvida em exercicio de aula

duvida em exercicio de aula

por Marcel F. Fernandes -
Número de respostas: 2

Eu copiei um exercicio em aula sobre priduto de matriz por vetor, porém eu acho que copiei algumas coisas erradas e esta dando os seguintes erros:

1 erro: na linha 8

double cannot be dereferenced

2 erro: linha 26

array required, but double found

aqui vai o código:

class VetorMatriz
{
  double[]produtoMatrizVetor(double[]mat,double[]vet)
  {
    double[]w;//armazena resposta
    int m,n;//dimensões da matriz
    m=mat.length;//numero de linhas
    n=mat[0].length;//numero de colunas//LINHA 8
    
    //testamos agora a compatibilidade
    if(vet.length!=n)
    {
      System.out.println("não é possivel calcular");
      return w;//sai do método
    }
   
    //alocaremos espaço para o vetor w
    w=new double[m];
   
    //percorre w
   
    for(int i=0;i<m;i=i+1)
    {
      //calcula w[i]
      for(int j=0;j<n;j=j+1)
        w[i]=w[i] + mat[i][j]*vet[j];// LINHA 26
    }
   
    // o resultado esta em w
   
    return w;
  }
}
     
   
  OBRIGADO!

Em resposta à Marcel F. Fernandes

Re: duvida em exercicio de aula

por Marcelo Queiroz -
Olá, Marcel!

Eu espero não ter me enganado na lousa, mas o parâmetro mat daquele
método era uma matriz, portanto double[][] mat. Isso explica os erros de compilação que você teve.

No entanto, vai aparecer um outro erro, devido ao "return w;" na linha 14.
Isso foi engano meu mesmo: a variável double[] w não é inicializada
automaticamente, então na linha 14 o valor dela não está definido.
Uma solução é puxar a alocação de memória (w=new double[m];)
para antes do if (vet.length!=n)...