TP de dev madelaine

This commit is contained in:
EmmanuelTiamzon
2026-02-10 12:33:34 +01:00
parent a9b7405831
commit d62cb79d9d
18 changed files with 549 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
// juste un type énuméré pour nommer les bases
public enum Base {
A,C,G,T
}

View File

@@ -0,0 +1,31 @@
// Fichier Exemple pour le premier exercice sur l'ADN
public class Exemple{
public static void main(String[] args) {
// codon GCT code l'analine https://en.wikipedia.org/wiki/DNA_codon_table
// stop codon TAG, voir https://en.wikipedia.org/wiki/Stop_codon
System.out.println("construction du brin GCTTAG");
MonMaillon l = new MonMaillon(Base.G);
l = new MonMaillon(Base.A,l);
l = new MonMaillon(Base.T,l);
l = new MonMaillon(Base.T,l);
l = new MonMaillon(Base.C,l);
l = new MonMaillon(Base.G,l);
MonBrin b = new MonBrin(l);
System.out.println("l'affichage par défaut du brin ne va pas vous plaire");
System.out.println(b.toString());
System.out.println("On peut afficher en avançant");
System.out.println("Il faut s'en inspirer pour implémenter l'interface iterator de Java.util");
MonMaillon actuel = b.getDebut();//NB: c'est comme l ci-dessus
while (actuel != null){
System.out.println(actuel.getBase());
actuel = actuel.getSuiteMaillon();
}
}
}

View File

@@ -0,0 +1,38 @@
/**
MonBrin code un brin d'ADN sous forme de liste simplement chaînée.
Plusieurs instances de MonMaillon reliées convenablement forment une structure de liste simplement chaînée contenant pour chaque maillon le nom de la base.
On n'utilise pas java.util et on recode tout.
Cette version a un problème : la navigation n'est pas raisonnable
*/
public class MonBrin implements Iterator<Base> {
private MonMaillon p;
private MonMaillon debut;
//Le constructeur fabrique un brin à partir du premier maillon p;
public MonBrin(MonMaillon p){
this.p = p;
MonMaillon s = new MonMaillon(Base.G/*, null*/);
s = MonMaillon(Base.A, s);
s = MonMaillon(Base.T, s);
s = MonMaillon(Base.T, s);
s = MonMaillon(Base.C, s);
s = MonMaillon(Base.G, s);
}
public MonMaillon getDebut(){
return debut;
}
/** et pour naviguer?
On pourrait implémenter l'interface iterator de java.util ici
**/
public
}

View File

@@ -0,0 +1,33 @@
/**
MonMaillon code un maillon d'un brin d'ADN.
plusieurs instances reliées convenablement forment une structure de liste simplement chaînée contenant pour chaque maillon le nom de la base.
On n'utilise pas java.util et on recode tout.
*/
public class MonMaillon {
private MonMaillon suivant;
private Base contenu;
//Le constructeur de base retourne un brin à une base;
public MonMaillon(Base b){
this.contenu = b;
}
// Le constructeur évolué ajoute une base à un brin.
public MonMaillon(Base b, MonMaillon l){
this.contenu = b;
this.suivant = l;
}
public Base getBase(){
return this.contenu;
}
public MonMaillon getSuiteMaillon(){
return this.suivant;
}
}