diff --git a/6.x/p6.11/ApproxGenerator.java b/6.x/p6.11/ApproxGenerator.java new file mode 100644 index 0000000..afbb3f8 --- /dev/null +++ b/6.x/p6.11/ApproxGenerator.java @@ -0,0 +1,31 @@ +/** + * Classe ApproxGenerator + * @author radaelli11353 + */ +public class ApproxGenerator implements Sequence { + private double a; + private double n; + private double epsilon; + private double x, previousx = 1; + + /** + * Costruttore parametrico completo + * @param a Primo numero + * @param n Secondo numero + * @param epsilon Approssimazione accettabile + */ + public ApproxGenerator(double a, double n, double epsilon) { + this.a = a; + this.n = n; + this.epsilon = epsilon; + } + + public Double next() { + x = /* = previousx - (Math.pow(previousx, (n-1)) - a)/*/(n * Math.pow(previousx, (n-1))); + return x; + } + + public boolean hasNext() { + return Math.pow(x, n) > epsilon; + } +} \ No newline at end of file diff --git a/6.x/p6.11/ApproxRunner.java b/6.x/p6.11/ApproxRunner.java new file mode 100644 index 0000000..0e44d19 --- /dev/null +++ b/6.x/p6.11/ApproxRunner.java @@ -0,0 +1,27 @@ +import java.util.Scanner; + +/** + * Classe ApproxRunner + */ +public class ApproxRunner { + public static void main(String[] args) { + Scanner in = new Scanner(System.in); + + System.out.print("Inserisci il primo numero 'a': "); + double a = in.nextDouble(); + + System.out.print("Inserisci il secondo numero 'n': "); + double n = in.nextDouble(); + + System.out.print("Inserisci Epsilon (precisione)"); + double epsilon = in.nextDouble(); + + ApproxGenerator gen = new ApproxGenerator(a, n, epsilon); + + do { + System.out.println(gen.next()); + } while(gen.hasNext()); + + System.out.println("^^ Approssimazione migliore"); + } +} \ No newline at end of file diff --git a/6.x/p6.11/Sequence.java b/6.x/p6.11/Sequence.java new file mode 100644 index 0000000..4f11dd1 --- /dev/null +++ b/6.x/p6.11/Sequence.java @@ -0,0 +1,4 @@ +public interface Sequence { + public boolean hasNext(); + public T next(); +} \ No newline at end of file