Upload files to "TEST2024"
This commit is contained in:
parent
4a053fbf93
commit
c8439a8616
68
TEST2024/Polynome.java
Normal file
68
TEST2024/Polynome.java
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
/**
|
||||||
|
* Classe modelisant un polynome à coefficients entiers
|
||||||
|
* Un polynome est caracterise par la suite de ses coefficients
|
||||||
|
* Ils sont stockes dans un tableau d'entiers, coefficient de poids faible en premier
|
||||||
|
* ex: 3x^2+5x+1 est represente par le tableau [1,5,3]
|
||||||
|
* Le premier coefficient ne peut pas etre nul
|
||||||
|
*/
|
||||||
|
public class Polynome{
|
||||||
|
//la liste des coefficients de notre polynome
|
||||||
|
int[] coefficients;
|
||||||
|
//le degre du polynome;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*le constructeur
|
||||||
|
*@param t un tableau d'entiers
|
||||||
|
*@throws IllegalArgumentException si le premier coefficient de t est nul
|
||||||
|
*/
|
||||||
|
public Polynome(int[] t){
|
||||||
|
coefficients=new int[t.length];
|
||||||
|
for(int i=0;i<t.length;i++){
|
||||||
|
coefficients[i]=t[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//renvoie le degre du polynome
|
||||||
|
//le degré du polynome nul est -1
|
||||||
|
public int degre(){
|
||||||
|
return coefficients.length-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*evalue le polynome sur un entier donne
|
||||||
|
*@param x l'entier
|
||||||
|
*@return int p(x)
|
||||||
|
*/
|
||||||
|
public int evaluer(int x){
|
||||||
|
int p=x;
|
||||||
|
int r=0;
|
||||||
|
for(int i=this.degre();i>=0;i--){
|
||||||
|
r+=coefficients[i]*p;
|
||||||
|
p*=x;
|
||||||
|
}
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*additionne deux polynome, renvoie le resultat dans un nouveau polynome
|
||||||
|
*@param p un polynome
|
||||||
|
*@return un polynome
|
||||||
|
*/
|
||||||
|
public Polynome add(Polynome p){
|
||||||
|
int d=this.degre()+1;
|
||||||
|
int[] c=new int[d];
|
||||||
|
for(int i=0;i<d;i++){
|
||||||
|
c[i]+=this.coefficients[i]+p.coefficients[i];
|
||||||
|
}
|
||||||
|
return new Polynome(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString(){
|
||||||
|
if(this.degre()==-1) return 0+"";
|
||||||
|
String s=""+coefficients[0];
|
||||||
|
for(int i=1;i<=this.degre();i++){
|
||||||
|
s+=coefficients[i]+"x^"+i+"+";
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
}
|
40
TEST2024/README.md
Normal file
40
TEST2024/README.md
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# TP noté tests et debug.
|
||||||
|
|
||||||
|
## Fichiers mis à disposition
|
||||||
|
Pour ce TP noté sur les tests, vous disposez des fichiers suivants
|
||||||
|
|
||||||
|
+ README.md ce fichier, qui vous indique ce qu'il faut faire.
|
||||||
|
+ **Polynome.java** Une implémentation de polynomes d'entiers.
|
||||||
|
+ TestPolynome.java des tests fournis pour corriger Polynome.java
|
||||||
|
+ **TestPolynomeACompleter.java** un fichier squelette de tests à compléter.
|
||||||
|
|
||||||
|
Seuls les fichiers dont les noms sont **en gras** ci-dessus sont à compléter et à rendre.
|
||||||
|
Pour les modalités, voir ci-dessous.
|
||||||
|
|
||||||
|
## Première partie : debug ##
|
||||||
|
Un certains nombres de tests sont fournis. Vous ne devez pas changer ces derniers.
|
||||||
|
Vous devez exécuter ces tests puis changer le code de la classe **Polynome** idéalement jusqu'à ce que les tests fournis soient satisfaits.
|
||||||
|
|
||||||
|
Chaque ligne de **Polynome.java** changée devra être suivi du commentaire //BUGFIX éventuellement suivi de texte expliquant le changement
|
||||||
|
|
||||||
|
Par exemple :
|
||||||
|
> return (this.index); //BUGFIX enlevé +1 si si vous avez enlevé un +1.
|
||||||
|
|
||||||
|
|
||||||
|
BUGFIX me permet de voir où vous avez modifié le code.
|
||||||
|
Si vous ne suivez pas ces consignes vous n'aurez aucun point sur cette partie.
|
||||||
|
|
||||||
|
## Seconde partie : test ##
|
||||||
|
Vous devez compléter le fichier **TestPolynomeACompleter.java**
|
||||||
|
Il n'est pas demandé de changer le code de **Polynome.java** pour passer ces nouveaux tests.
|
||||||
|
|
||||||
|
## Modalité de rendu ##
|
||||||
|
Vous devez envoyer par mail à luc.dartois@u-pec.fr avec comme objet : [TP Test] Nom Prenom
|
||||||
|
|
||||||
|
Le mail devra contenir une archive VotreNom.tar.gz contenant uniquement les deux fichiers .java (on ne veut pas les .class) suivants, édités par vos soins comme indiqué dans les questions ci-dessus :
|
||||||
|
**Polynome.java**
|
||||||
|
**TestPolynomeACompleter.java**
|
||||||
|
|
||||||
|
Pour ceux qui ont oublié comment faire :
|
||||||
|
|
||||||
|
> bob@box:~$ tar czvvf VotreNom.tar.gz Polynome.java TestPolynomeACompleter.java
|
67
TEST2024/TestPolynome.java
Normal file
67
TEST2024/TestPolynome.java
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
import static org.junit.Assert.assertTrue; // import static : une facilite offerte depuis java5 (pas besoin de mettre le prefixe)
|
||||||
|
import static org.junit.Assert.assertFalse; //
|
||||||
|
import static org.junit.Assert.assertEquals; //
|
||||||
|
import static org.junit.Assert.assertNull; //
|
||||||
|
import static org.junit.Assert.assertNotNull; //
|
||||||
|
import org.junit.Test;
|
||||||
|
import java.lang.StringBuilder;
|
||||||
|
import java.util.EmptyStackException;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public class TestPolynome{
|
||||||
|
|
||||||
|
@Test(expected=IllegalArgumentException.class)
|
||||||
|
public void LePlusGrandCoeffEstNonNul(){
|
||||||
|
Polynome p=new Polynome(new int[] {1,2,0});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void EvaluerCorrect(){
|
||||||
|
Polynome p=new Polynome(new int[] {1,2,1});
|
||||||
|
assertEquals(0,p.evaluer(-1));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void EvaluerEncore(){
|
||||||
|
Polynome p=new Polynome(new int[] {3,2,-1});
|
||||||
|
assertEquals(0,p.evaluer(3));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void AffichageCorrect(){
|
||||||
|
Polynome p=new Polynome(new int[] {1,2,3});
|
||||||
|
assertEquals("3x^2+2x+1",p.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void AjoutPolynome(){
|
||||||
|
Polynome p=new Polynome(new int[] {1,2,3});
|
||||||
|
Polynome q=new Polynome(new int[] {9,-4});
|
||||||
|
Polynome s=p.add(q);
|
||||||
|
assertEquals(s.evaluer(0),10);
|
||||||
|
assertEquals(s.evaluer(1),11);
|
||||||
|
assertEquals(s.evaluer(3),31);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void AjoutPolynomeEncore(){
|
||||||
|
Polynome p=new Polynome(new int[] {1,2,3});
|
||||||
|
Polynome q=new Polynome(new int[] {9,-4});
|
||||||
|
Polynome s=q.add(p);
|
||||||
|
assertEquals(s.evaluer(0),10);
|
||||||
|
assertEquals(s.evaluer(1),11);
|
||||||
|
assertEquals(s.evaluer(3),31);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void SommeInverseCreePolynomeNul(){
|
||||||
|
Polynome p=new Polynome(new int[] {1,2,3,4,5,7});
|
||||||
|
Polynome pm=new Polynome(new int[] {-1,-2,-3,-4,-5,-7});
|
||||||
|
assertEquals(-1,p.add(pm).degre());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
50
TEST2024/TestPolynomeACompleter.java
Normal file
50
TEST2024/TestPolynomeACompleter.java
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
import static org.junit.Assert.assertTrue; // import static : une facilite offerte depuis java5 (pas besoin de mettre le prsfixe)
|
||||||
|
import static org.junit.Assert.assertFalse; //
|
||||||
|
import static org.junit.Assert.assertEquals; //
|
||||||
|
import static org.junit.Assert.assertNull; //
|
||||||
|
import static org.junit.Assert.assertNotNull; //
|
||||||
|
import org.junit.Test;
|
||||||
|
import java.lang.StringBuilder;
|
||||||
|
import java.util.EmptyStackException;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public class TestPolynomeACompleter{
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void OnCreeUnPolynome(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test()
|
||||||
|
public void OnCreeUnPolynomeAPartirDeNull(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void DegreEstCorrect(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public OnAfficheLePolynomeNul(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//attention le polynome nul n'est pas null
|
||||||
|
@Test
|
||||||
|
public void DegrePolynomeNul(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void AddEstCommutatif(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void EvaluerLaSommeEstEgalASommerLesEvaluations(){
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user