MAJ
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
// juste un type énuméré pour nommer les bases
|
||||
public enum Base {
|
||||
A,C,G,T
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,47 @@
|
||||
// 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());
|
||||
}
|
||||
|
||||
// Simulation de plusieurs navigations successives
|
||||
System.out.println("Navigation successive avec l'index secondaire :");
|
||||
while (b.hasNextSecondaire()) {
|
||||
System.out.println(b.nextSecondaire());
|
||||
}
|
||||
|
||||
System.out.println("Navigation successive avec l'index tertiaire :");
|
||||
while (b.hasNextTertiaire()) {
|
||||
System.out.println(b.nextTertiaire());
|
||||
}
|
||||
|
||||
// Simulation de plusieurs navigations simultanées
|
||||
System.out.println("Navigation simultanée :");
|
||||
if (b.hasNextSecondaire())
|
||||
System.out.println("Secondaire: " + b.nextSecondaire());
|
||||
if (b.hasNextTertiaire())
|
||||
System.out.println("Tertiaire: " + b.nextTertiaire());
|
||||
if (b.hasNextSecondaire())
|
||||
System.out.println("Secondaire: " + b.nextSecondaire());
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,72 @@
|
||||
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 structuration et la navigation sont dans la même classe.
|
||||
*/
|
||||
public class MonBrin implements Iterator<Base>{
|
||||
|
||||
private MonMaillon premier;
|
||||
private MonMaillon index;
|
||||
/**
|
||||
* Autres index pour d'autres personnes qui naviguent
|
||||
*/
|
||||
private MonMaillon secondaire;
|
||||
private MonMaillon tertiaire;
|
||||
|
||||
//Le constructeur fabrique un brin à partir du premier maillon p;
|
||||
public MonBrin(MonMaillon p){
|
||||
this.premier = p;
|
||||
this.index = p;
|
||||
this.secondaire = p;
|
||||
this.tertiaire = p;
|
||||
}
|
||||
|
||||
public MonMaillon getDebut(){
|
||||
return this.premier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasNext(){
|
||||
return index != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Base next() {
|
||||
if(this.index == null) throw new NoSuchElementException();
|
||||
|
||||
Base b = index.getBase();
|
||||
index = index.getSuiteMaillon();
|
||||
return b;
|
||||
}
|
||||
|
||||
public boolean hasNextSecondaire(){
|
||||
return secondaire != null;
|
||||
}
|
||||
|
||||
public Base nextSecondaire() {
|
||||
if(this.secondaire == null) throw new NoSuchElementException();
|
||||
|
||||
Base b = secondaire.getBase();
|
||||
secondaire = secondaire.getSuiteMaillon();
|
||||
return b;
|
||||
}
|
||||
|
||||
public boolean hasNextTertiaire(){
|
||||
return tertiaire != null;
|
||||
}
|
||||
|
||||
public Base nextTertiaire() {
|
||||
if(this.tertiaire == null) throw new NoSuchElementException();
|
||||
|
||||
Base b = tertiaire.getBase();
|
||||
tertiaire = tertiaire.getSuiteMaillon();
|
||||
return b;
|
||||
}
|
||||
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
* La classe MonMaillon représente un élément d'une chaîne d'ADN.
|
||||
* Chaque maillon contient une base et une référence au maillon suivant.
|
||||
*/
|
||||
public class MonMaillon {
|
||||
|
||||
private Base contenu;
|
||||
private MonMaillon suivant;
|
||||
|
||||
// Constructeur pour créer un maillon avec une seule base.
|
||||
public MonMaillon(Base base) {
|
||||
contenu = base;
|
||||
suivant = null;
|
||||
}
|
||||
|
||||
// Constructeur pour créer un maillon et le relier à un autre maillon.
|
||||
public MonMaillon(Base base, MonMaillon prochain) {
|
||||
contenu = base;
|
||||
suivant = prochain;
|
||||
}
|
||||
|
||||
// Retourne la base contenue dans ce maillon.
|
||||
public Base obtenirBase() {
|
||||
return contenu;
|
||||
}
|
||||
|
||||
// Retourne le maillon suivant dans la chaîne.
|
||||
public MonMaillon obtenirSuivant() {
|
||||
return suivant;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user