diff --git a/src/qdev5/Fraction.java b/src/qdev5/Fraction.java
new file mode 100644
index 0000000000000000000000000000000000000000..1726b9136fc16fe473abac3ccca8ca59f488d733
--- /dev/null
+++ b/src/qdev5/Fraction.java
@@ -0,0 +1,44 @@
+package qdev5;
+
+public class Fraction extends Number
+{
+    private int num;
+    private int denom;
+
+    public Fraction(int n, int d)
+    {
+        this.num = n;
+        this.denom = d;
+    }
+
+
+    @Override
+    public int intValue()
+    {
+        return this.num / this.denom;    
+    }
+
+    @Override
+    public long longValue()
+    {
+        return this.num / this.denom;
+    }
+
+    @Override
+    public float floatValue()
+    {
+        return this.num / this.denom;
+    }
+
+    @Override
+    public double doubleValue()
+    {
+        return this.num / this.denom;
+    }   
+
+    @Override
+    public String toString()
+    {
+        return this.num+" divisé par "+this.denom;
+    }
+}
\ No newline at end of file
diff --git a/src/qdev5/NumberFactory.java b/src/qdev5/NumberFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..7cb7ac0de17170087886071ab2a374073261cb48
--- /dev/null
+++ b/src/qdev5/NumberFactory.java
@@ -0,0 +1,29 @@
+package qdev5;
+
+public class NumberFactory
+{
+    public static Number number(int i)
+    {
+        return i;
+    }
+
+    public static Number number(long l)
+    {
+        return l;
+    }
+
+    public static Number number(float f)
+    {
+        return f;
+    }
+
+    public static Number number(double d)
+    {
+        return d;
+    }
+
+    public static Number number(int i1, int i2)
+    {
+        return i1/i2;
+    }
+}
\ No newline at end of file
diff --git a/src/qdev5/Tabular.java b/src/qdev5/Tabular.java
new file mode 100644
index 0000000000000000000000000000000000000000..fc5c49af5a92262e651fa0b43abdcc3069ba45fe
--- /dev/null
+++ b/src/qdev5/Tabular.java
@@ -0,0 +1,48 @@
+package qdev5;
+
+public class Tabular
+{
+    private Number tab[];
+
+    public Tabular(int size)
+    {
+        tab = new Number[size];
+    }
+
+    public void set(int i, Number nbr)
+    {
+        tab[i] = nbr;
+    }
+
+    public Number max()
+    {
+        Number i = tab[0];
+        for(Number nbr : tab)
+        {
+            if(nbr.doubleValue()>i.doubleValue()) { i=nbr; }
+        }
+        return i;
+    }
+
+    @Override
+    public String toString()
+    {
+        String str = "[";
+        boolean isFinal;
+        for(Number i : tab)
+        {
+            try{
+                isFinal = i.equals(max());
+            } catch (NullPointerException e) {
+                System.err.println("null number");
+            }
+            finally
+            {
+                isFinal = false;
+            }
+            str=str+i+(isFinal ? "" : ",");
+        }
+        str=str+"]";
+        return str;
+    }
+}
diff --git a/src/qdev5/TestNumbers.java b/src/qdev5/TestNumbers.java
new file mode 100644
index 0000000000000000000000000000000000000000..3f1dee601e98c5ab4264c187f3cb0282ac9d11a2
--- /dev/null
+++ b/src/qdev5/TestNumbers.java
@@ -0,0 +1,21 @@
+package qdev5;
+
+public class TestNumbers
+{
+    public static void main(String[] args)
+    {
+        int i1 = 10;
+        int i2 = 5;
+        Fraction frac = new Fraction(i1, i2);
+        System.out.println(frac);
+        System.out.println(frac.doubleValue());
+        System.out.println(frac.floatValue());
+        System.out.println(frac.intValue());
+        System.out.println(frac.longValue());
+        Tabular tabular = new Tabular(5);
+        tabular.set(1, NumberFactory.number(32));
+        tabular.set(2, NumberFactory.number(100,3));
+        tabular.set(4, NumberFactory.number(3.5));
+        System.out.println(tabular);
+    }
+}
diff --git a/src/tp10/UsePrioritySchedulingQueue.java b/src/tp10/UsePrioritySchedulingQueue.java
index 0a001225691deeb7b88f4760d26f6d76100b6643..f60f1b39dfea52df573ffe6d770b842779e5ff0b 100644
--- a/src/tp10/UsePrioritySchedulingQueue.java
+++ b/src/tp10/UsePrioritySchedulingQueue.java
@@ -5,7 +5,7 @@ public class UsePrioritySchedulingQueue
     public static void main(String[] args)
     {
         PrioritySchedulingQueue<Task> tasks = new PrioritySchedulingQueue<>();
-
+        
         Task t1 = new Task("t1", 3);
         Task t2 = new Task("t2", 1);
         Task t3 = new Task("t3", 2);
diff --git a/test/qdev/RaceTest.java b/test/qdev/RaceTest.java
index 7dd164fd1c426e184f95319c40cf75ba898c3b66..4b6ef2f0baf096f157183f1ccd9602b2634d26fb 100644
--- a/test/qdev/RaceTest.java
+++ b/test/qdev/RaceTest.java
@@ -1,4 +1,4 @@
-package tpQU.tp04;
+package qdev;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -7,6 +7,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
+import tp02.Competitor;
+
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;