15 Decembre

This commit is contained in:
2023-12-15 12:28:32 +01:00
parent 9a4e1c622e
commit 7186ac2c9a
70 changed files with 4580 additions and 0 deletions

Binary file not shown.

View File

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

Binary file not shown.

View File

@@ -0,0 +1,34 @@
// Fichier Exemple pour le second 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 maintenant afficher en itérant avec un while comme ceci");
while (b.hasNext()){
System.out.println(b.next());
}
// ajouter du code ici pour gérer les questions en plus
// (simulation de plusieurs navigations successives)
// (simulation de plusieurs navigations simultanées)
}
}

Binary file not shown.

View File

@@ -0,0 +1,59 @@
import java.util.Iterator;
import java.util.NoSuchElementException;
/**
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>{
public MonMaillon debut;
public MonMaillon index;
//Le constructeur fabrique un brin à partir du premier maillon p;
public MonBrin(MonMaillon p){
this.debut = p;
this.index = p;
}
public MonMaillon getDebut(){
return this.debut;
}
public MonMaillon getIndex(){
return this.index;
}
// rappel : on met @Override pour dire au compilateur qu'on veut surcharger (en particulier c'est le cas quand on implémente une interface)
// ce n'est pas nécessaire dans ce cas mais ça permet d'avoir des messages d'alerte si on se trompe (typo dans le nom de la méthode ...)
// voir https://stackoverflow.com/questions/94361/when-do-you-use-javas-override-annotation-and-why
@Override
public boolean hasNext(){
if (this.index.suivant==null){
return false;
}
else{
return true;
}
}
@Override
public Base next() {
if (this.hasNext()){
this.index = this.index.suivant;
return this.index.b;
}
else{
throw new NoSuchElementException();
}
}
}

Binary file not shown.

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 {
public Base b;
public MonMaillon suivant;
//Le constructeur de base retourne un brin à une base;
public MonMaillon(Base b){
this.b = b;
this.suivant = null;
}
// Le constructeur évolué ajoute une base à un brin.
public MonMaillon(Base b, MonMaillon l){
this.b = b;
this.suivant = l;
}
public Base getBase(){
return this.b;
}
public MonMaillon getSuiteMaillon(){
return this.suivant;
}
}