diff --git a/Anglish/letters_to_an-internship.txt b/Anglish/letters_to_an-internship.txt index ab7f540..59e7fba 100755 --- a/Anglish/letters_to_an-internship.txt +++ b/Anglish/letters_to_an-internship.txt @@ -1,10 +1,11 @@ dear Madam, -I am interested in applying to for a post of web developper for french school students. +I am interested in applying to a web developper internship. 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. -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. +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. 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. @@ -18,6 +19,4 @@ 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/Anglish/mon CV 2023.pdf b/Anglish/mon CV 2023.pdf new file mode 100755 index 0000000..c8dc76a Binary files /dev/null and b/Anglish/mon CV 2023.pdf differ diff --git a/BD/Lekpa/2_TP_PLSQL.pdf b/BD/Lekpa/2_TP_PLSQL.pdf new file mode 100644 index 0000000..9791205 Binary files /dev/null and b/BD/Lekpa/2_TP_PLSQL.pdf differ diff --git a/BD/Lekpa/tp02.txt b/BD/Lekpa/tp02.txt new file mode 100644 index 0000000..443ad70 --- /dev/null +++ b/BD/Lekpa/tp02.txt @@ -0,0 +1,141 @@ +execice 1 + +create or replace function fn_points_fidelite(Id_client Number) +return Number +IS + V_pt_fidelite number; +Begin + Select sum(L.prix_total) Into V_pt_fidelite + from ligne_Commande L, Commande CO + where L.commande_id = CO.id AND CO.client_id = Id_client; + V_pt_fidelite := floor(V_pt_fidelite/10); + return V_pt_fidelite; +Exception + when No_data_found then + return 0; +end fn_points_fidelite; + +select fn_points_fidelite(16) from dual; + + +declare + cursor C_client IS Select id, nom from client; + V_points number; +Begin + for v_client in c_client + loop + v_points := fn_points_fidelite(v_client.id); + if (v_points < 2) then + DBMS_OUTPUT.PUT_LINE(v_client.nom || 'à' || v_points || 'point de fidelité' ); + else + DBMS_OUTPUT.PUT_LINE(v_client.nom || 'à' || v_points || 'points de fidelités' ); + end if; + end loop; +end; + +//-------------------------------------------------- +select nom || 'à' || fn_points_fidelite(id) || +case + when fn_points_fidelite(id) < 2 then + 'point de fidelité'; + else + 'points de fidelités'; +end +from client; + +//---------------!!!!!!!!!!!!!!!!!!!---------------------------- + + + +exercice 2 + +create or replace trigger trg_DeleteCommande +Before delete +on Commande +for each row +begin + delete from ligne_commande L where L.commande_id = :old.id; +end trg_DeleteCommande; + +---------------------verification----------------------------- +select * from Commande CO, ligne_commande L where CO.id = 16 AND CO.id = L.commande_id; + + ID CLIENT_ID DATE_ACHA REFERENCE ID COMMANDE_ID PRODUIT_ID QUANTITE PRIX_TOTAL +---------- ---------- --------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------- ----------- ---------- ---------- ---------- + 16 15 18-JAN-19 008974 33 16 2 4 400.4 + +delete Commande where id=16; +select * from ligne_commande L where L.commande_id = 16; +no rows selected + + + + +exercice 3 + +create or replace trigger trg_DeleteClient +Before delete +on Client +for each row +begin + delete from Commande CO where CO.client_id = :old.id; +end trg_DeleteCommande; + + +exercice 4 + +create table Client_His as select * from Client; +delete from Client_His; + +create or replace trigger trg_DeleteClient +before delete +on Client +for each row +begin + delete from Commande CO where CO.client_id = :old.id; + insert into Client_His values (:old.id, :old.prenom, :old.nom, :old.email, :old.ville); +end trg_DeleteCommande; + + +exercice 5 + +la contrainte de suppression en cascade + + + +exercice 6 + +drop table Client cascade constraints; +drop table Commande cascade constraints; +drop table ligne_commande cascade constraints; + +CREATE TABLE client ( + id INT PRIMARY KEY, + prenom VARCHAR(255), + nom VARCHAR(255), + email VARCHAR(255), + ville VARCHAR(255) +); + +CREATE TABLE commande ( + id INT PRIMARY KEY, + client_id INT, + date_achat DATE, + reference VARCHAR(255), + FOREIGN KEY (client_id) REFERENCES client(id) ON DELETE CASCADE +); + +CREATE TABLE ligne_commande ( + id INT PRIMARY KEY, + commande_id INT, + produit_id INT, + quantite INT, + prix_total DECIMAL(10, 2), + FOREIGN KEY (commande_id) REFERENCES commande(id) ON DELETE CASCADE, + FOREIGN KEY (produit_id) REFERENCES produit(id) +); + + + +Exercice 7 + diff --git a/BD/Lekpa/tp02_2.txt b/BD/Lekpa/tp02_2.txt new file mode 100644 index 0000000..e13f92e --- /dev/null +++ b/BD/Lekpa/tp02_2.txt @@ -0,0 +1,118 @@ +execice 1 + +create or replace function fn_points_fidelite(Id_client Number) +return Number +IS + V_pt_fidelite number; +Begin + Select sum(L.prix_total) Into V_pt_fidelite + from ligne_Commande L, Commande CO + where L.commande_id = CO.id AND CO.client_id = Id_client; + V_pt_fidelite := floor(V_pt_fidelite/10); + return V_pt_fidelite; +Exception + when No_data_found then + return 0; +end fn_points_fidelite; + +select fn_points_fidelite(16) from dual; + + +declare + cursor C_client IS Select id, nom from client; + V_points number; +Begin + for v_client in c_client + loop + v_points := fn_points_fidelite(v_client.id); + if (v_points < 2) then + DBMS_OUTPUT.PUT_LINE(v_client.nom || 'à' || v_points || 'point de fidelité' ); + else + DBMS_OUTPUT.PUT_LINE(v_client.nom || 'à' || v_points || 'points de fidelités' ); + end if; + end loop; +end; + + + +exercice 2 + +create or replace trigger trg_DeleteCommande +Before delete +on Commande +for each row +begin + delete from ligne_commande L where L.commande_id = :old.id; +end trg_DeleteCommande; + + + + +exercice 3 + +create or replace trigger trg_DeleteClient +Before delete +on Client +for each row +begin + delete from Commande CO where CO.client_id = :old.id; +end trg_DeleteCommande; + + +exercice 4 + +create table Client_His as select * from Client; +delete from Client_His; + +create or replace trigger trg_DeleteClient +before delete +on Client +for each row +begin + delete from Commande CO where CO.client_id = :old.id; + insert into Client_His values (:old.id, :old.prenom, :old.nom, :old.email, :old.ville); +end trg_DeleteCommande; + + +exercice 5 + +la contrainte de suppression en cascade + + + +exercice 6 + +drop table Client cascade constraints; +drop table Commande cascade constraints; +drop table ligne_commande cascade constraints; + +CREATE TABLE client ( + id INT PRIMARY KEY, + prenom VARCHAR(255), + nom VARCHAR(255), + email VARCHAR(255), + ville VARCHAR(255) +); + +CREATE TABLE commande ( + id INT PRIMARY KEY, + client_id INT, + date_achat DATE, + reference VARCHAR(255), + FOREIGN KEY (client_id) REFERENCES client(id) ON DELETE CASCADE +); + +CREATE TABLE ligne_commande ( + id INT PRIMARY KEY, + commande_id INT, + produit_id INT, + quantite INT, + prix_total DECIMAL(10, 2), + FOREIGN KEY (commande_id) REFERENCES commande(id) ON DELETE CASCADE, + FOREIGN KEY (produit_id) REFERENCES produit(id) +); + + + +Exercice 7 + diff --git a/DEV/DEV3.2/TP04_Piles/Q1Main.class b/DEV/DEV3.2/TP04_Piles/Q1Main.class index fffd576..c6a918e 100644 Binary files a/DEV/DEV3.2/TP04_Piles/Q1Main.class and b/DEV/DEV3.2/TP04_Piles/Q1Main.class differ diff --git a/DEV/DEV3.2/TP04_Piles/Q1Main.java b/DEV/DEV3.2/TP04_Piles/Q1Main.java index 4fc289d..8e90638 100644 --- a/DEV/DEV3.2/TP04_Piles/Q1Main.java +++ b/DEV/DEV3.2/TP04_Piles/Q1Main.java @@ -9,12 +9,12 @@ public class Q1Main{ int i; try{ for (i=0; i dicoCouleur; + String nomFichier = "rgb.txt"; + HashMap dicoCouleur = new HashMap<>(); + DefaultListModel listeCouleur = new DefaultListModel<>(); try{ - BufferedReader lecture = new BufferedReader(new FileReader("rgb.txt")); + BufferedReader lecture = new BufferedReader(new FileReader(nomFichier)); 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]; - + int rouge = Integer.parseInt(ligne.substring(0,3).trim()); + int vert = Integer.parseInt(ligne.substring(4,7).trim()); + int bleu = Integer.parseInt(ligne.substring(8,11).trim()); + Color couleur = new Color(rouge, vert, bleu); + String nom = ligne.substring(13).trim(); dicoCouleur.put(nom, couleur); + listeCouleur.addElement(nom); } } catch (IOException e) { System.err.println("Erreur de lecture dans rgb.txt !"); @@ -29,10 +32,17 @@ public class Q1Main{ System.err.println("Erreur de fermeture de rgb.txt !"); } + JList menuDeroulant = new JList<>(listeCouleur); + JScrollPane ascensseur = new JScrollPane(menuDeroulant); JFrame fenetre = new JFrame(); fenetre.setSize(700, 300); fenetre.setLocation(0, 0); fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + JPanel contenu = new JPanel(new BorderLayout()); + contenu.setBackground(Color.RED); + contenu.add(ascensseur, BorderLayout.WEST); + fenetre.add(contenu, BorderLayout.CENTER); fenetre.setVisible(true); } catch(FileNotFoundException e) { diff --git a/DEV/DEV3.2/TP07_Arbres/Arbre.class b/DEV/DEV3.2/TP07_Arbres/Arbre.class new file mode 100644 index 0000000..e610a3f Binary files /dev/null and b/DEV/DEV3.2/TP07_Arbres/Arbre.class differ diff --git a/DEV/DEV3.2/TP07_Arbres/Arbre.java b/DEV/DEV3.2/TP07_Arbres/Arbre.java new file mode 100644 index 0000000..0bc475c --- /dev/null +++ b/DEV/DEV3.2/TP07_Arbres/Arbre.java @@ -0,0 +1,99 @@ +import java.util.*; + +public class Arbre{ + private Noeud racine; + private String strArbre; + + public Arbre(){ + } + + public Arbre(E racine){ + this.racine = new Noeud(racine); + } + + public Arbre(Noeud racine){ + this.racine = racine; + } + + public void setRacine(E racine){ + this.racine = new Noeud(racine); + } + + public Noeud getRacine(){ + return this.racine; + } + + public void afficheArbre(){ + this.strArbre = ""; + this.updateStrArbre(this.racine, 0); + System.out.println(this.strArbre); + } + + public void afficheArbreQ2(){ + this.strArbre = ""; + this.updateStrArbreQ2(this.racine); + System.out.println(this.strArbre); + } + + public void afficheArbreQ3(){ + this.strArbre = ""; + this.updateStrArbreQ3(this.racine); + System.out.println(this.strArbre); + } + + private void updateStrArbreQ3(Noeud noeud){ + try{ + String valeur = noeud.getValue().toString(); + if (valeur.equals("x") || valeur.equals("/") || valeur.equals("+") || valeur.equals("-")){ + this.strArbre += "("; + } + else{ + this.strArbre += valeur; + } + List> fils = noeud.getFils(); + for (int i=0; i noeud){ + try{ + this.strArbre += noeud.getValue().toString() + " "; + List> fils = noeud.getFils(); + for (int i=0; i noeud, int profondeur){ + int i; + this.strArbre += "\n"; + for (i=0; i> fils = noeud.getFils(); + for (i=0; i{ + private E valeur; + private List> fils; + + public Noeud(E valeur){ + this.valeur = valeur; + this.fils = new ArrayList>(); + } + + public E getValue(){ + return this.valeur; + } + + public List> getFils(){ + return this.fils; + } + + public void add(Noeud fils){ + this.fils.add(fils); + } +} \ No newline at end of file diff --git a/DEV/DEV3.2/TP07_Arbres/Q1File.class b/DEV/DEV3.2/TP07_Arbres/Q1File.class new file mode 100644 index 0000000..646c4e6 Binary files /dev/null and b/DEV/DEV3.2/TP07_Arbres/Q1File.class differ diff --git a/DEV/DEV3.2/TP07_Arbres/Q1File.java b/DEV/DEV3.2/TP07_Arbres/Q1File.java new file mode 100644 index 0000000..6636653 --- /dev/null +++ b/DEV/DEV3.2/TP07_Arbres/Q1File.java @@ -0,0 +1,33 @@ +import java.io.*; + +public class Q1File extends File{ + + private static final long serialVersionUID = 1L; + + public Q1File(String pathname){ + super(pathname); + } + + public static Q1File[] convertion(File[] listeBrute){ + if (listeBrute == null){ + return null; + } + Q1File[] listeFinal = new Q1File[listeBrute.length]; + for (int i=0; i arbre; + + public static void main(String args[]){ + try{ + Q1File racine = new Q1File(args[0]); + Q1Main.arbre = new Arbre(racine); + Q1Main.recursive(racine, arbre.getRacine()); + Q1Main.arbre.afficheArbre(); + } + catch(ArrayIndexOutOfBoundsException e){ + System.out.println(e); + } + } + + public static void recursive(Q1File repertoire, Noeud noeud){ + if (repertoire != null){ + Q1File[] contenu = Q1File.convertion(repertoire.listFiles()); + if (contenu != null){ + for (Q1File item : contenu){ + Noeud newFils = new Noeud(item); + noeud.add(newFils); + Q1Main.recursive(item, newFils); + } + } + } + } +} \ No newline at end of file diff --git a/DEV/DEV3.2/TP07_Arbres/Q2Main.class b/DEV/DEV3.2/TP07_Arbres/Q2Main.class new file mode 100644 index 0000000..6b1d2a2 Binary files /dev/null and b/DEV/DEV3.2/TP07_Arbres/Q2Main.class differ diff --git a/DEV/DEV3.2/TP07_Arbres/Q2Main.java b/DEV/DEV3.2/TP07_Arbres/Q2Main.java new file mode 100644 index 0000000..ad53e2d --- /dev/null +++ b/DEV/DEV3.2/TP07_Arbres/Q2Main.java @@ -0,0 +1,34 @@ +import javax.swing.*; +import java.awt.*; +import java.util.*; + +public class Q2Main{ + public static void main(String[] args) { + + ArrayDeque> liste = new ArrayDeque<>(); + try{ + for (int i=0; i a = liste.pop(); + Noeud b = liste.pop(); + Noeud c = new Noeud(args[i]); + c.add(b); + c.add(a); + liste.push(c); + } + else{ + liste.push(new Noeud(args[i])); + } + } + Arbre arbre = new Arbre<>(liste.pop()); + arbre.afficheArbreQ2(); + arbre.afficheArbreQ3(); + } + catch(NoSuchElementException e){ + System.out.println("tu ecrit bien"); + } + catch(NumberFormatException e){ + System.out.println("arretes de mal executer le code"); + } + } +} \ No newline at end of file diff --git a/DEV/DEV3.2/TP08_Arbres_suite/Q1Arbre.class b/DEV/DEV3.2/TP08_Arbres_suite/Q1Arbre.class new file mode 100644 index 0000000..0b16975 Binary files /dev/null and b/DEV/DEV3.2/TP08_Arbres_suite/Q1Arbre.class differ diff --git a/DEV/DEV3.2/TP08_Arbres_suite/Q1Arbre.java b/DEV/DEV3.2/TP08_Arbres_suite/Q1Arbre.java new file mode 100644 index 0000000..b96e05a --- /dev/null +++ b/DEV/DEV3.2/TP08_Arbres_suite/Q1Arbre.java @@ -0,0 +1,79 @@ +import java.util.*; + +public class Q1Arbre{ + private Q1Noeud racine; + + public Q1Arbre(){ + this.racine = null; + } + + public Q1Arbre(int clef){ + this.racine = new Q1Noeud(clef); + } + + public Q1Arbre(Q1Noeud racine){ + this.racine = racine; + } + + public void add(Q1Noeud newNoeud){ + if (this.racine == null){ + this.racine = newNoeud; + } + else{ + this.racine.add(newNoeud); + } + } + + public void add(int clef){ + if (this.racine == null){ + this.racine = new Q1Noeud(clef); + } + else{ + this.racine.add(clef); + } + } + + private Q1Noeud plusPetit(){ + if (this.racine != null){ + Q1Noeud minimum = this.racine; + while (minimum.getPetit() != null){ + minimum = minimum.getPetit(); + } + return minimum; + } + return this.racine; + } + + private Q1Noeud plusGrand(){ + if (this.racine != null){ + Q1Noeud maximum = this.racine; + while (maximum.getPetit() != null){ + maximum = maximum.getPetit(); + } + return maximum; + } + return this.racine; + } + + private Q1Noeud suivant(int clef){ + if (this.racine != null){ + Q1Noeud maximum = this.racine; + while (maximum.getPetit() != null){ + maximum = maximum.getPetit(); + } + return maximum; + } + return this.racine; + } + + public void affichage(){ + if (this.racine != null){ + Q1Noeud plusPetit = this.racine; + while (plusPetit.getPetit() != null){ + plusPetit = plusPetit.getPetit(); + } + System.out.print(plusPetit); + while () + } + } +} \ No newline at end of file diff --git a/DEV/DEV3.2/TP08_Arbres_suite/Q1Main.class b/DEV/DEV3.2/TP08_Arbres_suite/Q1Main.class new file mode 100644 index 0000000..53a6757 Binary files /dev/null and b/DEV/DEV3.2/TP08_Arbres_suite/Q1Main.class differ diff --git a/DEV/DEV3.2/TP08_Arbres_suite/Q1Main.java b/DEV/DEV3.2/TP08_Arbres_suite/Q1Main.java new file mode 100644 index 0000000..434b5a9 --- /dev/null +++ b/DEV/DEV3.2/TP08_Arbres_suite/Q1Main.java @@ -0,0 +1,19 @@ +import java.util.*; +import java.io.*; + +public class Q1Main{ + + public static void main(String[] args){ + try{ + Q1Arbre arbre = new Q1Arbre(); + for (String arg : args){ + int n = Integer.parseInt(arg); + arbre.add(n); + } + arbre.affichage(); + } + catch(NumberFormatException e){ + System.out.println("NumberFormatException : Veuillez saisir des nombres en arguments"); + } + } +} \ No newline at end of file diff --git a/DEV/DEV3.2/TP08_Arbres_suite/Q1Noeud.class b/DEV/DEV3.2/TP08_Arbres_suite/Q1Noeud.class new file mode 100644 index 0000000..dc52e86 Binary files /dev/null and b/DEV/DEV3.2/TP08_Arbres_suite/Q1Noeud.class differ diff --git a/DEV/DEV3.2/TP08_Arbres_suite/Q1Noeud.java b/DEV/DEV3.2/TP08_Arbres_suite/Q1Noeud.java new file mode 100644 index 0000000..cf4663a --- /dev/null +++ b/DEV/DEV3.2/TP08_Arbres_suite/Q1Noeud.java @@ -0,0 +1,81 @@ +import java.util.*; + +public class Q1Noeud{ + private int clef; + private Q1Noeud petit; + private Q1Noeud grand; + private int occurence; + + public Q1Noeud(int clef){ + this.clef = clef; + this.petit = null; + this.grand = null; + this.occurence = 1; + } + + public int getKey(){ + return this.clef; + } + + public void add(int fils){ + if (fils < this.clef){ + if (this.petit == null){ + this.petit = new Q1Noeud(fils); + } + else{ + this.petit.add(fils); + } + } + if (fils > this.clef){ + if (this.grand == null){ + this.grand = new Q1Noeud(fils); + } + else{ + this.grand.add(fils); + } + } + if (fils == this.clef){ + this.occurence ++; + } + } + + public void add(Q1Noeud newNoeud){ + if (newNoeud.getKey() < this.clef){ + if (this.petit == null){ + this.petit = newNoeud; + } + else{ + this.petit.add(newNoeud); + } + } + if (newNoeud.getKey() > this.clef){ + if (this.grand == null){ + this.grand = newNoeud; + } + else{ + this.grand.add(newNoeud); + } + } + if (newNoeud.getKey() == this.clef){ + this.occurence ++; + } + } + + public Q1Noeud getPetit(){ + return this.petit; + } + + public Q1Noeud getGrand(){ + return this.grand; + } + + @Override + public String toString(){ + String resultat = ""; + int i; + for (i=0; i listeSubalterne; + + public boolean addSubalterne(Person p){ + return this.listeSubalterne.add(p); + } + + + + /** constructeur + * + * @param n fun factor + * + */ + public Chef(int n){ + super(n); + this.listeSubalterne = new ArrayList<>(); + } + + + /** + * La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi. + * + * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle. + * + */ + public int bestPartyWithoutMe(){ + int fun = 0; + for (Person invitee : this.listeSubalterne){ + fun += invitee.bestParty(); + } + return fun; + } + + /** + * La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi. + * + * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle. + * + */ + private int bestPartyWithMe(){ + int fun = this.getFunFactor(); + for (Person invitee : this.listeSubalterne){ + fun += invitee.bestPartyWithoutMe(); + } + return fun; + } + + /** + * La meilleure fête est soit sans moi (c'est l'union des meilleures fêtes de mes subalternes). + * soit c'est la meilleure fête avec moi. + * + * @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle). + * + */ + public int bestParty(){ + return Math.max(this.bestPartyWithMe(), this.bestPartyWithoutMe()); + } + +} + + diff --git a/DEV/DEV_Madelaine/stub/exo3/Exemple.java b/DEV/DEV_Madelaine/stub/exo3/Exemple.java new file mode 100644 index 0000000..9a23013 --- /dev/null +++ b/DEV/DEV_Madelaine/stub/exo3/Exemple.java @@ -0,0 +1,36 @@ +public class Exemple { + public static void main(String[] args) { + // bar 2 + // foo 5 + // titi 4 + // tata 4 + // toto 6 + // tete 6 + + Travailleur titi = new Travailleur(4); + Travailleur tata = new Travailleur(4); + Travailleur toto = new Travailleur(6); + + Chef foo = new Chef(5); + foo.addSubalterne(titi); + foo.addSubalterne(tata); + foo.addSubalterne(toto); + System.out.println(foo.bestParty()); + System.out.println(foo.bestPartyWithoutMe()); + + Travailleur tete = new Travailleur(6); + // System.out.println(tete.bestParty()); + // System.out.println(tete.bestPartyWithoutMe()); + + Chef bar = new Chef(2); + bar.addSubalterne(foo); + bar.addSubalterne(tete); + System.out.println(bar.bestParty()); + //System.out.println(bar.bestPartyWithoutMe()); + } + +} + + + + diff --git a/DEV/DEV_Madelaine/stub/exo3/Exemple2.java b/DEV/DEV_Madelaine/stub/exo3/Exemple2.java new file mode 100644 index 0000000..808a518 --- /dev/null +++ b/DEV/DEV_Madelaine/stub/exo3/Exemple2.java @@ -0,0 +1,33 @@ +public class Exemple2 { + public static void main(String[] args) { + // Exemple inspiré question Thibault B. + // 1 + // 10 + // 1 + // 1 + // 10 + // 3 + // 4 + + Travailleur a = new Travailleur(3); + Travailleur b = new Travailleur(4); + Chef c = new Chef(10); + c.addSubalterne(a); + c.addSubalterne(b); + Chef d = new Chef(1); + d.addSubalterne(c); + Chef e = new Chef(1); + e.addSubalterne(d); + Chef f = new Chef(10); + f.addSubalterne(e); + Chef g = new Chef(1); + g.addSubalterne(f); + + System.out.println(g.bestParty()); + } + +} + + + + diff --git a/DEV/DEV_Madelaine/stub/exo3/Exemple3.java b/DEV/DEV_Madelaine/stub/exo3/Exemple3.java new file mode 100644 index 0000000..55651c9 --- /dev/null +++ b/DEV/DEV_Madelaine/stub/exo3/Exemple3.java @@ -0,0 +1,43 @@ +public class Exemple3 { + public static void main(String[] args) { + + Travailleur a = new Travailleur(3); + Travailleur b = new Travailleur(4); + Chef c = new Chef(10); + c.addSubalterne(a); + c.addSubalterne(b); + Chef d = new Chef(1); + d.addSubalterne(c); + Chef e = new Chef(1); + e.addSubalterne(d); + Chef f = new Chef(10); + f.addSubalterne(e); + Chef g = new Chef(1); + g.addSubalterne(f); + + Travailleur titi = new Travailleur(4); + Travailleur tata = new Travailleur(4); + Travailleur toto = new Travailleur(6); + Chef foo = new Chef(5); + foo.addSubalterne(titi); + foo.addSubalterne(tata); + foo.addSubalterne(toto); + Chef bar = new Chef(2); + bar.addSubalterne(foo); + Travailleur tete = new Travailleur(6); + bar.addSubalterne(tete); + + Chef x = new Chef(2); + x.addSubalterne(g); + x.addSubalterne(bar); + Chef y = new Chef(39); + y.addSubalterne(x); + + System.out.println(y.bestParty()); + } + +} + + + + diff --git a/DEV/DEV_Madelaine/stub/exo3/Person.java b/DEV/DEV_Madelaine/stub/exo3/Person.java new file mode 100644 index 0000000..b4f1951 --- /dev/null +++ b/DEV/DEV_Madelaine/stub/exo3/Person.java @@ -0,0 +1,44 @@ + +/** "Les personnes sont soit des chefs, soit des travailleurs" */ +public abstract class Person{ + /** + * valeur indiquant le niveau de coolitude de la personne + */ + private int funFactor; + + /** + * @return la valeur indiquant le niveau de coolitude de la personne. plus cete valeur est grande, plus la personne contribue à améliorer l'ambiance dans une fête. + * + */ + public int getFunFactor(){ + return this.funFactor; + } + + /** + * constructeur + * + * NB. Cette méthode ne peut pas être appelé directement pour instancier un objet car la classe est abstraite, mais sert dans les constructeurs de classes dérivées. + * + * @see Travailleur, Chef + */ + // + public Person(int n){ + if (n < 0) + throw new IllegalArgumentException("Le fun facteur est positif ou nul, vous avez proposé " + n); + this.funFactor = n; + } + + /** + * + * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle. + */ + public abstract int bestPartyWithoutMe(); + + + /** + * + * @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle). + */ + public abstract int bestParty(); +} + diff --git a/DEV/DEV_Madelaine/stub/exo3/Travailleur.java b/DEV/DEV_Madelaine/stub/exo3/Travailleur.java new file mode 100644 index 0000000..3ecbd57 --- /dev/null +++ b/DEV/DEV_Madelaine/stub/exo3/Travailleur.java @@ -0,0 +1,31 @@ +/** feuille du motif composite */ +public class Travailleur extends Person { + + /** constructeur + * + * @param n fun factor + * + */ + public Travailleur(int n){ + super(n); + } + + /** + * + * @return fête sans le travailleur + */ + public int bestPartyWithoutMe(){ + return 0; + } + + /** + * @return fête avec le travailleur + */ + public int bestParty(){ + return this.getFunFactor(); + } + + +} + + diff --git a/DEV/DEV_Madelaine/stub/exo4/Chef.class b/DEV/DEV_Madelaine/stub/exo4/Chef.class new file mode 100644 index 0000000..95d0dd2 Binary files /dev/null and b/DEV/DEV_Madelaine/stub/exo4/Chef.class differ diff --git a/DEV/DEV_Madelaine/stub/exo4/Chef.java b/DEV/DEV_Madelaine/stub/exo4/Chef.java new file mode 100644 index 0000000..8422031 --- /dev/null +++ b/DEV/DEV_Madelaine/stub/exo4/Chef.java @@ -0,0 +1,75 @@ +import java.util.LinkedHashSet; +import java.util.Objects; +import java.util.*; + +/** feuille du motif composite */ +public class Chef extends Person { + + private List listeSubalterne; + private int[] listeFun = {-1, -1, -1}; // 0 best, 1 avec, 2 sans + + public boolean addSubalterne(Person p){ + return this.listeSubalterne.add(p); + } + + + + /** constructeur + * + * @param n fun factor + * + */ + public Chef(int n){ + super(n); + this.listeSubalterne = new ArrayList<>(); + } + + + /** + * La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi. + * + * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle. + * + */ + public int bestPartyWithoutMe(){ + if (this.listeFun[0] < 0){ + int fun = 0; + for (Person invitee : this.listeSubalterne){ + fun += invitee.bestParty(); + } + this.listeFun[0] = fun; + } + return this.listeFun[0]; + } + + /** + * La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi. + * + * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle. + * + */ + private int bestPartyWithMe(){ + if (this.listeFun[1] < 0){ + int fun = this.getFunFactor(); + for (Person invitee : this.listeSubalterne){ + fun += invitee.bestPartyWithoutMe(); + } + this.listeFun[1] = fun; + } + return this.listeFun[1]; + } + + /** + * La meilleure fête est soit sans moi (c'est l'union des meilleures fêtes de mes subalternes). + * soit c'est la meilleure fête avec moi. + * + * @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle). + * + */ + public int bestParty(){ + return Math.max(this.bestPartyWithMe(), this.bestPartyWithoutMe()); + } + +} + + diff --git a/DEV/DEV_Madelaine/stub/exo4/Exemple.class b/DEV/DEV_Madelaine/stub/exo4/Exemple.class new file mode 100644 index 0000000..612bac4 Binary files /dev/null and b/DEV/DEV_Madelaine/stub/exo4/Exemple.class differ diff --git a/DEV/DEV_Madelaine/stub/exo4/Exemple.java b/DEV/DEV_Madelaine/stub/exo4/Exemple.java new file mode 100644 index 0000000..9a23013 --- /dev/null +++ b/DEV/DEV_Madelaine/stub/exo4/Exemple.java @@ -0,0 +1,36 @@ +public class Exemple { + public static void main(String[] args) { + // bar 2 + // foo 5 + // titi 4 + // tata 4 + // toto 6 + // tete 6 + + Travailleur titi = new Travailleur(4); + Travailleur tata = new Travailleur(4); + Travailleur toto = new Travailleur(6); + + Chef foo = new Chef(5); + foo.addSubalterne(titi); + foo.addSubalterne(tata); + foo.addSubalterne(toto); + System.out.println(foo.bestParty()); + System.out.println(foo.bestPartyWithoutMe()); + + Travailleur tete = new Travailleur(6); + // System.out.println(tete.bestParty()); + // System.out.println(tete.bestPartyWithoutMe()); + + Chef bar = new Chef(2); + bar.addSubalterne(foo); + bar.addSubalterne(tete); + System.out.println(bar.bestParty()); + //System.out.println(bar.bestPartyWithoutMe()); + } + +} + + + + diff --git a/DEV/DEV_Madelaine/stub/exo4/Exemple2.java b/DEV/DEV_Madelaine/stub/exo4/Exemple2.java new file mode 100644 index 0000000..808a518 --- /dev/null +++ b/DEV/DEV_Madelaine/stub/exo4/Exemple2.java @@ -0,0 +1,33 @@ +public class Exemple2 { + public static void main(String[] args) { + // Exemple inspiré question Thibault B. + // 1 + // 10 + // 1 + // 1 + // 10 + // 3 + // 4 + + Travailleur a = new Travailleur(3); + Travailleur b = new Travailleur(4); + Chef c = new Chef(10); + c.addSubalterne(a); + c.addSubalterne(b); + Chef d = new Chef(1); + d.addSubalterne(c); + Chef e = new Chef(1); + e.addSubalterne(d); + Chef f = new Chef(10); + f.addSubalterne(e); + Chef g = new Chef(1); + g.addSubalterne(f); + + System.out.println(g.bestParty()); + } + +} + + + + diff --git a/DEV/DEV_Madelaine/stub/exo4/Exemple3.java b/DEV/DEV_Madelaine/stub/exo4/Exemple3.java new file mode 100644 index 0000000..55651c9 --- /dev/null +++ b/DEV/DEV_Madelaine/stub/exo4/Exemple3.java @@ -0,0 +1,43 @@ +public class Exemple3 { + public static void main(String[] args) { + + Travailleur a = new Travailleur(3); + Travailleur b = new Travailleur(4); + Chef c = new Chef(10); + c.addSubalterne(a); + c.addSubalterne(b); + Chef d = new Chef(1); + d.addSubalterne(c); + Chef e = new Chef(1); + e.addSubalterne(d); + Chef f = new Chef(10); + f.addSubalterne(e); + Chef g = new Chef(1); + g.addSubalterne(f); + + Travailleur titi = new Travailleur(4); + Travailleur tata = new Travailleur(4); + Travailleur toto = new Travailleur(6); + Chef foo = new Chef(5); + foo.addSubalterne(titi); + foo.addSubalterne(tata); + foo.addSubalterne(toto); + Chef bar = new Chef(2); + bar.addSubalterne(foo); + Travailleur tete = new Travailleur(6); + bar.addSubalterne(tete); + + Chef x = new Chef(2); + x.addSubalterne(g); + x.addSubalterne(bar); + Chef y = new Chef(39); + y.addSubalterne(x); + + System.out.println(y.bestParty()); + } + +} + + + + diff --git a/DEV/DEV_Madelaine/stub/exo4/Person.class b/DEV/DEV_Madelaine/stub/exo4/Person.class new file mode 100644 index 0000000..541ec09 Binary files /dev/null and b/DEV/DEV_Madelaine/stub/exo4/Person.class differ diff --git a/DEV/DEV_Madelaine/stub/exo4/Person.java b/DEV/DEV_Madelaine/stub/exo4/Person.java new file mode 100644 index 0000000..b4f1951 --- /dev/null +++ b/DEV/DEV_Madelaine/stub/exo4/Person.java @@ -0,0 +1,44 @@ + +/** "Les personnes sont soit des chefs, soit des travailleurs" */ +public abstract class Person{ + /** + * valeur indiquant le niveau de coolitude de la personne + */ + private int funFactor; + + /** + * @return la valeur indiquant le niveau de coolitude de la personne. plus cete valeur est grande, plus la personne contribue à améliorer l'ambiance dans une fête. + * + */ + public int getFunFactor(){ + return this.funFactor; + } + + /** + * constructeur + * + * NB. Cette méthode ne peut pas être appelé directement pour instancier un objet car la classe est abstraite, mais sert dans les constructeurs de classes dérivées. + * + * @see Travailleur, Chef + */ + // + public Person(int n){ + if (n < 0) + throw new IllegalArgumentException("Le fun facteur est positif ou nul, vous avez proposé " + n); + this.funFactor = n; + } + + /** + * + * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle. + */ + public abstract int bestPartyWithoutMe(); + + + /** + * + * @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle). + */ + public abstract int bestParty(); +} + diff --git a/DEV/DEV_Madelaine/stub/exo4/Travailleur.class b/DEV/DEV_Madelaine/stub/exo4/Travailleur.class new file mode 100644 index 0000000..163aff0 Binary files /dev/null and b/DEV/DEV_Madelaine/stub/exo4/Travailleur.class differ diff --git a/DEV/DEV_Madelaine/stub/exo4/Travailleur.java b/DEV/DEV_Madelaine/stub/exo4/Travailleur.java new file mode 100644 index 0000000..3ecbd57 --- /dev/null +++ b/DEV/DEV_Madelaine/stub/exo4/Travailleur.java @@ -0,0 +1,31 @@ +/** feuille du motif composite */ +public class Travailleur extends Person { + + /** constructeur + * + * @param n fun factor + * + */ + public Travailleur(int n){ + super(n); + } + + /** + * + * @return fête sans le travailleur + */ + public int bestPartyWithoutMe(){ + return 0; + } + + /** + * @return fête avec le travailleur + */ + public int bestParty(){ + return this.getFunFactor(); + } + + +} + + diff --git a/DEV/DEV_Madelaine/stub/exo5/Chef.class b/DEV/DEV_Madelaine/stub/exo5/Chef.class new file mode 100644 index 0000000..95d0dd2 Binary files /dev/null and b/DEV/DEV_Madelaine/stub/exo5/Chef.class differ diff --git a/DEV/DEV_Madelaine/stub/exo5/Chef.java b/DEV/DEV_Madelaine/stub/exo5/Chef.java new file mode 100644 index 0000000..8422031 --- /dev/null +++ b/DEV/DEV_Madelaine/stub/exo5/Chef.java @@ -0,0 +1,75 @@ +import java.util.LinkedHashSet; +import java.util.Objects; +import java.util.*; + +/** feuille du motif composite */ +public class Chef extends Person { + + private List listeSubalterne; + private int[] listeFun = {-1, -1, -1}; // 0 best, 1 avec, 2 sans + + public boolean addSubalterne(Person p){ + return this.listeSubalterne.add(p); + } + + + + /** constructeur + * + * @param n fun factor + * + */ + public Chef(int n){ + super(n); + this.listeSubalterne = new ArrayList<>(); + } + + + /** + * La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi. + * + * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle. + * + */ + public int bestPartyWithoutMe(){ + if (this.listeFun[0] < 0){ + int fun = 0; + for (Person invitee : this.listeSubalterne){ + fun += invitee.bestParty(); + } + this.listeFun[0] = fun; + } + return this.listeFun[0]; + } + + /** + * La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi. + * + * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle. + * + */ + private int bestPartyWithMe(){ + if (this.listeFun[1] < 0){ + int fun = this.getFunFactor(); + for (Person invitee : this.listeSubalterne){ + fun += invitee.bestPartyWithoutMe(); + } + this.listeFun[1] = fun; + } + return this.listeFun[1]; + } + + /** + * La meilleure fête est soit sans moi (c'est l'union des meilleures fêtes de mes subalternes). + * soit c'est la meilleure fête avec moi. + * + * @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle). + * + */ + public int bestParty(){ + return Math.max(this.bestPartyWithMe(), this.bestPartyWithoutMe()); + } + +} + + diff --git a/DEV/DEV_Madelaine/stub/exo5/Exemple.class b/DEV/DEV_Madelaine/stub/exo5/Exemple.class new file mode 100644 index 0000000..612bac4 Binary files /dev/null and b/DEV/DEV_Madelaine/stub/exo5/Exemple.class differ diff --git a/DEV/DEV_Madelaine/stub/exo5/Exemple.java b/DEV/DEV_Madelaine/stub/exo5/Exemple.java new file mode 100644 index 0000000..9a23013 --- /dev/null +++ b/DEV/DEV_Madelaine/stub/exo5/Exemple.java @@ -0,0 +1,36 @@ +public class Exemple { + public static void main(String[] args) { + // bar 2 + // foo 5 + // titi 4 + // tata 4 + // toto 6 + // tete 6 + + Travailleur titi = new Travailleur(4); + Travailleur tata = new Travailleur(4); + Travailleur toto = new Travailleur(6); + + Chef foo = new Chef(5); + foo.addSubalterne(titi); + foo.addSubalterne(tata); + foo.addSubalterne(toto); + System.out.println(foo.bestParty()); + System.out.println(foo.bestPartyWithoutMe()); + + Travailleur tete = new Travailleur(6); + // System.out.println(tete.bestParty()); + // System.out.println(tete.bestPartyWithoutMe()); + + Chef bar = new Chef(2); + bar.addSubalterne(foo); + bar.addSubalterne(tete); + System.out.println(bar.bestParty()); + //System.out.println(bar.bestPartyWithoutMe()); + } + +} + + + + diff --git a/DEV/DEV_Madelaine/stub/exo5/Exemple2.java b/DEV/DEV_Madelaine/stub/exo5/Exemple2.java new file mode 100644 index 0000000..808a518 --- /dev/null +++ b/DEV/DEV_Madelaine/stub/exo5/Exemple2.java @@ -0,0 +1,33 @@ +public class Exemple2 { + public static void main(String[] args) { + // Exemple inspiré question Thibault B. + // 1 + // 10 + // 1 + // 1 + // 10 + // 3 + // 4 + + Travailleur a = new Travailleur(3); + Travailleur b = new Travailleur(4); + Chef c = new Chef(10); + c.addSubalterne(a); + c.addSubalterne(b); + Chef d = new Chef(1); + d.addSubalterne(c); + Chef e = new Chef(1); + e.addSubalterne(d); + Chef f = new Chef(10); + f.addSubalterne(e); + Chef g = new Chef(1); + g.addSubalterne(f); + + System.out.println(g.bestParty()); + } + +} + + + + diff --git a/DEV/DEV_Madelaine/stub/exo5/Exemple3.java b/DEV/DEV_Madelaine/stub/exo5/Exemple3.java new file mode 100644 index 0000000..55651c9 --- /dev/null +++ b/DEV/DEV_Madelaine/stub/exo5/Exemple3.java @@ -0,0 +1,43 @@ +public class Exemple3 { + public static void main(String[] args) { + + Travailleur a = new Travailleur(3); + Travailleur b = new Travailleur(4); + Chef c = new Chef(10); + c.addSubalterne(a); + c.addSubalterne(b); + Chef d = new Chef(1); + d.addSubalterne(c); + Chef e = new Chef(1); + e.addSubalterne(d); + Chef f = new Chef(10); + f.addSubalterne(e); + Chef g = new Chef(1); + g.addSubalterne(f); + + Travailleur titi = new Travailleur(4); + Travailleur tata = new Travailleur(4); + Travailleur toto = new Travailleur(6); + Chef foo = new Chef(5); + foo.addSubalterne(titi); + foo.addSubalterne(tata); + foo.addSubalterne(toto); + Chef bar = new Chef(2); + bar.addSubalterne(foo); + Travailleur tete = new Travailleur(6); + bar.addSubalterne(tete); + + Chef x = new Chef(2); + x.addSubalterne(g); + x.addSubalterne(bar); + Chef y = new Chef(39); + y.addSubalterne(x); + + System.out.println(y.bestParty()); + } + +} + + + + diff --git a/DEV/DEV_Madelaine/stub/exo5/Person.class b/DEV/DEV_Madelaine/stub/exo5/Person.class new file mode 100644 index 0000000..541ec09 Binary files /dev/null and b/DEV/DEV_Madelaine/stub/exo5/Person.class differ diff --git a/DEV/DEV_Madelaine/stub/exo5/Person.java b/DEV/DEV_Madelaine/stub/exo5/Person.java new file mode 100644 index 0000000..b4f1951 --- /dev/null +++ b/DEV/DEV_Madelaine/stub/exo5/Person.java @@ -0,0 +1,44 @@ + +/** "Les personnes sont soit des chefs, soit des travailleurs" */ +public abstract class Person{ + /** + * valeur indiquant le niveau de coolitude de la personne + */ + private int funFactor; + + /** + * @return la valeur indiquant le niveau de coolitude de la personne. plus cete valeur est grande, plus la personne contribue à améliorer l'ambiance dans une fête. + * + */ + public int getFunFactor(){ + return this.funFactor; + } + + /** + * constructeur + * + * NB. Cette méthode ne peut pas être appelé directement pour instancier un objet car la classe est abstraite, mais sert dans les constructeurs de classes dérivées. + * + * @see Travailleur, Chef + */ + // + public Person(int n){ + if (n < 0) + throw new IllegalArgumentException("Le fun facteur est positif ou nul, vous avez proposé " + n); + this.funFactor = n; + } + + /** + * + * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle. + */ + public abstract int bestPartyWithoutMe(); + + + /** + * + * @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle). + */ + public abstract int bestParty(); +} + diff --git a/DEV/DEV_Madelaine/stub/exo5/Travailleur.class b/DEV/DEV_Madelaine/stub/exo5/Travailleur.class new file mode 100644 index 0000000..163aff0 Binary files /dev/null and b/DEV/DEV_Madelaine/stub/exo5/Travailleur.class differ diff --git a/DEV/DEV_Madelaine/stub/exo5/Travailleur.java b/DEV/DEV_Madelaine/stub/exo5/Travailleur.java new file mode 100644 index 0000000..3ecbd57 --- /dev/null +++ b/DEV/DEV_Madelaine/stub/exo5/Travailleur.java @@ -0,0 +1,31 @@ +/** feuille du motif composite */ +public class Travailleur extends Person { + + /** constructeur + * + * @param n fun factor + * + */ + public Travailleur(int n){ + super(n); + } + + /** + * + * @return fête sans le travailleur + */ + public int bestPartyWithoutMe(){ + return 0; + } + + /** + * @return fête avec le travailleur + */ + public int bestParty(){ + return this.getFunFactor(); + } + + +} + +