Ajouter un commentaire

Niroken

Bonjour,

Le début de ta conception est bien mais, jepense que pour ton exercice, c'est tout simplement une plante qu'il faut modéliser.
Le carbone et l'azote ne sont que des quantités contenues dans la plante.

Pour débuter voici comment je vois les choses.

Une plante a :
- 0 à N feuilles
- 0 à N racines (pas forcément réaliste mais bon)
- Une quantité d'azote absorbée disponible
- Une quantité de carbone absorbée disponible

La plante peut :
- faire grandir ses feuilles et/ou racines
- créer de nouvelles feuilles et/ou racines
- absorber des ressources

-----------------------------------------

Une feuille a :
- Une surface
- Un coefficient d'absorbtion de carbone par unité de surface (commun à toutes les feuilles) (je n'ai pas mis ici le temp en ligne de compte)

Une feuille peut :
- grandir
- absorber du carbone

------------------------------------------

Une racine a:
- Une surface
- Un coefficient d'absorbtion de azotepar unité de surface (commun à toutes les racines) (je n'ai pas mis ici le temp en ligne de compte)

Une racine peut :
- grandir
- absorber de l'azote

------------------------------------------

La modélisation java de ce que je viens de dire se traduit ainsi :

Plante

package bean;

import java.util.ArrayList;
import java.util.List;

public class Plante {
	
	private double mQuantiteAzote;
	
	private double mQuantiteCarbone;
	
	private List<Feuille> mFeuilles;
	
	private List<Racine> mRacines;

	public Plante() {
		mQuantiteAzote = 0;
		mQuantiteCarbone = 0;
		mFeuilles = new ArrayList<Feuille>();
		mRacines = new ArrayList<Racine>();
	}
	
	public List<Feuille> getFeuilles() {
		return mFeuilles;
	}

	public void setFeuilles(List<Feuille> feuilles) {
		mFeuilles = feuilles;
	}

	public List<Racine> getRacines() {
		return mRacines;
	}

	public void setRacines(List<Racine> racines) {
		mRacines = racines;
	}
	
	public double getQuantiteAzote() {
		return mQuantiteAzote;
	}

	public double getQuantiteCarbone() {
		return mQuantiteCarbone;
	}
	
	public void absorbeRessources() {
		for (Feuille vFeuilleTmp : mFeuilles) {
			mQuantiteCarbone += vFeuilleTmp.absorbeCarbone();
		}
		
		for (Racine vRacineTmp : mRacines) {
			mQuantiteAzote += vRacineTmp.absorbeAzote();
		}
	}
	
	public void creerRacine() {
		mRacines.add(Racine.creerRacine(mQuantiteAzote, mQuantiteCarbone));
	}
	
	public void creerFeuille() {
		mFeuilles.add(Feuille.creerFeuille(mQuantiteAzote, mQuantiteCarbone));
	}
	
	public void faireGrandirFeuilles() {
		for (Feuille vFeuilleTmp : mFeuilles) {
			vFeuilleTmp.faireGrandirFeuille(mQuantiteAzote, mQuantiteCarbone);
		}
	}
	
	public void faireGrandirRacines() {
		for (Racine vRacineTmp : mRacines) {
			vRacineTmp.faireGrandirRacine(mQuantiteAzote, mQuantiteCarbone);
		}
	}
	
}

Feuille

package bean;

public class Feuille {
	
	private static double sCoefficientAbsorbCarbone = 1;
	
	private double mSurface;

	public Feuille() {
		mSurface = 0;
	}
	
	public double getSurface() {
		return mSurface;
	}

	public void setSurface(Double surface) {
		mSurface = surface;
	}
	
	public double absorbeCarbone() {
		return mSurface * sCoefficientAbsorbCarbone;
	}
	
	public void faireGrandirFeuille(double pQuantiteAzoteDispo, double pQuantiteCarboneDispo) {
		mSurface += 1;
	}
	
	public static Feuille creerFeuille(double pQuantiteAzoteDispo, double pQuantiteCarboneDispo) {
		return new Feuille();
	}
	
}

Racine

package bean;

public class Racine {
	
	private static double sCoefficientAbsorbAzote = 1;
	
	private double mSurface;

	public Racine() {
		mSurface = 0;
	}
	
	public double getSurface() {
		return mSurface;
	}

	public void setSurface(Double surface) {
		mSurface = surface;
	}
	
	public double absorbeAzote() {
		return sCoefficientAbsorbAzote * mSurface;
	}
	
	public void faireGrandirRacine(double pQuantiteAzoteDispo, double pQuantiteCarboneDispo) {
		mSurface += 1;
	}
	
	public static Racine creerRacine(double pQuantiteAzoteDispo, double pQuantiteCarboneDispo) {
		return new Racine();
	}
	
}

Voila, bon bien sur tout n'est pas forcément exact, mais cela constitue un point de départ.

Bonne chance,
Niroken

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 L     M   M   SSS   Y   Y  III 
L MM MM S Y Y I
L M M M SSS Y I
L M M S Y I
LLLL M M SSSS Y III