public class FunzioneCampionata{

    private double x0;  //punto di campionamento iniziale
    private double dx;  //intervallo di campionamento
    private int nc;     //numero di campioni
    
    public FunzioneCampionata(double x0, double dx, int nc){
	this.x0=x0;
	this.nc=nc;
	this.dx=dx;
    }
    
    public double puntoIniziale(){
	return x0;
    }

    public int numeroCampioni(){
	return nc;
    }
    
    public double intervalloCampionamento(){
	return dx;
    }
    
    public double puntoCampionamento(int i){
	/* Si assume: 0 < i && i < nc */
	return x0+dx*i;
    }
    
    public double valoreCampionato(int i){
	/* Si assume: 0 < i && i < nc */
	return 2*puntoCampionamento(i) + 3;
    }
    
    public String toString(){
	String ret="";
	for (int i = 0; i < nc; i++){
	    ret=ret+puntoCampionamento(i) + " " + 
		valoreCampionato(i)+"\n"; 
	}
	return ret;
    }
}
