dhgfhuje
This commit is contained in:
parent
446eb575de
commit
4041397b09
@ -1,10 +1,11 @@
|
|||||||
dear Madam,
|
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.
|
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.
|
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
|
https://www.indeed.com/jobs?q=developer&l=New+York%2C+NY&sc=0kf%3Ajt%28internship%29%3B&vjk=ab35090a7f1582e1
|
BIN
Anglish/mon CV 2023.pdf
Executable file
BIN
Anglish/mon CV 2023.pdf
Executable file
Binary file not shown.
BIN
BD/Lekpa/2_TP_PLSQL.pdf
Normal file
BIN
BD/Lekpa/2_TP_PLSQL.pdf
Normal file
Binary file not shown.
141
BD/Lekpa/tp02.txt
Normal file
141
BD/Lekpa/tp02.txt
Normal file
@ -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
|
||||||
|
|
118
BD/Lekpa/tp02_2.txt
Normal file
118
BD/Lekpa/tp02_2.txt
Normal file
@ -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
|
||||||
|
|
Binary file not shown.
@ -9,12 +9,12 @@ public class Q1Main{
|
|||||||
int i;
|
int i;
|
||||||
try{
|
try{
|
||||||
for (i=0; i<args.length; i++){
|
for (i=0; i<args.length; i++){
|
||||||
if (args[i].equals("*") || args[i].equals("/") || args[i].equals("+") || args[i].equals("-")){
|
if (args[i].equals("x") || args[i].equals("/") || args[i].equals("+") || args[i].equals("-")){
|
||||||
int a;
|
int a;
|
||||||
int b;
|
int b;
|
||||||
a = liste.pop();
|
a = liste.pop();
|
||||||
b = liste.pop();
|
b = liste.pop();
|
||||||
if(args[i].equals("*")){
|
if(args[i].equals("x")){
|
||||||
liste.push(b*a);
|
liste.push(b*a);
|
||||||
}
|
}
|
||||||
if(args[i].equals("/")){
|
if(args[i].equals("/")){
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
DEV/DEV3.2/TP06_Dictionnaires/Q2Main.class
Normal file
BIN
DEV/DEV3.2/TP06_Dictionnaires/Q2Main.class
Normal file
Binary file not shown.
@ -1,23 +1,26 @@
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.io.*;
|
||||||
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
|
||||||
public class Q1Main{
|
public class Q2Main{
|
||||||
public static void main(String args[]){
|
public static void main(String args[]){
|
||||||
String nomFichier = 'rgb.txt';
|
String nomFichier = "rgb.txt";
|
||||||
HashMap<String,Color> dicoCouleur;
|
HashMap<String,Color> dicoCouleur = new HashMap<>();
|
||||||
|
DefaultListModel<String> listeCouleur = new DefaultListModel<>();
|
||||||
try{
|
try{
|
||||||
BufferedReader lecture = new BufferedReader(new FileReader("rgb.txt"));
|
BufferedReader lecture = new BufferedReader(new FileReader(nomFichier));
|
||||||
String ligne;
|
String ligne;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
while ((ligne = lecture.readLine()) != null) {
|
while ((ligne = lecture.readLine()) != null) {
|
||||||
String[] donne = ligne.split("\\s+");
|
int rouge = Integer.parseInt(ligne.substring(0,3).trim());
|
||||||
int rouge = Integer.parseInt(data[0]);
|
int vert = Integer.parseInt(ligne.substring(4,7).trim());
|
||||||
int vert = Integer.parseInt(data[1]);
|
int bleu = Integer.parseInt(ligne.substring(8,11).trim());
|
||||||
int bleu = Integer.parseInt(data[2]);
|
Color couleur = new Color(rouge, vert, bleu);
|
||||||
Color couleur = Color(rouge, vert, bleu);
|
String nom = ligne.substring(13).trim();
|
||||||
String nom = data[3];
|
|
||||||
|
|
||||||
dicoCouleur.put(nom, couleur);
|
dicoCouleur.put(nom, couleur);
|
||||||
|
listeCouleur.addElement(nom);
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.err.println("Erreur de lecture dans rgb.txt !");
|
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 !");
|
System.err.println("Erreur de fermeture de rgb.txt !");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JList<String> menuDeroulant = new JList<>(listeCouleur);
|
||||||
|
JScrollPane ascensseur = new JScrollPane(menuDeroulant);
|
||||||
JFrame fenetre = new JFrame();
|
JFrame fenetre = new JFrame();
|
||||||
fenetre.setSize(700, 300);
|
fenetre.setSize(700, 300);
|
||||||
fenetre.setLocation(0, 0);
|
fenetre.setLocation(0, 0);
|
||||||
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
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);
|
fenetre.setVisible(true);
|
||||||
|
|
||||||
} catch(FileNotFoundException e) {
|
} catch(FileNotFoundException e) {
|
||||||
|
BIN
DEV/DEV3.2/TP07_Arbres/Arbre.class
Normal file
BIN
DEV/DEV3.2/TP07_Arbres/Arbre.class
Normal file
Binary file not shown.
99
DEV/DEV3.2/TP07_Arbres/Arbre.java
Normal file
99
DEV/DEV3.2/TP07_Arbres/Arbre.java
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
public class Arbre<E>{
|
||||||
|
private Noeud<E> racine;
|
||||||
|
private String strArbre;
|
||||||
|
|
||||||
|
public Arbre(){
|
||||||
|
}
|
||||||
|
|
||||||
|
public Arbre(E racine){
|
||||||
|
this.racine = new Noeud<E>(racine);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Arbre(Noeud<E> racine){
|
||||||
|
this.racine = racine;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRacine(E racine){
|
||||||
|
this.racine = new Noeud<E>(racine);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Noeud<E> 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<E> noeud){
|
||||||
|
try{
|
||||||
|
String valeur = noeud.getValue().toString();
|
||||||
|
if (valeur.equals("x") || valeur.equals("/") || valeur.equals("+") || valeur.equals("-")){
|
||||||
|
this.strArbre += "(";
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
this.strArbre += valeur;
|
||||||
|
}
|
||||||
|
List<Noeud<E>> fils = noeud.getFils();
|
||||||
|
for (int i=0; i<fils.size(); i++){
|
||||||
|
this.updateStrArbreQ3(fils.get(i));
|
||||||
|
if (i == 0){
|
||||||
|
this.strArbre += valeur;
|
||||||
|
}
|
||||||
|
if (i == 1){
|
||||||
|
this.strArbre += ")";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (NullPointerException e){
|
||||||
|
this.strArbre += "null";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateStrArbreQ2(Noeud<E> noeud){
|
||||||
|
try{
|
||||||
|
this.strArbre += noeud.getValue().toString() + " ";
|
||||||
|
List<Noeud<E>> fils = noeud.getFils();
|
||||||
|
for (int i=0; i<fils.size(); i++){
|
||||||
|
this.updateStrArbreQ2(fils.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (NullPointerException e){
|
||||||
|
this.strArbre += "null";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateStrArbre(Noeud<E> noeud, int profondeur){
|
||||||
|
int i;
|
||||||
|
this.strArbre += "\n";
|
||||||
|
for (i=0; i<profondeur; i++){
|
||||||
|
this.strArbre += " ";
|
||||||
|
}
|
||||||
|
try{
|
||||||
|
this.strArbre += noeud.getValue().toString();
|
||||||
|
List<Noeud<E>> fils = noeud.getFils();
|
||||||
|
for (i=0; i<fils.size(); i++){
|
||||||
|
this.updateStrArbre(fils.get(i), profondeur+1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (NullPointerException e){
|
||||||
|
this.strArbre += "null";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
DEV/DEV3.2/TP07_Arbres/Noeud.class
Normal file
BIN
DEV/DEV3.2/TP07_Arbres/Noeud.class
Normal file
Binary file not shown.
23
DEV/DEV3.2/TP07_Arbres/Noeud.java
Normal file
23
DEV/DEV3.2/TP07_Arbres/Noeud.java
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
public class Noeud<E>{
|
||||||
|
private E valeur;
|
||||||
|
private List<Noeud<E>> fils;
|
||||||
|
|
||||||
|
public Noeud(E valeur){
|
||||||
|
this.valeur = valeur;
|
||||||
|
this.fils = new ArrayList<Noeud<E>>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public E getValue(){
|
||||||
|
return this.valeur;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Noeud<E>> getFils(){
|
||||||
|
return this.fils;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void add(Noeud<E> fils){
|
||||||
|
this.fils.add(fils);
|
||||||
|
}
|
||||||
|
}
|
BIN
DEV/DEV3.2/TP07_Arbres/Q1File.class
Normal file
BIN
DEV/DEV3.2/TP07_Arbres/Q1File.class
Normal file
Binary file not shown.
33
DEV/DEV3.2/TP07_Arbres/Q1File.java
Normal file
33
DEV/DEV3.2/TP07_Arbres/Q1File.java
Normal file
@ -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<listeBrute.length; i++){
|
||||||
|
listeFinal[i] = Q1File.convertion(listeBrute[i]);
|
||||||
|
}
|
||||||
|
return listeFinal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Q1File convertion(File repertoire){
|
||||||
|
if (repertoire == null){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return new Q1File(repertoire.getAbsolutePath());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString(){
|
||||||
|
return this.getName();
|
||||||
|
}
|
||||||
|
}
|
BIN
DEV/DEV3.2/TP07_Arbres/Q1Main.class
Normal file
BIN
DEV/DEV3.2/TP07_Arbres/Q1Main.class
Normal file
Binary file not shown.
31
DEV/DEV3.2/TP07_Arbres/Q1Main.java
Normal file
31
DEV/DEV3.2/TP07_Arbres/Q1Main.java
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
import java.util.*;
|
||||||
|
import java.io.*;
|
||||||
|
|
||||||
|
public class Q1Main{
|
||||||
|
private static Arbre<Q1File> arbre;
|
||||||
|
|
||||||
|
public static void main(String args[]){
|
||||||
|
try{
|
||||||
|
Q1File racine = new Q1File(args[0]);
|
||||||
|
Q1Main.arbre = new Arbre<Q1File>(racine);
|
||||||
|
Q1Main.recursive(racine, arbre.getRacine());
|
||||||
|
Q1Main.arbre.afficheArbre();
|
||||||
|
}
|
||||||
|
catch(ArrayIndexOutOfBoundsException e){
|
||||||
|
System.out.println(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void recursive(Q1File repertoire, Noeud<Q1File> noeud){
|
||||||
|
if (repertoire != null){
|
||||||
|
Q1File[] contenu = Q1File.convertion(repertoire.listFiles());
|
||||||
|
if (contenu != null){
|
||||||
|
for (Q1File item : contenu){
|
||||||
|
Noeud<Q1File> newFils = new Noeud<Q1File>(item);
|
||||||
|
noeud.add(newFils);
|
||||||
|
Q1Main.recursive(item, newFils);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
DEV/DEV3.2/TP07_Arbres/Q2Main.class
Normal file
BIN
DEV/DEV3.2/TP07_Arbres/Q2Main.class
Normal file
Binary file not shown.
34
DEV/DEV3.2/TP07_Arbres/Q2Main.java
Normal file
34
DEV/DEV3.2/TP07_Arbres/Q2Main.java
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
public class Q2Main{
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
ArrayDeque<Noeud<String>> liste = new ArrayDeque<>();
|
||||||
|
try{
|
||||||
|
for (int i=0; i<args.length; i++){
|
||||||
|
if (args[i].equals("x") || args[i].equals("/") || args[i].equals("+") || args[i].equals("-")){
|
||||||
|
Noeud<String> a = liste.pop();
|
||||||
|
Noeud<String> b = liste.pop();
|
||||||
|
Noeud<String> c = new Noeud<String>(args[i]);
|
||||||
|
c.add(b);
|
||||||
|
c.add(a);
|
||||||
|
liste.push(c);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
liste.push(new Noeud<String>(args[i]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Arbre<String> 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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
DEV/DEV3.2/TP08_Arbres_suite/Q1Arbre.class
Normal file
BIN
DEV/DEV3.2/TP08_Arbres_suite/Q1Arbre.class
Normal file
Binary file not shown.
79
DEV/DEV3.2/TP08_Arbres_suite/Q1Arbre.java
Normal file
79
DEV/DEV3.2/TP08_Arbres_suite/Q1Arbre.java
Normal file
@ -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 ()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
DEV/DEV3.2/TP08_Arbres_suite/Q1Main.class
Normal file
BIN
DEV/DEV3.2/TP08_Arbres_suite/Q1Main.class
Normal file
Binary file not shown.
19
DEV/DEV3.2/TP08_Arbres_suite/Q1Main.java
Normal file
19
DEV/DEV3.2/TP08_Arbres_suite/Q1Main.java
Normal file
@ -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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
DEV/DEV3.2/TP08_Arbres_suite/Q1Noeud.class
Normal file
BIN
DEV/DEV3.2/TP08_Arbres_suite/Q1Noeud.class
Normal file
Binary file not shown.
81
DEV/DEV3.2/TP08_Arbres_suite/Q1Noeud.java
Normal file
81
DEV/DEV3.2/TP08_Arbres_suite/Q1Noeud.java
Normal file
@ -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<this.occurence; i++){
|
||||||
|
resultat += (this.clef + " ");
|
||||||
|
}
|
||||||
|
return resultat;
|
||||||
|
}
|
||||||
|
}
|
68
DEV/DEV_Madelaine/stub/exo3/Chef.java
Normal file
68
DEV/DEV_Madelaine/stub/exo3/Chef.java
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
import java.util.LinkedHashSet;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
/** feuille du motif composite */
|
||||||
|
public class Chef extends Person {
|
||||||
|
|
||||||
|
private List<Person> 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());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
36
DEV/DEV_Madelaine/stub/exo3/Exemple.java
Normal file
36
DEV/DEV_Madelaine/stub/exo3/Exemple.java
Normal file
@ -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());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
33
DEV/DEV_Madelaine/stub/exo3/Exemple2.java
Normal file
33
DEV/DEV_Madelaine/stub/exo3/Exemple2.java
Normal file
@ -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());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
43
DEV/DEV_Madelaine/stub/exo3/Exemple3.java
Normal file
43
DEV/DEV_Madelaine/stub/exo3/Exemple3.java
Normal file
@ -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());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
44
DEV/DEV_Madelaine/stub/exo3/Person.java
Normal file
44
DEV/DEV_Madelaine/stub/exo3/Person.java
Normal file
@ -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
|
||||||
|
*
|
||||||
|
* <b>NB</b>. 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();
|
||||||
|
}
|
||||||
|
|
31
DEV/DEV_Madelaine/stub/exo3/Travailleur.java
Normal file
31
DEV/DEV_Madelaine/stub/exo3/Travailleur.java
Normal file
@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
BIN
DEV/DEV_Madelaine/stub/exo4/Chef.class
Normal file
BIN
DEV/DEV_Madelaine/stub/exo4/Chef.class
Normal file
Binary file not shown.
75
DEV/DEV_Madelaine/stub/exo4/Chef.java
Normal file
75
DEV/DEV_Madelaine/stub/exo4/Chef.java
Normal file
@ -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<Person> 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());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
BIN
DEV/DEV_Madelaine/stub/exo4/Exemple.class
Normal file
BIN
DEV/DEV_Madelaine/stub/exo4/Exemple.class
Normal file
Binary file not shown.
36
DEV/DEV_Madelaine/stub/exo4/Exemple.java
Normal file
36
DEV/DEV_Madelaine/stub/exo4/Exemple.java
Normal file
@ -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());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
33
DEV/DEV_Madelaine/stub/exo4/Exemple2.java
Normal file
33
DEV/DEV_Madelaine/stub/exo4/Exemple2.java
Normal file
@ -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());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
43
DEV/DEV_Madelaine/stub/exo4/Exemple3.java
Normal file
43
DEV/DEV_Madelaine/stub/exo4/Exemple3.java
Normal file
@ -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());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
BIN
DEV/DEV_Madelaine/stub/exo4/Person.class
Normal file
BIN
DEV/DEV_Madelaine/stub/exo4/Person.class
Normal file
Binary file not shown.
44
DEV/DEV_Madelaine/stub/exo4/Person.java
Normal file
44
DEV/DEV_Madelaine/stub/exo4/Person.java
Normal file
@ -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
|
||||||
|
*
|
||||||
|
* <b>NB</b>. 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();
|
||||||
|
}
|
||||||
|
|
BIN
DEV/DEV_Madelaine/stub/exo4/Travailleur.class
Normal file
BIN
DEV/DEV_Madelaine/stub/exo4/Travailleur.class
Normal file
Binary file not shown.
31
DEV/DEV_Madelaine/stub/exo4/Travailleur.java
Normal file
31
DEV/DEV_Madelaine/stub/exo4/Travailleur.java
Normal file
@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
BIN
DEV/DEV_Madelaine/stub/exo5/Chef.class
Normal file
BIN
DEV/DEV_Madelaine/stub/exo5/Chef.class
Normal file
Binary file not shown.
75
DEV/DEV_Madelaine/stub/exo5/Chef.java
Normal file
75
DEV/DEV_Madelaine/stub/exo5/Chef.java
Normal file
@ -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<Person> 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());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
BIN
DEV/DEV_Madelaine/stub/exo5/Exemple.class
Normal file
BIN
DEV/DEV_Madelaine/stub/exo5/Exemple.class
Normal file
Binary file not shown.
36
DEV/DEV_Madelaine/stub/exo5/Exemple.java
Normal file
36
DEV/DEV_Madelaine/stub/exo5/Exemple.java
Normal file
@ -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());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user