Aiuto template

di il
1 risposte

Aiuto template

Aiutatemi per favore!!!
Quando compilo questo file mi esce solo un errore che non riesco ad eliminare!!
chilosa.h riga 46: error : too few template-parameter-list!!!
la riga 46 è quella dove è scritto MyLib::Array...

#include <iostream>
#include <cmath>
#include <cstdlib>
#include <limits>
#include "array1D.h"
#include "mathLib.h"

using namespace std;

template <typename TYPE>
class Fortuna
{
  public:
  Fortuna (TYPE left, TYPE right, int k)
   {
    this->left = left;
    this->right = right;
    this->j = j;
  
    TYPE delta;
    TYPE epsilon;
    }
	TYPE get_left()
	{
	  return left;
	}
	TYPE get_right()
	{
	  return right;
	}
private:
  TYPE left;
  TYPE right;
  TYPE yleft;
  TYPE yright;
  TYPE Dx;
  TYPE intervallo;
  TYPE centro;
  TYPE centroFcn;
  
  
  int k;
  int j;
  
};
      MyLib::Array1D<double>Fortuna<double>::Calcola(double y (const double x))
  {
  intervallo = right - left;
  Dx = intervallo/1000.0
  for (j = 0; j < 1000; j++)
  {
     cout << "!! j = " << j << endl;
        yleft = y(left);
        right = left + Dx;
        yright = y(right);
        cout << "!! left = " << left << "! f(left) = " << yleft << endl;
        cout << "!! right = " << right << "! f(right) = " << yright << endl;
        if (yleft*yright < (TYPE) 0)
	{
	    yleft = y(left);
            yright = y(right);
            intervallo = right - left;
	    if(y(left) == 0 || y(right) == 0)
	    {
	      cout << "uno dei valori inseriti e' uno zero della funzione!" << endl;
		  return(EXIT_SUCCESS);
	    }  
	else
	{
	  for (int k = 1; k < 20; k++)
	  {
	    intervallo = intervallo/2.0;
            centro = left + intervallo;
            centroFcn = y(centro);
            if (intervallo < delta || abs(centroFcn) < epsilon)
		     {
		      return centro;
		      cout << "Lo zero della funzione e': " << centro << endl;
		     }
	   if (y(left) * y(centro) < 0)
	             {
	              right = centro;
		      rightFcn = centroFcn;
                     }
	    else
	             {
	              left = centro;
		      leftFcn = centroFcn;
	              }
	    }
	  
	}  
	
	    else
	    {
	      cout << " !!! NON ESISTONO ZERI IN QUESTO INTERVALLO !!! " << endl;
	    }
	}
            return 0;
  }
}
e questo e il file .cpp dove richiamo la funzione Calcola

#include <iostream>
#include <cstdlib>
#include "chilosa.h"

using namespace std;

  double y(const double x)
  {
   double y = pow((pow(x,3)-pow (x,2) - x - 1),3);
   return y;
  }
  
  int main()
  {
   Fortuna<TYPE>Fortuna(-1.0, 2.0, 1000);
   cout << "Lo zero è :" << Fortuna.Calcola(y) << endl;
   
   return 0;
  }

1 Risposte

  • Re: Aiuto template

    Crea un progetto che non ha bisogno di file esterni e posta. Nessuno ha il file .h che elenchi tu e io almeno non mi prendo la briga di scaricare gnuplot solo per vedere se hai inizializzato bene un template. Quindi o posti un progetto completo oppure vai a tentativi.
Devi accedere o registrarti per scrivere nel forum
1 risposte