Completato esercizio p6.12 con Sequence

This commit is contained in:
Giacomo R. 2023-01-08 16:57:54 +01:00
parent 488aa8d04d
commit dc16cd2e7a
3 changed files with 64 additions and 0 deletions

View File

@ -0,0 +1,37 @@
/**
Metodo che calcola e^x
@author radaelli11353
*/
public class ExpApprossimator implements Sequence<Double> {
private double term;
private double x;
private int n;
/**
Costruttore parametrico completo
@param x Valore a cui elevare e
*/
public ExpApprossimator(double x) {
term = 1;
this.x = x;
n = 1;
}
/**
Metodo che calcola il valore successivo nella sequenza
@return Addendo successivo nella sequenza
*/
public Double next() {
term = term*x/n;
n++;
return term;
}
/**
Metodo che verifica se la precisione 1E-9 (arbitraria) è stata raggiunta
@return Vero o falso in base alle approssimazioni eseguite
*/
public boolean hasNext() {
return term > 1E-9;
}
}

23
6.x/p6.12/ExpTester.java Normal file
View File

@ -0,0 +1,23 @@
import java.util.Scanner;
/**
Classe che esegue il test dell'uso della funzione ExpApprossimator
@author radaelli11353
*/
public class ExpTester {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Inserisci il valore di x");
double x = in.nextDouble();
ExpApprossimator gen = new ExpApprossimator(x);
double sum = 1;
while(gen.hasNext()) {
sum += gen.next();
}
System.out.println(sum);
}
}

4
6.x/p6.12/Sequence.java Normal file
View File

@ -0,0 +1,4 @@
public interface Sequence<T> {
public boolean hasNext();
public T next();
}