diff --git a/Anglish/letters_to_an-internship.txt b/Anglish/letters_to_an-internship.txt new file mode 100755 index 0000000..ab7f540 --- /dev/null +++ b/Anglish/letters_to_an-internship.txt @@ -0,0 +1,23 @@ +dear Madam, + +I am interested in applying to for a post of web developper for french school students. + +I am 19 years old and I am currently studying at the BUT Senart Fontainbleau. + +After that I hope to follow a career in the AT industry. During the last few summer holidays I have worked as an new website and I enjoyed the work very much. Next summer I would like to do something more varied and challenging, and for this reason I'm interrested in the job of web developper, taking students to London. + +I feel that I would be well suited for this job as I enjoy working with young people.I have a lot of energy and enthusiasm and am also responsible and reliable. I have attached my CV as this email. + +I am avalaible for interview in New York any weekday afternoon, and you can email me or telephone me on the number below. I look forward to hearing from you soon. + +Yours faithfully + +Wamster Alexis +07 82 82 20 64 +wamsteralexis@gmail.com + + + + + +https://www.indeed.com/jobs?q=developer&l=New+York%2C+NY&sc=0kf%3Ajt%28internship%29%3B&vjk=ab35090a7f1582e1 \ No newline at end of file diff --git a/BD/Lekpa/1_TP_PLSQL.pdf b/BD/Lekpa/1_TP_PLSQL.pdf new file mode 100644 index 0000000..4ac7a39 Binary files /dev/null and b/BD/Lekpa/1_TP_PLSQL.pdf differ diff --git a/BD/Lekpa/tp01.txt b/BD/Lekpa/tp01.txt new file mode 100644 index 0000000..638b00c --- /dev/null +++ b/BD/Lekpa/tp01.txt @@ -0,0 +1,57 @@ +1|------------------------------- + +update ligne_commande l1 +set l1.prix_total = +(select p.prix_unitaire * l2.quantite +from produit p, ligne_commande l2 +where p.id = l2.produit_id and l2.id = l1.id); + +(verfification) +select p.prix_unitaire * l.quantite, l.prix_total +from ligne_commande l, produit p +where l.produit_id = p.id; + +3|-------------------------------- + +select c.id, c.nom, c.prenom, sum(l.prix_total) +from client c, commande co, ligne_commande l +where c.id = co.client_id and co.id = l.commande_id +group by c.id, c.nom, c.prenom; + +4|-------------------------- + +select c.id, c.nom, c.prenom, sum(l.prix_total) +from client c, commande co, ligne_commande l +where c.id = co.client_id and co.id = l.commande_id +group by c.id, c.nom, c.prenom +having sum(l.prix_total) > 2000; + +5|----------------------------- + +select to_char(co.date_achat, 'yy'), to_char(co.date_achat, 'mm'), sum(l.prix_total) +from commande co, ligne_commande l +where co.id = l.commande_id +group by to_char(co.date_achat, 'yy'), to_char(co.date_achat, 'mm'); + +(verification) +la somme est egale a: +select sum(prix_total) from ligne_commande; + +6|------------------------------ + +create sequence seq_tp +start with 121; + +select seq_tp.currval from dual; +select seq_tp.nextval from dual; + +7|------------------------------ + +create or replace procedure sp_insert_ligne_commande(p_commande_id int, p_produit_id int, p_quantite int) is +p_prix_total ligne_commande.prix_total%type; +p_id ligne_commande.id%type; +begin +select seq_tp.nextval into p_id from dual; +select p.prix_unitaire * l.quantite into p_prix_total from produit p, ligne_commande l where p.id = p_commande_id; +insert into ligne_commande values (p_id,p_commande_id,p_produit_id,p_quantite,p_prix_total); +end sp_insert_ligne_commande; \ No newline at end of file diff --git a/DEV/DEV2.1/TP06_Dessin/Q4_Cercles/Cercle.class b/DEV/DEV2.1/TP06_Dessin/Q4_Cercles/Cercle.class index fa0913c..9e6a649 100644 Binary files a/DEV/DEV2.1/TP06_Dessin/Q4_Cercles/Cercle.class and b/DEV/DEV2.1/TP06_Dessin/Q4_Cercles/Cercle.class differ diff --git a/DEV/DEV2.1/TP06_Dessin/Q4_Cercles/Q4Main.class b/DEV/DEV2.1/TP06_Dessin/Q4_Cercles/Q4Main.class index f821b4f..6185295 100644 Binary files a/DEV/DEV2.1/TP06_Dessin/Q4_Cercles/Q4Main.class and b/DEV/DEV2.1/TP06_Dessin/Q4_Cercles/Q4Main.class differ diff --git a/DEV/DEV3.2/TP05_Files/Action.class b/DEV/DEV3.2/TP05_Files/Action.class new file mode 100644 index 0000000..d00e894 Binary files /dev/null and b/DEV/DEV3.2/TP05_Files/Action.class differ diff --git a/DEV/DEV3.2/TP05_Files/Action.java b/DEV/DEV3.2/TP05_Files/Action.java new file mode 100644 index 0000000..731e6c9 --- /dev/null +++ b/DEV/DEV3.2/TP05_Files/Action.java @@ -0,0 +1,59 @@ +import javax.swing.*; +import java.awt.*; +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; + +public class Action implements KeyListener { + + public static final Point HAUT=new Point(0,-1); + public static final Point BAS=new Point(0,1); + public static final Point GAUCHE=new Point(-1,0); + public static final Point DROITE=new Point(1,0); + public Serpent jeux; + + public Action(Serpent jeux){ + this.jeux = jeux; + } + + @Override + public void keyPressed(KeyEvent e) { + int keyCode = e.getKeyCode(); + if (this.jeux.isFreeze == false){ + if (keyCode == KeyEvent.VK_UP){ + if (this.jeux.derniereDirection != Action.BAS){ + this.jeux.derniereDirection = Action.HAUT; + this.jeux.direction.offer(Action.HAUT); + } + } + if (keyCode == KeyEvent.VK_DOWN){ + if (this.jeux.derniereDirection != Action.HAUT){ + this.jeux.derniereDirection = Action.BAS; + this.jeux.direction.offer(Action.BAS); + } + } + if (keyCode == KeyEvent.VK_LEFT){ + if (this.jeux.derniereDirection != Action.DROITE){ + this.jeux.derniereDirection = Action.GAUCHE; + this.jeux.direction.offer(Action.GAUCHE); + } + } + if (keyCode == KeyEvent.VK_RIGHT){ + if (this.jeux.derniereDirection != Action.GAUCHE){ + this.jeux.derniereDirection = Action.DROITE; + this.jeux.direction.offer(Action.DROITE); + } + } + } + if (keyCode == KeyEvent.VK_SPACE){ + this.jeux.isFreeze = !this.jeux.isFreeze; + } + } + + @Override + public void keyTyped(KeyEvent e) { + } + + @Override + public void keyReleased(KeyEvent e) { + } +} \ No newline at end of file diff --git a/DEV/DEV3.2/TP05_Files/Dessin.class b/DEV/DEV3.2/TP05_Files/Dessin.class new file mode 100644 index 0000000..6d9abeb Binary files /dev/null and b/DEV/DEV3.2/TP05_Files/Dessin.class differ diff --git a/DEV/DEV3.2/TP05_Files/Dessin.java b/DEV/DEV3.2/TP05_Files/Dessin.java new file mode 100644 index 0000000..08af962 --- /dev/null +++ b/DEV/DEV3.2/TP05_Files/Dessin.java @@ -0,0 +1,28 @@ +import javax.swing.*; +import java.awt.*; + +public class Dessin extends JComponent { + public Color couleur; + + public Dessin(Color couleur){ + this.couleur = couleur; + } + + public void setColor(Color couleur){ + this.couleur = couleur; + this.repaint(); + } + + @Override + protected void paintComponent(Graphics pinceau) { + Graphics secondPinceau = pinceau.create(); + Color couleurFond = this.getBackground(); + if (this.isOpaque()) { + secondPinceau.setColor(couleurFond); + secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); + } + + secondPinceau.setColor(this.couleur); + secondPinceau.fillRect(2,2, this.getWidth()-2, this.getHeight()-2); + } +} diff --git a/DEV/DEV3.2/TP05_Files/Q4Main.class b/DEV/DEV3.2/TP05_Files/Q4Main.class new file mode 100644 index 0000000..e249d19 Binary files /dev/null and b/DEV/DEV3.2/TP05_Files/Q4Main.class differ diff --git a/DEV/DEV3.2/TP05_Files/Q4Main.java b/DEV/DEV3.2/TP05_Files/Q4Main.java new file mode 100644 index 0000000..9d0afc6 --- /dev/null +++ b/DEV/DEV3.2/TP05_Files/Q4Main.java @@ -0,0 +1,22 @@ +import java.util.*; + +public class Q4Main{ + + public static void main(String[] args){ + + Serpent jeux = new Serpent(); + + Timer boucle = new Timer(true); + Repetition iteration = new Repetition(jeux, boucle); + boucle.scheduleAtFixedRate(iteration, 1000, 100); + try { + while(true){ + Thread.sleep(1000000); + } + } + catch (InterruptedException e) { + e.printStackTrace(); + } + boucle.cancel(); + } +} diff --git a/DEV/DEV3.2/TP05_Files/Repetition.class b/DEV/DEV3.2/TP05_Files/Repetition.class new file mode 100644 index 0000000..e70437a Binary files /dev/null and b/DEV/DEV3.2/TP05_Files/Repetition.class differ diff --git a/DEV/DEV3.2/TP05_Files/Repetition.java b/DEV/DEV3.2/TP05_Files/Repetition.java new file mode 100644 index 0000000..24be1ba --- /dev/null +++ b/DEV/DEV3.2/TP05_Files/Repetition.java @@ -0,0 +1,61 @@ +import javax.swing.*; +import java.awt.*; +import java.util.*; + +public class Repetition extends TimerTask{ + + public Serpent jeux; + public java.util.Timer boucle; + + public Repetition(Serpent jeux, java.util.Timer boucle){ + this.jeux = jeux; + this.boucle = boucle; + } + + @Override + public void run(){ + try{ + if (this.jeux.isFreeze == false){ + Point direction; + if (this.jeux.direction.isEmpty()){ + direction = this.jeux.derniereDirection; + } + else{ + direction = this.jeux.direction.poll(); + } + this.jeux.tete = new Point(this.jeux.tete.x + direction.x, this.jeux.tete.y + direction.y); + if (this.jeux.serpent.contains(this.jeux.tete)){ + this.perdu(); + } + this.jeux.serpent.offer(this.jeux.tete); + this.jeux.listeCase[this.jeux.tete.x][this.jeux.tete.y].setColor(Serpent.SERPENT); + + int indicePomme = this.jeux.listePomme.indexOf(this.jeux.tete); + if (indicePomme == -1){ + Point queue = this.jeux.serpent.poll(); + this.jeux.listeCase[queue.x][queue.y].setColor(Serpent.FOND); + } + else{ + this.jeux.listePomme.remove(indicePomme); + this.jeux.newPomme(); + } + } + } + catch (ArrayIndexOutOfBoundsException e) { + this.perdu(); + } + } + + private void perdu(){ + System.out.println("perdu"); + this.jeux.isFreeze = false; + int fermeture = JOptionPane.showConfirmDialog(null, + "Score : " + (this.jeux.serpent.size()-3) + "\nVoulez vous rejouer ?"); + if (fermeture == JOptionPane.YES_OPTION){ + this.jeux.initialisation(); + } + else{ + this.boucle.cancel(); + } + } +} \ No newline at end of file diff --git a/DEV/DEV3.2/TP05_Files/Serpent.class b/DEV/DEV3.2/TP05_Files/Serpent.class new file mode 100644 index 0000000..c961de8 Binary files /dev/null and b/DEV/DEV3.2/TP05_Files/Serpent.class differ diff --git a/DEV/DEV3.2/TP05_Files/Serpent.java b/DEV/DEV3.2/TP05_Files/Serpent.java new file mode 100644 index 0000000..b29c0d4 --- /dev/null +++ b/DEV/DEV3.2/TP05_Files/Serpent.java @@ -0,0 +1,85 @@ +import javax.swing.*; +import java.awt.*; +import java.util.*; + +public class Serpent{ + + public static final int LONGUEUR=25; + public static final int HAUTEUR=25; + public static final Color SERPENT=Color.ORANGE; + public static final Color FOND=Color.GREEN; + public static final Color POMME=Color.RED; + + public JFrame fenetre; + public Queue serpent; + public Point tete; + public ArrayList listePomme; + public Dessin[][] listeCase; + public Queue direction; + public Point derniereDirection; + public boolean isFreeze; + public Random random; + + public Serpent(){ + this.fenetre = new JFrame("serpent"); + this.fenetre.setSize(800, 800); + this.fenetre.setLocation(0, 0); + this.fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + GridLayout grille = new GridLayout(Serpent.HAUTEUR,Serpent.LONGUEUR); + this.fenetre.setLayout(grille); + + this.listeCase = new Dessin[Serpent.LONGUEUR][Serpent.HAUTEUR]; + int x,y; + for (y=0; y(); + this.derniereDirection = Action.DROITE; + this.listePomme = new ArrayList<>(); + this.serpent = new LinkedList<>(); + this.tete = new Point(2,12); + this.serpent.offer(this.tete); + this.listeCase[this.tete.x][this.tete.y].setColor(Serpent.SERPENT); + this.tete = new Point(3,12); + this.serpent.offer(this.tete); + this.listeCase[this.tete.x][this.tete.y].setColor(Serpent.SERPENT); + this.tete = new Point(4,12); + this.serpent.offer(this.tete); + this.listeCase[this.tete.x][this.tete.y].setColor(Serpent.SERPENT); + + this.listePomme.add(new Point(15,12)); + this.listeCase[15][12].setColor(Serpent.POMME); + newPomme(); + newPomme(); + this.fenetre.repaint(); + this.isFreeze = true; + } + + public void newPomme(){ + Point emplacement; + do{ + emplacement = new Point(this.random.nextInt(Serpent.LONGUEUR), this.random.nextInt(Serpent.HAUTEUR)); + } while (this.serpent.contains(emplacement) || this.listePomme.contains(emplacement)); + + this.listePomme.add(emplacement); + this.listeCase[emplacement.x][emplacement.y].setColor(Serpent.POMME); + } +} \ No newline at end of file diff --git a/DEV/DEV3.2/TP05_Files/Test.java b/DEV/DEV3.2/TP05_Files/Test.java new file mode 100644 index 0000000..7c4ff60 --- /dev/null +++ b/DEV/DEV3.2/TP05_Files/Test.java @@ -0,0 +1,29 @@ + +import java.util.Date; +import java.util.Timer; +import java.util.TimerTask; + +public class Test extends TimerTask { + + @Override + public void run() { + System.out.println("hello"); + } + + public static void main(String args[]){ + Test timerTask = new Test(); + //running timer task as daemon thread + Timer timer = new Timer(true); + timer.scheduleAtFixedRate(timerTask, 0, 1000); + try { + while(true){ + Thread.sleep(1000); + } + } catch (InterruptedException e) { + e.printStackTrace(); + } + timer.cancel(); + System.out.println("TimerTask cancelled"); + } + +} \ No newline at end of file diff --git a/DEV/DEV3.2/TP06_Dictionnaires/Q1Main.class b/DEV/DEV3.2/TP06_Dictionnaires/Q1Main.class new file mode 100644 index 0000000..90500ea Binary files /dev/null and b/DEV/DEV3.2/TP06_Dictionnaires/Q1Main.class differ diff --git a/DEV/DEV3.2/TP06_Dictionnaires/Q1Main.java b/DEV/DEV3.2/TP06_Dictionnaires/Q1Main.java new file mode 100644 index 0000000..4b8042e --- /dev/null +++ b/DEV/DEV3.2/TP06_Dictionnaires/Q1Main.java @@ -0,0 +1,19 @@ +import java.util.*; + +public class Q1Main{ + public static void main(String args[]){ + Map listeThreadNul = Thread.getAllStackTraces(); + Set> listeThread = listeThreadNul.entrySet(); + for (Map.Entry thread : listeThread) { + Thread clef = thread.getKey(); + StackTraceElement[] valeur = thread.getValue(); + + System.out.println(clef.getName() + ":"); + + for (StackTraceElement item : valeur){ + System.out.println(" " + item); + } + System.out.println(); + } + } +} \ No newline at end of file diff --git a/DEV/DEV3.2/TP06_Dictionnaires/Q2Main.java b/DEV/DEV3.2/TP06_Dictionnaires/Q2Main.java new file mode 100644 index 0000000..fef60cd --- /dev/null +++ b/DEV/DEV3.2/TP06_Dictionnaires/Q2Main.java @@ -0,0 +1,42 @@ +import java.util.*; + +public class Q1Main{ + public static void main(String args[]){ + String nomFichier = 'rgb.txt'; + HashMap dicoCouleur; + try{ + BufferedReader lecture = new BufferedReader(new FileReader("rgb.txt")); + String ligne; + + try { + while ((ligne = lecture.readLine()) != null) { + String[] donne = ligne.split("\\s+"); + int rouge = Integer.parseInt(data[0]); + int vert = Integer.parseInt(data[1]); + int bleu = Integer.parseInt(data[2]); + Color couleur = Color(rouge, vert, bleu); + String nom = data[3]; + + dicoCouleur.put(nom, couleur); + } + } catch (IOException e) { + System.err.println("Erreur de lecture dans rgb.txt !"); + } + + try { + lecture.close(); + } catch(IOException e) { + System.err.println("Erreur de fermeture de rgb.txt !"); + } + + JFrame fenetre = new JFrame(); + fenetre.setSize(700, 300); + fenetre.setLocation(0, 0); + fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + fenetre.setVisible(true); + + } catch(FileNotFoundException e) { + System.err.println("Erreur d'ouverture de rgb.txt !"); + } + } +} \ No newline at end of file diff --git a/DEV/DEV3.2/TP06_Dictionnaires/rgb.txt b/DEV/DEV3.2/TP06_Dictionnaires/rgb.txt new file mode 100644 index 0000000..53e36f1 --- /dev/null +++ b/DEV/DEV3.2/TP06_Dictionnaires/rgb.txt @@ -0,0 +1,752 @@ +255 250 250 snow +248 248 255 ghost white +248 248 255 GhostWhite +245 245 245 white smoke +245 245 245 WhiteSmoke +220 220 220 gainsboro +255 250 240 floral white +255 250 240 FloralWhite +253 245 230 old lace +253 245 230 OldLace +250 240 230 linen +250 235 215 antique white +250 235 215 AntiqueWhite +255 239 213 papaya whip +255 239 213 PapayaWhip +255 235 205 blanched almond +255 235 205 BlanchedAlmond +255 228 196 bisque +255 218 185 peach puff +255 218 185 PeachPuff +255 222 173 navajo white +255 222 173 NavajoWhite +255 228 181 moccasin +255 248 220 cornsilk +255 255 240 ivory +255 250 205 lemon chiffon +255 250 205 LemonChiffon +255 245 238 seashell +240 255 240 honeydew +245 255 250 mint cream +245 255 250 MintCream +240 255 255 azure +240 248 255 alice blue +240 248 255 AliceBlue +230 230 250 lavender +255 240 245 lavender blush +255 240 245 LavenderBlush +255 228 225 misty rose +255 228 225 MistyRose +255 255 255 white + 0 0 0 black + 47 79 79 dark slate gray + 47 79 79 DarkSlateGray + 47 79 79 dark slate grey + 47 79 79 DarkSlateGrey +105 105 105 dim gray +105 105 105 DimGray +105 105 105 dim grey +105 105 105 DimGrey +112 128 144 slate gray +112 128 144 SlateGray +112 128 144 slate grey +112 128 144 SlateGrey +119 136 153 light slate gray +119 136 153 LightSlateGray +119 136 153 light slate grey +119 136 153 LightSlateGrey +190 190 190 gray +190 190 190 grey +211 211 211 light grey +211 211 211 LightGrey +211 211 211 light gray +211 211 211 LightGray + 25 25 112 midnight blue + 25 25 112 MidnightBlue + 0 0 128 navy + 0 0 128 navy blue + 0 0 128 NavyBlue +100 149 237 cornflower blue +100 149 237 CornflowerBlue + 72 61 139 dark slate blue + 72 61 139 DarkSlateBlue +106 90 205 slate blue +106 90 205 SlateBlue +123 104 238 medium slate blue +123 104 238 MediumSlateBlue +132 112 255 light slate blue +132 112 255 LightSlateBlue + 0 0 205 medium blue + 0 0 205 MediumBlue + 65 105 225 royal blue + 65 105 225 RoyalBlue + 0 0 255 blue + 30 144 255 dodger blue + 30 144 255 DodgerBlue + 0 191 255 deep sky blue + 0 191 255 DeepSkyBlue +135 206 235 sky blue +135 206 235 SkyBlue +135 206 250 light sky blue +135 206 250 LightSkyBlue + 70 130 180 steel blue + 70 130 180 SteelBlue +176 196 222 light steel blue +176 196 222 LightSteelBlue +173 216 230 light blue +173 216 230 LightBlue +176 224 230 powder blue +176 224 230 PowderBlue +175 238 238 pale turquoise +175 238 238 PaleTurquoise + 0 206 209 dark turquoise + 0 206 209 DarkTurquoise + 72 209 204 medium turquoise + 72 209 204 MediumTurquoise + 64 224 208 turquoise + 0 255 255 cyan +224 255 255 light cyan +224 255 255 LightCyan + 95 158 160 cadet blue + 95 158 160 CadetBlue +102 205 170 medium aquamarine +102 205 170 MediumAquamarine +127 255 212 aquamarine + 0 100 0 dark green + 0 100 0 DarkGreen + 85 107 47 dark olive green + 85 107 47 DarkOliveGreen +143 188 143 dark sea green +143 188 143 DarkSeaGreen + 46 139 87 sea green + 46 139 87 SeaGreen + 60 179 113 medium sea green + 60 179 113 MediumSeaGreen + 32 178 170 light sea green + 32 178 170 LightSeaGreen +152 251 152 pale green +152 251 152 PaleGreen + 0 255 127 spring green + 0 255 127 SpringGreen +124 252 0 lawn green +124 252 0 LawnGreen + 0 255 0 green +127 255 0 chartreuse + 0 250 154 medium spring green + 0 250 154 MediumSpringGreen +173 255 47 green yellow +173 255 47 GreenYellow + 50 205 50 lime green + 50 205 50 LimeGreen +154 205 50 yellow green +154 205 50 YellowGreen + 34 139 34 forest green + 34 139 34 ForestGreen +107 142 35 olive drab +107 142 35 OliveDrab +189 183 107 dark khaki +189 183 107 DarkKhaki +240 230 140 khaki +238 232 170 pale goldenrod +238 232 170 PaleGoldenrod +250 250 210 light goldenrod yellow +250 250 210 LightGoldenrodYellow +255 255 224 light yellow +255 255 224 LightYellow +255 255 0 yellow +255 215 0 gold +238 221 130 light goldenrod +238 221 130 LightGoldenrod +218 165 32 goldenrod +184 134 11 dark goldenrod +184 134 11 DarkGoldenrod +188 143 143 rosy brown +188 143 143 RosyBrown +205 92 92 indian red +205 92 92 IndianRed +139 69 19 saddle brown +139 69 19 SaddleBrown +160 82 45 sienna +205 133 63 peru +222 184 135 burlywood +245 245 220 beige +245 222 179 wheat +244 164 96 sandy brown +244 164 96 SandyBrown +210 180 140 tan +210 105 30 chocolate +178 34 34 firebrick +165 42 42 brown +233 150 122 dark salmon +233 150 122 DarkSalmon +250 128 114 salmon +255 160 122 light salmon +255 160 122 LightSalmon +255 165 0 orange +255 140 0 dark orange +255 140 0 DarkOrange +255 127 80 coral +240 128 128 light coral +240 128 128 LightCoral +255 99 71 tomato +255 69 0 orange red +255 69 0 OrangeRed +255 0 0 red +255 105 180 hot pink +255 105 180 HotPink +255 20 147 deep pink +255 20 147 DeepPink +255 192 203 pink +255 182 193 light pink +255 182 193 LightPink +219 112 147 pale violet red +219 112 147 PaleVioletRed +176 48 96 maroon +199 21 133 medium violet red +199 21 133 MediumVioletRed +208 32 144 violet red +208 32 144 VioletRed +255 0 255 magenta +238 130 238 violet +221 160 221 plum +218 112 214 orchid +186 85 211 medium orchid +186 85 211 MediumOrchid +153 50 204 dark orchid +153 50 204 DarkOrchid +148 0 211 dark violet +148 0 211 DarkViolet +138 43 226 blue violet +138 43 226 BlueViolet +160 32 240 purple +147 112 219 medium purple +147 112 219 MediumPurple +216 191 216 thistle +255 250 250 snow1 +238 233 233 snow2 +205 201 201 snow3 +139 137 137 snow4 +255 245 238 seashell1 +238 229 222 seashell2 +205 197 191 seashell3 +139 134 130 seashell4 +255 239 219 AntiqueWhite1 +238 223 204 AntiqueWhite2 +205 192 176 AntiqueWhite3 +139 131 120 AntiqueWhite4 +255 228 196 bisque1 +238 213 183 bisque2 +205 183 158 bisque3 +139 125 107 bisque4 +255 218 185 PeachPuff1 +238 203 173 PeachPuff2 +205 175 149 PeachPuff3 +139 119 101 PeachPuff4 +255 222 173 NavajoWhite1 +238 207 161 NavajoWhite2 +205 179 139 NavajoWhite3 +139 121 94 NavajoWhite4 +255 250 205 LemonChiffon1 +238 233 191 LemonChiffon2 +205 201 165 LemonChiffon3 +139 137 112 LemonChiffon4 +255 248 220 cornsilk1 +238 232 205 cornsilk2 +205 200 177 cornsilk3 +139 136 120 cornsilk4 +255 255 240 ivory1 +238 238 224 ivory2 +205 205 193 ivory3 +139 139 131 ivory4 +240 255 240 honeydew1 +224 238 224 honeydew2 +193 205 193 honeydew3 +131 139 131 honeydew4 +255 240 245 LavenderBlush1 +238 224 229 LavenderBlush2 +205 193 197 LavenderBlush3 +139 131 134 LavenderBlush4 +255 228 225 MistyRose1 +238 213 210 MistyRose2 +205 183 181 MistyRose3 +139 125 123 MistyRose4 +240 255 255 azure1 +224 238 238 azure2 +193 205 205 azure3 +131 139 139 azure4 +131 111 255 SlateBlue1 +122 103 238 SlateBlue2 +105 89 205 SlateBlue3 + 71 60 139 SlateBlue4 + 72 118 255 RoyalBlue1 + 67 110 238 RoyalBlue2 + 58 95 205 RoyalBlue3 + 39 64 139 RoyalBlue4 + 0 0 255 blue1 + 0 0 238 blue2 + 0 0 205 blue3 + 0 0 139 blue4 + 30 144 255 DodgerBlue1 + 28 134 238 DodgerBlue2 + 24 116 205 DodgerBlue3 + 16 78 139 DodgerBlue4 + 99 184 255 SteelBlue1 + 92 172 238 SteelBlue2 + 79 148 205 SteelBlue3 + 54 100 139 SteelBlue4 + 0 191 255 DeepSkyBlue1 + 0 178 238 DeepSkyBlue2 + 0 154 205 DeepSkyBlue3 + 0 104 139 DeepSkyBlue4 +135 206 255 SkyBlue1 +126 192 238 SkyBlue2 +108 166 205 SkyBlue3 + 74 112 139 SkyBlue4 +176 226 255 LightSkyBlue1 +164 211 238 LightSkyBlue2 +141 182 205 LightSkyBlue3 + 96 123 139 LightSkyBlue4 +198 226 255 SlateGray1 +185 211 238 SlateGray2 +159 182 205 SlateGray3 +108 123 139 SlateGray4 +202 225 255 LightSteelBlue1 +188 210 238 LightSteelBlue2 +162 181 205 LightSteelBlue3 +110 123 139 LightSteelBlue4 +191 239 255 LightBlue1 +178 223 238 LightBlue2 +154 192 205 LightBlue3 +104 131 139 LightBlue4 +224 255 255 LightCyan1 +209 238 238 LightCyan2 +180 205 205 LightCyan3 +122 139 139 LightCyan4 +187 255 255 PaleTurquoise1 +174 238 238 PaleTurquoise2 +150 205 205 PaleTurquoise3 +102 139 139 PaleTurquoise4 +152 245 255 CadetBlue1 +142 229 238 CadetBlue2 +122 197 205 CadetBlue3 + 83 134 139 CadetBlue4 + 0 245 255 turquoise1 + 0 229 238 turquoise2 + 0 197 205 turquoise3 + 0 134 139 turquoise4 + 0 255 255 cyan1 + 0 238 238 cyan2 + 0 205 205 cyan3 + 0 139 139 cyan4 +151 255 255 DarkSlateGray1 +141 238 238 DarkSlateGray2 +121 205 205 DarkSlateGray3 + 82 139 139 DarkSlateGray4 +127 255 212 aquamarine1 +118 238 198 aquamarine2 +102 205 170 aquamarine3 + 69 139 116 aquamarine4 +193 255 193 DarkSeaGreen1 +180 238 180 DarkSeaGreen2 +155 205 155 DarkSeaGreen3 +105 139 105 DarkSeaGreen4 + 84 255 159 SeaGreen1 + 78 238 148 SeaGreen2 + 67 205 128 SeaGreen3 + 46 139 87 SeaGreen4 +154 255 154 PaleGreen1 +144 238 144 PaleGreen2 +124 205 124 PaleGreen3 + 84 139 84 PaleGreen4 + 0 255 127 SpringGreen1 + 0 238 118 SpringGreen2 + 0 205 102 SpringGreen3 + 0 139 69 SpringGreen4 + 0 255 0 green1 + 0 238 0 green2 + 0 205 0 green3 + 0 139 0 green4 +127 255 0 chartreuse1 +118 238 0 chartreuse2 +102 205 0 chartreuse3 + 69 139 0 chartreuse4 +192 255 62 OliveDrab1 +179 238 58 OliveDrab2 +154 205 50 OliveDrab3 +105 139 34 OliveDrab4 +202 255 112 DarkOliveGreen1 +188 238 104 DarkOliveGreen2 +162 205 90 DarkOliveGreen3 +110 139 61 DarkOliveGreen4 +255 246 143 khaki1 +238 230 133 khaki2 +205 198 115 khaki3 +139 134 78 khaki4 +255 236 139 LightGoldenrod1 +238 220 130 LightGoldenrod2 +205 190 112 LightGoldenrod3 +139 129 76 LightGoldenrod4 +255 255 224 LightYellow1 +238 238 209 LightYellow2 +205 205 180 LightYellow3 +139 139 122 LightYellow4 +255 255 0 yellow1 +238 238 0 yellow2 +205 205 0 yellow3 +139 139 0 yellow4 +255 215 0 gold1 +238 201 0 gold2 +205 173 0 gold3 +139 117 0 gold4 +255 193 37 goldenrod1 +238 180 34 goldenrod2 +205 155 29 goldenrod3 +139 105 20 goldenrod4 +255 185 15 DarkGoldenrod1 +238 173 14 DarkGoldenrod2 +205 149 12 DarkGoldenrod3 +139 101 8 DarkGoldenrod4 +255 193 193 RosyBrown1 +238 180 180 RosyBrown2 +205 155 155 RosyBrown3 +139 105 105 RosyBrown4 +255 106 106 IndianRed1 +238 99 99 IndianRed2 +205 85 85 IndianRed3 +139 58 58 IndianRed4 +255 130 71 sienna1 +238 121 66 sienna2 +205 104 57 sienna3 +139 71 38 sienna4 +255 211 155 burlywood1 +238 197 145 burlywood2 +205 170 125 burlywood3 +139 115 85 burlywood4 +255 231 186 wheat1 +238 216 174 wheat2 +205 186 150 wheat3 +139 126 102 wheat4 +255 165 79 tan1 +238 154 73 tan2 +205 133 63 tan3 +139 90 43 tan4 +255 127 36 chocolate1 +238 118 33 chocolate2 +205 102 29 chocolate3 +139 69 19 chocolate4 +255 48 48 firebrick1 +238 44 44 firebrick2 +205 38 38 firebrick3 +139 26 26 firebrick4 +255 64 64 brown1 +238 59 59 brown2 +205 51 51 brown3 +139 35 35 brown4 +255 140 105 salmon1 +238 130 98 salmon2 +205 112 84 salmon3 +139 76 57 salmon4 +255 160 122 LightSalmon1 +238 149 114 LightSalmon2 +205 129 98 LightSalmon3 +139 87 66 LightSalmon4 +255 165 0 orange1 +238 154 0 orange2 +205 133 0 orange3 +139 90 0 orange4 +255 127 0 DarkOrange1 +238 118 0 DarkOrange2 +205 102 0 DarkOrange3 +139 69 0 DarkOrange4 +255 114 86 coral1 +238 106 80 coral2 +205 91 69 coral3 +139 62 47 coral4 +255 99 71 tomato1 +238 92 66 tomato2 +205 79 57 tomato3 +139 54 38 tomato4 +255 69 0 OrangeRed1 +238 64 0 OrangeRed2 +205 55 0 OrangeRed3 +139 37 0 OrangeRed4 +255 0 0 red1 +238 0 0 red2 +205 0 0 red3 +139 0 0 red4 +255 20 147 DeepPink1 +238 18 137 DeepPink2 +205 16 118 DeepPink3 +139 10 80 DeepPink4 +255 110 180 HotPink1 +238 106 167 HotPink2 +205 96 144 HotPink3 +139 58 98 HotPink4 +255 181 197 pink1 +238 169 184 pink2 +205 145 158 pink3 +139 99 108 pink4 +255 174 185 LightPink1 +238 162 173 LightPink2 +205 140 149 LightPink3 +139 95 101 LightPink4 +255 130 171 PaleVioletRed1 +238 121 159 PaleVioletRed2 +205 104 137 PaleVioletRed3 +139 71 93 PaleVioletRed4 +255 52 179 maroon1 +238 48 167 maroon2 +205 41 144 maroon3 +139 28 98 maroon4 +255 62 150 VioletRed1 +238 58 140 VioletRed2 +205 50 120 VioletRed3 +139 34 82 VioletRed4 +255 0 255 magenta1 +238 0 238 magenta2 +205 0 205 magenta3 +139 0 139 magenta4 +255 131 250 orchid1 +238 122 233 orchid2 +205 105 201 orchid3 +139 71 137 orchid4 +255 187 255 plum1 +238 174 238 plum2 +205 150 205 plum3 +139 102 139 plum4 +224 102 255 MediumOrchid1 +209 95 238 MediumOrchid2 +180 82 205 MediumOrchid3 +122 55 139 MediumOrchid4 +191 62 255 DarkOrchid1 +178 58 238 DarkOrchid2 +154 50 205 DarkOrchid3 +104 34 139 DarkOrchid4 +155 48 255 purple1 +145 44 238 purple2 +125 38 205 purple3 + 85 26 139 purple4 +171 130 255 MediumPurple1 +159 121 238 MediumPurple2 +137 104 205 MediumPurple3 + 93 71 139 MediumPurple4 +255 225 255 thistle1 +238 210 238 thistle2 +205 181 205 thistle3 +139 123 139 thistle4 + 0 0 0 gray0 + 0 0 0 grey0 + 3 3 3 gray1 + 3 3 3 grey1 + 5 5 5 gray2 + 5 5 5 grey2 + 8 8 8 gray3 + 8 8 8 grey3 + 10 10 10 gray4 + 10 10 10 grey4 + 13 13 13 gray5 + 13 13 13 grey5 + 15 15 15 gray6 + 15 15 15 grey6 + 18 18 18 gray7 + 18 18 18 grey7 + 20 20 20 gray8 + 20 20 20 grey8 + 23 23 23 gray9 + 23 23 23 grey9 + 26 26 26 gray10 + 26 26 26 grey10 + 28 28 28 gray11 + 28 28 28 grey11 + 31 31 31 gray12 + 31 31 31 grey12 + 33 33 33 gray13 + 33 33 33 grey13 + 36 36 36 gray14 + 36 36 36 grey14 + 38 38 38 gray15 + 38 38 38 grey15 + 41 41 41 gray16 + 41 41 41 grey16 + 43 43 43 gray17 + 43 43 43 grey17 + 46 46 46 gray18 + 46 46 46 grey18 + 48 48 48 gray19 + 48 48 48 grey19 + 51 51 51 gray20 + 51 51 51 grey20 + 54 54 54 gray21 + 54 54 54 grey21 + 56 56 56 gray22 + 56 56 56 grey22 + 59 59 59 gray23 + 59 59 59 grey23 + 61 61 61 gray24 + 61 61 61 grey24 + 64 64 64 gray25 + 64 64 64 grey25 + 66 66 66 gray26 + 66 66 66 grey26 + 69 69 69 gray27 + 69 69 69 grey27 + 71 71 71 gray28 + 71 71 71 grey28 + 74 74 74 gray29 + 74 74 74 grey29 + 77 77 77 gray30 + 77 77 77 grey30 + 79 79 79 gray31 + 79 79 79 grey31 + 82 82 82 gray32 + 82 82 82 grey32 + 84 84 84 gray33 + 84 84 84 grey33 + 87 87 87 gray34 + 87 87 87 grey34 + 89 89 89 gray35 + 89 89 89 grey35 + 92 92 92 gray36 + 92 92 92 grey36 + 94 94 94 gray37 + 94 94 94 grey37 + 97 97 97 gray38 + 97 97 97 grey38 + 99 99 99 gray39 + 99 99 99 grey39 +102 102 102 gray40 +102 102 102 grey40 +105 105 105 gray41 +105 105 105 grey41 +107 107 107 gray42 +107 107 107 grey42 +110 110 110 gray43 +110 110 110 grey43 +112 112 112 gray44 +112 112 112 grey44 +115 115 115 gray45 +115 115 115 grey45 +117 117 117 gray46 +117 117 117 grey46 +120 120 120 gray47 +120 120 120 grey47 +122 122 122 gray48 +122 122 122 grey48 +125 125 125 gray49 +125 125 125 grey49 +127 127 127 gray50 +127 127 127 grey50 +130 130 130 gray51 +130 130 130 grey51 +133 133 133 gray52 +133 133 133 grey52 +135 135 135 gray53 +135 135 135 grey53 +138 138 138 gray54 +138 138 138 grey54 +140 140 140 gray55 +140 140 140 grey55 +143 143 143 gray56 +143 143 143 grey56 +145 145 145 gray57 +145 145 145 grey57 +148 148 148 gray58 +148 148 148 grey58 +150 150 150 gray59 +150 150 150 grey59 +153 153 153 gray60 +153 153 153 grey60 +156 156 156 gray61 +156 156 156 grey61 +158 158 158 gray62 +158 158 158 grey62 +161 161 161 gray63 +161 161 161 grey63 +163 163 163 gray64 +163 163 163 grey64 +166 166 166 gray65 +166 166 166 grey65 +168 168 168 gray66 +168 168 168 grey66 +171 171 171 gray67 +171 171 171 grey67 +173 173 173 gray68 +173 173 173 grey68 +176 176 176 gray69 +176 176 176 grey69 +179 179 179 gray70 +179 179 179 grey70 +181 181 181 gray71 +181 181 181 grey71 +184 184 184 gray72 +184 184 184 grey72 +186 186 186 gray73 +186 186 186 grey73 +189 189 189 gray74 +189 189 189 grey74 +191 191 191 gray75 +191 191 191 grey75 +194 194 194 gray76 +194 194 194 grey76 +196 196 196 gray77 +196 196 196 grey77 +199 199 199 gray78 +199 199 199 grey78 +201 201 201 gray79 +201 201 201 grey79 +204 204 204 gray80 +204 204 204 grey80 +207 207 207 gray81 +207 207 207 grey81 +209 209 209 gray82 +209 209 209 grey82 +212 212 212 gray83 +212 212 212 grey83 +214 214 214 gray84 +214 214 214 grey84 +217 217 217 gray85 +217 217 217 grey85 +219 219 219 gray86 +219 219 219 grey86 +222 222 222 gray87 +222 222 222 grey87 +224 224 224 gray88 +224 224 224 grey88 +227 227 227 gray89 +227 227 227 grey89 +229 229 229 gray90 +229 229 229 grey90 +232 232 232 gray91 +232 232 232 grey91 +235 235 235 gray92 +235 235 235 grey92 +237 237 237 gray93 +237 237 237 grey93 +240 240 240 gray94 +240 240 240 grey94 +242 242 242 gray95 +242 242 242 grey95 +245 245 245 gray96 +245 245 245 grey96 +247 247 247 gray97 +247 247 247 grey97 +250 250 250 gray98 +250 250 250 grey98 +252 252 252 gray99 +252 252 252 grey99 +255 255 255 gray100 +255 255 255 grey100 +169 169 169 dark grey +169 169 169 DarkGrey +169 169 169 dark gray +169 169 169 DarkGray +0 0 139 dark blue +0 0 139 DarkBlue +0 139 139 dark cyan +0 139 139 DarkCyan +139 0 139 dark magenta +139 0 139 DarkMagenta +139 0 0 dark red +139 0 0 DarkRed +144 238 144 light green +144 238 144 LightGreen \ No newline at end of file diff --git a/DEV/DEV_Madelaine/TD4/0Bad/Base.java b/DEV/DEV_Madelaine/TD4/0Bad/Base.java new file mode 100644 index 0000000..5e6a4cf --- /dev/null +++ b/DEV/DEV_Madelaine/TD4/0Bad/Base.java @@ -0,0 +1,4 @@ +// juste un type énuméré pour nommer les bases +public enum Base { + A,C,G,T +} diff --git a/DEV/DEV_Madelaine/TD4/0Bad/Exemple.java b/DEV/DEV_Madelaine/TD4/0Bad/Exemple.java new file mode 100644 index 0000000..ae72d5c --- /dev/null +++ b/DEV/DEV_Madelaine/TD4/0Bad/Exemple.java @@ -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(); + } + } +} diff --git a/DEV/DEV_Madelaine/TD4/0Bad/MonBrin.java b/DEV/DEV_Madelaine/TD4/0Bad/MonBrin.java new file mode 100644 index 0000000..65c50ca --- /dev/null +++ b/DEV/DEV_Madelaine/TD4/0Bad/MonBrin.java @@ -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 + **/ + + +} + + diff --git a/DEV/DEV_Madelaine/TD4/0Bad/MonMaillon.java b/DEV/DEV_Madelaine/TD4/0Bad/MonMaillon.java new file mode 100644 index 0000000..abc7425 --- /dev/null +++ b/DEV/DEV_Madelaine/TD4/0Bad/MonMaillon.java @@ -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; + } + +} + + diff --git a/DEV/DEV_Madelaine/TD4/1Iterable/Base.java b/DEV/DEV_Madelaine/TD4/1Iterable/Base.java new file mode 100644 index 0000000..5e6a4cf --- /dev/null +++ b/DEV/DEV_Madelaine/TD4/1Iterable/Base.java @@ -0,0 +1,4 @@ +// juste un type énuméré pour nommer les bases +public enum Base { + A,C,G,T +} diff --git a/DEV/DEV_Madelaine/TD4/1Iterable/Exemple.java b/DEV/DEV_Madelaine/TD4/1Iterable/Exemple.java new file mode 100644 index 0000000..94a55a7 --- /dev/null +++ b/DEV/DEV_Madelaine/TD4/1Iterable/Exemple.java @@ -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) + } + +} diff --git a/DEV/DEV_Madelaine/TD4/1Iterable/MonBrin.java b/DEV/DEV_Madelaine/TD4/1Iterable/MonBrin.java new file mode 100644 index 0000000..473e131 --- /dev/null +++ b/DEV/DEV_Madelaine/TD4/1Iterable/MonBrin.java @@ -0,0 +1,42 @@ +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{ + + 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"); + } + + + // 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(){ + throw new UnsupportedOperationException("cette méthode n'est pas implémentée"); + } + + @Override + public Base next() { + throw new UnsupportedOperationException("cette méthode n'est pas implémentée"); + throw new NoSuchElementException(); + + } + +} + + + + diff --git a/DEV/DEV_Madelaine/TD4/1Iterable/MonMaillon.java b/DEV/DEV_Madelaine/TD4/1Iterable/MonMaillon.java new file mode 100644 index 0000000..6f93fe5 --- /dev/null +++ b/DEV/DEV_Madelaine/TD4/1Iterable/MonMaillon.java @@ -0,0 +1,28 @@ +/** + 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 MonMaillon(Base b){ + throw new UnsupportedOperationException("cette méthode n'est pas implémentée"); + } + + 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"); + } + +} + + diff --git a/DEV/DEV_Madelaine/TD4/2Iterator/Base.java b/DEV/DEV_Madelaine/TD4/2Iterator/Base.java new file mode 100644 index 0000000..5e6a4cf --- /dev/null +++ b/DEV/DEV_Madelaine/TD4/2Iterator/Base.java @@ -0,0 +1,4 @@ +// juste un type énuméré pour nommer les bases +public enum Base { + A,C,G,T +} diff --git a/DEV/DEV_Madelaine/TD4/2Iterator/Exemple.java b/DEV/DEV_Madelaine/TD4/2Iterator/Exemple.java new file mode 100644 index 0000000..b48d0a7 --- /dev/null +++ b/DEV/DEV_Madelaine/TD4/2Iterator/Exemple.java @@ -0,0 +1,35 @@ +// Fichier Exemple pour le dernier exercice sur l'ADN (Iterable) + +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 m = new MonBrin(l); + + System.out.println("l'affichage par défaut du brin ne va pas vous plaire"); + System.out.println(m.toString()); + + System.out.println("On peut afficher en itérant avec forEach (une méthode proposée par Iterable, regardez la doc)"); + m.forEach(b -> System.out.println(b)); + + System.out.println("On a découplé la navigation de la structuration en implémentant iterable plutôt que iterator. On peut maintenant naviguer 2 fois facilement, c'est vraiment trop fort."); + m.forEach(b -> System.out.println(b)); + + System.out.println("On peut même utiliser les boucles avancées de Java 8 et notre code en devient presque pythonesque"); + for(Base b: m){ + System.out.println(b); + } + } + +} diff --git a/DEV/DEV_Madelaine/TD4/2Iterator/MonBrin.java b/DEV/DEV_Madelaine/TD4/2Iterator/MonBrin.java new file mode 100644 index 0000000..b6782cc --- /dev/null +++ b/DEV/DEV_Madelaine/TD4/2Iterator/MonBrin.java @@ -0,0 +1,37 @@ +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 est correcte : la structuration et la navigation sont dans 2 classes séparées. +La classe MonBrin implémente Iterable au sens où elle peut générer à la demande un objet Iterator. + +NB : Notez que j'implémente Iterable plutôt que Iterable qui n'était pas tout à fait propre +c'est un peu technique et c'est lié aux types génériques. + Il y a des détails ici +https://stackoverflow.com/questions/20790770/why-cant-i-assign-a-raw-type-to-a-parameterized-type-java?rq=1 +*/ +public class MonBrin implements Iterable{ + + + 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"); + } + + /** Pour naviguer? + On implémente l'interface iterator de java.util ici + L'avantage c'est que c'est standard et tout le monde comprendra sans trop de mal comment la navigation fonctionne. + **/ + @Override + public Iterator iterator() { + throw new UnsupportedOperationException("cette méthode n'est pas implémentée"); + } +} diff --git a/DEV/DEV_Madelaine/TD4/2Iterator/MonBrinIterator.java b/DEV/DEV_Madelaine/TD4/2Iterator/MonBrinIterator.java new file mode 100644 index 0000000..a2a85e7 --- /dev/null +++ b/DEV/DEV_Madelaine/TD4/2Iterator/MonBrinIterator.java @@ -0,0 +1,32 @@ +import java.util.Iterator; +import java.util.NoSuchElementException; + +/** +MonBrinIterator + +gère la navigation dans un Brin d'ADN + +*/ +public class MonBrinIterator implements Iterator { + + public MonBrinIterator(MonMaillon m){ + throw new UnsupportedOperationException("cette méthode n'est pas implémentée"); + } + + /** Pour naviguer? + On implémente l'interface iterable de java.util ici + L'avantage c'est que c'est standard et tout le monde comprendra sans trop de mal comment la navogation fonctionne. + **/ + @Override + public boolean hasNext(){ + throw new UnsupportedOperationException("cette méthode n'est pas implémentée"); + } + + @Override + public Base next() { + throw new UnsupportedOperationException("cette méthode n'est pas implémentée"); + } + +} + + diff --git a/DEV/DEV_Madelaine/TD4/2Iterator/MonMaillon.java b/DEV/DEV_Madelaine/TD4/2Iterator/MonMaillon.java new file mode 100644 index 0000000..d5e4c66 --- /dev/null +++ b/DEV/DEV_Madelaine/TD4/2Iterator/MonMaillon.java @@ -0,0 +1,29 @@ +/** + 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 { + + //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"); + } + +} + + diff --git a/DEV/DEV_Madelaine/TD4/3IteratorDifferentInnerStructure/Base.java b/DEV/DEV_Madelaine/TD4/3IteratorDifferentInnerStructure/Base.java new file mode 100644 index 0000000..5e6a4cf --- /dev/null +++ b/DEV/DEV_Madelaine/TD4/3IteratorDifferentInnerStructure/Base.java @@ -0,0 +1,4 @@ +// juste un type énuméré pour nommer les bases +public enum Base { + A,C,G,T +} diff --git a/DEV/DEV_Madelaine/TD4/3IteratorDifferentInnerStructure/Exemple.java b/DEV/DEV_Madelaine/TD4/3IteratorDifferentInnerStructure/Exemple.java new file mode 100644 index 0000000..b4afd21 --- /dev/null +++ b/DEV/DEV_Madelaine/TD4/3IteratorDifferentInnerStructure/Exemple.java @@ -0,0 +1,58 @@ +// Fichier Exemple pour le dernier exercice sur l'ADN (Iterable) + +public class Exemple{ + + public static void main(String[] args) { + + // codon GCT code l'analine https://en.wikipedia.org/wiki/DNA_codon_table + // codon CAT code Histidine + // codon CGT code Arginine + // codon GCC code Analine + // stop codon TAG, voir https://en.wikipedia.org/wiki/Stop_codon + + System.out.println("construction du brin CGT CAT CGT GCC CAT GCT TAG"); + MonBrin l = new MonBrin(Base.G); + l = new MonBrin(Base.A,l); + l = new MonBrin(Base.T,l); + // + l = new MonBrin(Base.T,l); + l = new MonBrin(Base.C,l); + l = new MonBrin(Base.G,l); + // + l = new MonBrin(Base.T,l); + l = new MonBrin(Base.A,l); + l = new MonBrin(Base.C,l); + // + l = new MonBrin(Base.C,l); + l = new MonBrin(Base.C,l); + l = new MonBrin(Base.G,l); + // + l = new MonBrin(Base.T,l); + l = new MonBrin(Base.G,l); + l = new MonBrin(Base.C,l); + // + l = new MonBrin(Base.T,l); + l = new MonBrin(Base.A,l); + l = new MonBrin(Base.C,l); + // + l = new MonBrin(Base.T,l); + l = new MonBrin(Base.G,l); + l = new MonBrin(Base.C,l); + // + + System.out.println("l'affichage par défaut ne va toujours pas vous plaire"); + System.out.println(l.toString()); + + System.out.println("On peut afficher en itérant avec forEach (une méthode proposée par Iterable, regardez la doc)"); + l.forEach(b -> System.out.println(b)); + + System.out.println("On a découplé la navigation de la structuration en implémentant iterable plutôt que iterator. On peut maintenant naviguer 2 fois facilement, c'est vraiment trop fort."); + l.forEach(b -> System.out.println(b)); + + System.out.println("On peut même utiliser les boucles avancées de Java 8 et notre code en devient presque pythonesque"); + for(Base b: l){ + System.out.println(b); + } + } + +} diff --git a/DEV/DEV_Madelaine/TD4/3IteratorDifferentInnerStructure/MonBrin.java b/DEV/DEV_Madelaine/TD4/3IteratorDifferentInnerStructure/MonBrin.java new file mode 100644 index 0000000..6cd0ad1 --- /dev/null +++ b/DEV/DEV_Madelaine/TD4/3IteratorDifferentInnerStructure/MonBrin.java @@ -0,0 +1,83 @@ +import java.util.Iterator; +import java.util.NoSuchElementException; + +/** +MonBrin code un brin d'ADN sous forme de tableaux. Dynamiquement, la taille du tableau est augmentée en cas de besoin (la taille est initialement 3*4 elle est multipliée ensuite pour être toujours de la forme 3*2^n). +On utilise System.arraycopy et java.util.Arrays.copyOfRange pour faire ça efficacement. +voir +https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#arraycopy-java.lang.Object-int-java.lang.Object-int-int- +https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#copyOfRange-T:A-int-int- + +Cette version est correcte : la structuration et la navigation sont dans 2 classes séparées. +La classe MonBrin implémente Iterable au sens où elle peut générer à la demande un objet Iterator. + +NB : Notez que j'implémente Iterable plutôt que Iterable qui n'était pas tout à fait propre +c'est un peu technique et c'est lié aux types génériques. + Il y a des détails ici +https://stackoverflow.com/questions/20790770/why-cant-i-assign-a-raw-type-to-a-parameterized-type-java?rq=1 +*/ + +public class MonBrin implements Iterable { + + /** + C'est le constructeur de base (pun intended) qui construit un brin à une base + + @param b : la base + + Ici je pourrais mettre un commentaire plus long sur le fonctionement détaillé de mon super constructeur. + + */ + public MonBrin(Base b){ + + } + + /** + C'est le constructeur évolué qui construit un brin en ajoutant la base donnée en argument devant le brin donné en argument. + + @param b : la base qui va aller devant + @param l : le brin qui sera à la suite + + NB. Ce constructeur est un peu obsolète avec la nouvelle structure interne. + On devrait en ajouter un qui prend en paramètre un tableau de bases. + */ + public MonBrin(Base b, MonBrin 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 int length(){ + throw new UnsupportedOperationException("cette méthode n'est pas implémentée"); + } + + public int limit(){ + throw new UnsupportedOperationException("cette méthode n'est pas implémentée"); + } + + public int capacity(){ + throw new UnsupportedOperationException("cette méthode n'est pas implémentée"); + } + + public Base getBase(int i){ + throw new UnsupportedOperationException("cette méthode n'est pas implémentée"); + } + + public Base[] getBases(){ + throw new UnsupportedOperationException("cette méthode n'est pas implémentée"); + } + + /** Pour naviguer? + On implémente l'interface iterator de java.util ici + L'avantage c'est que c'est standard et tout le monde comprendra sans trop de mal comment la navigation fonctionne. + **/ + @Override + public Iterator iterator() { + throw new UnsupportedOperationException("cette méthode n'est pas implémentée"); + } + + +} + + diff --git a/DEV/DEV_Madelaine/TD4/3IteratorDifferentInnerStructure/MonBrinIterator.java b/DEV/DEV_Madelaine/TD4/3IteratorDifferentInnerStructure/MonBrinIterator.java new file mode 100644 index 0000000..363d355 --- /dev/null +++ b/DEV/DEV_Madelaine/TD4/3IteratorDifferentInnerStructure/MonBrinIterator.java @@ -0,0 +1,33 @@ +import java.util.Iterator; +import java.util.NoSuchElementException; + +/** +MonBrinIterator + +gère la navigation dans un Brin d'ADN + +*/ +public class MonBrinIterator implements Iterator { + + //Le constructeur de base retourne un brin à une base; + public MonBrinIterator(MonBrin brin){ + } + + /** Pour naviguer? + On implémente l'interface iterable de java.util ici + L'avantage c'est que c'est standard et tout le monde comprendra sans trop de mal comment la navigation fonctionne. + **/ + + @Override + public boolean hasNext(){ + throw new UnsupportedOperationException("cette méthode n'est pas implémentée"); + } + + @Override + public Base next() { + throw new UnsupportedOperationException("cette méthode n'est pas implémentée"); + } + +} + + diff --git a/DEV/DEV_Madelaine/TD4/explication.txt b/DEV/DEV_Madelaine/TD4/explication.txt new file mode 100644 index 0000000..9254e46 --- /dev/null +++ b/DEV/DEV_Madelaine/TD4/explication.txt @@ -0,0 +1,20 @@ +Les biologistes sont des gens étranges pour lesquels les string n'ont que 4 lettres : A,C,G ou T. +Ils ne connaissent pas les String, ils parlent d'ADN. + + +Le Brin est une succession de Maillons. +Il suffit de connaître le premier maillon pour définir un brin d'ADN. + + +----------+ + | maillon | + | | _____ next __> autre Maillon + | | + +----+-----+ + | + | val + \|/ + +----------+ + | Base | + | A | + | | + +----+-----+ diff --git a/DEV/DEV_Madelaine/TD4/stub/0Bad/MonBrin.java b/DEV/DEV_Madelaine/TD4/stub/0Bad/MonBrin.java new file mode 100644 index 0000000..9303c44 --- /dev/null +++ b/DEV/DEV_Madelaine/TD4/stub/0Bad/MonBrin.java @@ -0,0 +1,62 @@ +/** + 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(){ + MonMaillon current = this.debut; + while (suivant=current.getSuiteMaillon() != this.fin){ + current = suivant; + } + this.fin = this.debut.getSuiteMaillon(); + } + + /** et pour naviguer? + On pourrait implémenter l'interface iterator de java.util ici + **/ + + +} + + diff --git a/rien/sae.png.odg b/rien/sae.png.odg new file mode 100644 index 0000000..744efc4 Binary files /dev/null and b/rien/sae.png.odg differ