Olá galera,
Estou tentando criar um programa para ler determinados pesos definidos e então fazer com que sejam ajustados para que o mesmo siga para o resultado 1 ou -1.
O problema está ocorrendo quando vou declarar a seguinte parte do meu código" double dClassifica = classifica[dEntrada]; ", o compilador DEV informa a seguinte mensagem de erro: invalid types 'double ()
(double)[double]' for array subscript.
alguém poderia me ajudar nessa parte do código?
Segue abaixo o codigo completo:
[code]#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <math.h>
double Pesos[2] = {0.0, 0.0};
double classifica(double entrada){
double resultado[2];
double somaPeso;
double limite;
resultado[0] = entrada*Pesos[0];
resultado[1] = 1.0*Pesos[1];
somaPeso = resultado[0] + resultado[1];
if(somaPeso >= 0.0){
limite = 1.0;
}else{
limite = -1.0;
}
return limite;
}
int main(){
double entrada[2] = {1.0, 2.0};
double saida[2] = {1.0, -1.0};
bool aprendizado = false;
while(!aprendizado){
aprendizado = true; //saida do estado atual do aprendizado
std::cout << entrada[0]<< " , " << entrada[0] <<" Eval = "
<< classifica(entrada[0]) << std::endl;
std::cout << entrada[1]<< " , " << entrada[1] <<" Eval = "
<< classifica(entrada[1]) << std::endl;
std::cout << "Pesos = " <<Pesos[0] <<" , " << Pesos[1]
<< std::endl << std::endl;
int contador = 0;
while (contador<2){
double dEntrada = entrada[contador];
double dSaida = saida[contador];
double dClassifica = classifica[dEntrada];
if(dClassifica != dSaida){
Pesos[0] = Pesos[0]+ dSaida*dEntrada;
Pesos[1] = Pesos[1]+ dSaida*1.0;
aprendizado = false;
}
++contador;
}
}[/code]