ProgressionGeometrique.java 971 Bytes
import java.util.*;

public class ProgressionGeometrique {

	ArrayList<Double> termes;
	double raison;
	int rang;

	public ProgressionGeometrique(double terme1, double raison) {
		termes = new ArrayList<Double>();
		termes.add(terme1);
		this.setRang(0);
		this.setRaison(raison);
	}

	public int getRang() {
		return this.rang;
	}

	public void setRang(int rang) {
		this.rang = rang;
	}

	public double getRaison() {
		return this.raison;
	}

	public void setRaison(double raison) {
		this.raison = raison;
	}

	void next() {
		double d = this.termes.get(getRang());
		d *= raison;
		termes.add(d);
		rang++;
	}

	/**
	 * Calcul les n prochaines itérations
	 */
	void next(int n) {
		for (int i = 0; i < n; i++) {
			next();
		}
	}

	/**
	 * Récupère le dernier terme
	 */
	public double getTerme() {
		return termes.get(getRang());
	}

	public String toString() {
		String res = "progression:";
		for (Double d : termes) {
			res += " " + d;
		}
		return res;
	}
}