tp bd + tp5-6 dev3.2
This commit is contained in:
4
DEV/DEV_Madelaine/TD4/0Bad/Base.java
Normal file
4
DEV/DEV_Madelaine/TD4/0Bad/Base.java
Normal file
@@ -0,0 +1,4 @@
|
||||
// juste un type énuméré pour nommer les bases
|
||||
public enum Base {
|
||||
A,C,G,T
|
||||
}
|
31
DEV/DEV_Madelaine/TD4/0Bad/Exemple.java
Normal file
31
DEV/DEV_Madelaine/TD4/0Bad/Exemple.java
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
63
DEV/DEV_Madelaine/TD4/0Bad/MonBrin.java
Normal file
63
DEV/DEV_Madelaine/TD4/0Bad/MonBrin.java
Normal file
@@ -0,0 +1,63 @@
|
||||
/**
|
||||
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 {
|
||||
|
||||
private MonMaillon debut;
|
||||
private MonMaillon fin;
|
||||
|
||||
//Le constructeur fabrique un brin à partir du premier maillon p;
|
||||
public MonBrin(MonMaillon p){
|
||||
this.debut = p;
|
||||
while (suivant=p.getSuiteMaillon() != null){
|
||||
p = suivant;
|
||||
}
|
||||
this.fin = p;
|
||||
}
|
||||
|
||||
public MonMaillon getDebut(){
|
||||
return this.debut;
|
||||
}
|
||||
|
||||
public MonMaillon getFin(){
|
||||
return this.fin;
|
||||
}
|
||||
|
||||
public void addDernier(MonMaillon dernier){
|
||||
this.fin.setSuiteMaillon(dernier);
|
||||
this.fin = dernier;
|
||||
}
|
||||
|
||||
public void addPremier(MonMaillon premier){
|
||||
premier.setSuiteMaillon(this.debut);
|
||||
this.debut = premier;
|
||||
}
|
||||
|
||||
public void removePremier(){
|
||||
MonMaillon maillonASupprimer = this.debut;
|
||||
this.debut = this.debut.getSuiteMaillon();
|
||||
}
|
||||
|
||||
public void removeDernier(){ // pas efficace
|
||||
MonMaillon current = this.debut;
|
||||
while (suivant=current.getSuiteMaillon() != this.fin){
|
||||
current = suivant;
|
||||
}
|
||||
current.setSuiteMaillon(null);
|
||||
this.fin = current;
|
||||
}
|
||||
|
||||
/** et pour naviguer?
|
||||
On pourrait implémenter l'interface iterator de java.util ici
|
||||
**/
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
41
DEV/DEV_Madelaine/TD4/0Bad/MonMaillon.java
Normal file
41
DEV/DEV_Madelaine/TD4/0Bad/MonMaillon.java
Normal file
@@ -0,0 +1,41 @@
|
||||
/**
|
||||
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 valeur;
|
||||
|
||||
//Le constructeur de base retourne un brin à une base;
|
||||
public MonMaillon(Base b){
|
||||
this.valeur = b;
|
||||
}
|
||||
|
||||
// Le constructeur évolué ajoute une base à un brin.
|
||||
public MonMaillon(Base b, MonMaillon l){
|
||||
this.valeur = b;
|
||||
this.suivant = l;
|
||||
}
|
||||
|
||||
public setBase(Base b){
|
||||
this.valeur = b;
|
||||
}
|
||||
|
||||
public setSuiteMaillon(MonMaillon l){
|
||||
this.suivant = l;
|
||||
}
|
||||
|
||||
public Base getBase(){
|
||||
return this.valeur;
|
||||
}
|
||||
|
||||
public MonMaillon getSuiteMaillon(){
|
||||
return this.suivant;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user