tout marche sauf le dernier

This commit is contained in:
2024-11-13 17:25:35 +01:00
parent 16078ad1c7
commit c6e55bed52
40 changed files with 789 additions and 0 deletions
Binary file not shown.
+4
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.
+31
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();
}
}
}
Binary file not shown.
+68
View File
@@ -0,0 +1,68 @@
/**
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 courant;
public MonBrin(MonMaillon p) {
this.debut = p;
this.courant = p; // Initialiser courant pour le parcours
}
public MonMaillon getDebut() {
return this.debut;
}
// Méthode hasNext pour vérifier s'il y a un élément suivant
public boolean hasNext() {
return courant != null;
}
// Méthode next pour obtenir la base actuelle et avancer
public Base next() {
if (!hasNext()) {
throw new RuntimeException("No more elements in the brin.");
}
Base baseActuelle = courant.getBase();
courant = courant.getSuiteMaillon(); // Avancer au maillon suivant
return baseActuelle;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
MonMaillon temp = this.debut;
while (temp != null) {
sb.append(temp.getBase()).append(" ");
temp = temp.getSuiteMaillon();
}
return sb.toString().trim();
}
}
/*
public class MonBrin {
//Le constructeur fabrique un brin à partir du premier maillon p;
public MonBrin(MonMaillon p){
throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
}
public MonMaillon getDebut(){
throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
}
et pour naviguer?
On pourrait implémenter l'interface iterator de java.util ici
}
*/
Binary file not shown.
+57
View File
@@ -0,0 +1,57 @@
/**
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 Base base;
private MonMaillon suivant;
// Constructeur pour un seul maillon avec une base
public MonMaillon(Base b) {
this.base = b;
this.suivant = null;
}
// Constructeur pour ajouter un maillon à une chaîne existante
public MonMaillon(Base b, MonMaillon l) {
this.base = b;
this.suivant = l;
}
public Base getBase() {
return this.base;
}
public MonMaillon getSuiteMaillon() {
return this.suivant;
}
}
/*
public class MonMaillon {
//Le constructeur de base retourne un brin à une base;
public MonMaillon(Base b){
throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
}
// Le constructeur évolué ajoute une base à un brin.
public MonMaillon(Base b, MonMaillon l){
throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
}
public Base getBase(){
throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
}
public MonMaillon getSuiteMaillon(){
throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
}
}
*/