• Aucun résultat trouvé

cm02-heritage.pdf — March 1, 2005 — 1

N/A
N/A
Protected

Academic year: 2021

Partager "cm02-heritage.pdf — March 1, 2005 — 1"

Copied!
10
0
0

Texte intégral

(1)

as

Architecture des Systèmes d’Information

Plan Quelques sp´ecificateurs Types ´enum´er´es H´eritage

Programmation - Classes et H´ eritage -

Nicolas Malandain

March 1, 2005

Programmation - Classes et H´eritage - 1 / 38

as

Architecture des Systèmes d’Information

Plan Quelques sp´ecificateurs Types ´enum´er´es H´eritage

1 Quelques sp´ecificateurs static

final

2 Types ´enum´er´es Pr´esentation Exemples

3 H´eritage R´eutilisation En Java Polymorphisme La classe Object

Programmation - Classes et H´eritage - 2 / 38

Plan Quelques sp´ecificateurs Types ´enum´er´es H´eritage static final

Attributs et M´ ethodes de classe

Propri´et´es

Les membresstatic:

ne sont pas attach´es `a une instance ont une existence avant instanciation ne peuvent acc´eder aux membres non static sont partag´es par toutes les instances

Syntaxe

class NomClasse {

acc`es static type attribut;

acc`es static type methode(...);

}

Plan Quelques sp´ecificateurs Types ´enum´er´es H´eritage static final

Attributs de classe

initialis´es dans la classe (au chargement) acc`es par la classe ou une instance

Utilisation : information commune `a des instances (constantes), compteur de r´ef´erences, . . .

M´ethodes de classe

ne peuvent acc´eder qu’aux membresstatic acc`es par la classe ou une instance

Utilisation : boite `a outils (Math), manipulation d’instances de la classe, . . .

(2)

Plan Quelques sp´ecificateurs Types ´enum´er´es H´eritage static final

Initialisateur static

Permet l’initialisation complexe de membresstatic

Syntaxe

class NomClasse { static {

// instructions }

}

Programmation - Classes et H´eritage - 5 / 38

Plan Quelques sp´ecificateurs Types ´enum´er´es H´eritage static final

Exemples

ClasseCompteur.java

packagefr.insarouen.asi.cours2;

public class ClasseCompteur { private static int compteur=0;

public ClasseCompteur() { compteur++;

}

public static int getNbObjetConstruits() { returncompteur;

}

public static voidmain(String[] args) {

System.out.println("Nb objets construits : "+ClasseCompteur.getNbObjetConstruits());

ClasseCompteur[] cc=newClasseCompteur[10];

for(inti=0;i<10;i++) cc[i]=newClasseCompteur();

System.out.println("Nb objets construits : "+ClasseCompteur.getNbObjetConstruits());

} }

Programmation - Classes et H´eritage - 6 / 38

Plan Quelques sp´ecificateurs Types ´enum´er´es H´eritage static final

Hasard.java

packagefr.insarouen.asi.cours2;

importjava.util.Random;

public class Hasard {

private static final int NB_VAL = 20;

private static int[] sequenceAleatoire =new int[NB_VAL];

private Random aleatoire;

static {

Random alea=new Random();

for(inti=0; i<NB_VAL; i++)

sequenceAleatoire[i]=alea.nextInt()%100;

}

public Hasard() {

aleatoire =new Random(System.currentTimeMillis());

}

public int getNombre() {

returnsequenceAleatoire[aleatoire.nextInt()%NB_VAL];

} }

Plan Quelques sp´ecificateurs Types ´enum´er´es H´eritage static final

Les significations de final

final= non modifiable

En fonction du contexte final type attribut type simple : valeur constante type objet : r´ef´erence constante

type nomMethode(final type param, ...) le param`etre est constant (cf. ci-dessus) final type nomMethode(...)

la m´ethode ne peut ˆetre red´efinie lors d’un h´eritage private→final

final class NomClasse ...

la classe ne peut ˆetre d´eriv´ee

(3)

Plan Quelques sp´ecificateurs Types ´enum´er´es H´eritage static final

Constantes

Initialisation

Toute constante doit ˆetre initialis´ee : soit `a la d´eclaration

soit dans le constructeur (ou initialisateurstatic) l’initialisation peut ˆetre :

`

a la compilation : la valeur est disponible et elle est plac´ee en dur

`

a l’ex´ecution : la constante est initialis´ee `a l’ex´ecution

Deux “types” de constantes constante d’instance

initialis´ee `a l’instanciation, une constante par instance constante de classe

d´eclar´ee static(init au chargement), une constante unique

Programmation - Classes et H´eritage - 9 / 38

Plan Quelques sp´ecificateurs Types ´enum´er´es H´eritage static final

Exemples

Constantes.java

packagefr.insarouen.asi.cours2;

public class Constantes {

public final intvaleurentiere=42;

public final intvaleurAleatoire=(int)(Math.random()*100);

public static final intVALEUR_PLANCHER=200;

public final int[] tableau={1,2,3};

public final intvaleurentiere2;

public Constantes(intvalent) { valeurentiere2=valent;

// valeurentiere=valent;

// VALEUR_PLANCHER=13;

}

public static voidmain(String[] args) { Constantes cnsts=newConstantes(4);

// cnsts.valeurentiere2=3;

// cnsts.tableau=new int[5];

cnsts.tableau[0]=5;

} }

Programmation - Classes et H´eritage - 10 / 38

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage Pr´esentation Exemples

D´ efinition et syntaxe

D´efinition

Un type ´enum´er´e permet de d´efinir explicitement un ensemble ordonn´e de valeurs.

Syntaxe

enum NomTypeEnum {VAL1,VAL2, ..., VALn};

D´efinition interne `a une classe (inline) ou externe (publicou non)

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage Pr´esentation Exemples

Syntaxe et fonctionnalit´es

unenum est une classe (d´erive dejava.lang.Enum) les valeurs sontpublic static final

comparaison via==ouequals()

impl´emente l’interfacejava.lang.Comparable dispose des m´ethodestoString()etvalueOf()a ordinal()⇒position, values()⇒it´eration

a`a la red´efinition de l’une, l’autre doit toujours avoir la fonctionnalit´e inverse

(4)

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage Pr´esentation Exemples

Genre.java

packagefr.insarouen.asi.cours2;

publicenum Genre {MASCULIN, FEMININ};

Informaticien.java

packagefr.insarouen.asi.cours2;

public classInformaticien {

// un enum dans une classe est static

publicenum Type {NOUVEAU, DEBUTANT, CONFIRME, GOUROU};

private Type type;

private Genre genre;

publicInformaticien(Type _type, Genre _genre) { type=_type;

genre=_genre;

}

publicInformaticien(String strType, String strGenre) { type=Type.valueOf(strType);

genre=Genre.valueOf(strGenre);

}

publicString toString() {

return"Informaticien "+genre.toString().toLowerCase()+" "+type.toString().toLowerCase();

} }

Programmation - Classes et H´eritage - 13 / 38

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage Pr´esentation Exemples

EnumTest.java

package fr.insarouen.asi.cours2;

public class EnumTest {

public static void main(String[] args) {

Informaticien inf1 = new Informaticien(Informaticien.Type.NOUVEAU, Genre.MASCULIN);

Informaticien inf2 = new Informaticien("GOUROU","FEMININ");

System.out.println(inf1);

System.out.println(inf2);

} }

Programmation - Classes et H´eritage - 14 / 38

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

La r´ eutilisation des classes

La r´eutilisation de classes

La relation “a un” : la composition une classe `a pour attribut une classe.

Par exemple : une personne `a une adresse

La relation “est un” : l’h´eritage

une classe (d´eriv´ee) est d´efinie `a partir d’une autre classe (base) Par exemple : un homme est un mammif`ere

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

Vocabulaire de l’h´eritage

h´eriter⇔´etendre⇔d´eriver

super-classe⇔classe de base⇔classe m`ere sous-classe⇔classe d´eriv´ee⇔classe fille

Caract´eristiques de l’h´eritage cr´eation d’un nouveau type

contenant les membres du type de base (m´ethodes + attributs) les objets acceptent les messages des objets de la classe de base la classe d´eriv´ee est du type de la classe de base

Comment diff´erencier la nouvelle classe ajouter des nouveaux comportements red´efinir (changer) des comportements

(5)

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

Utilisation en Java

H´eritage

class ClasseFille extends ClasseMere { // attributs

// constructeurs et m´ethodes }

superetsuper()

superacc`ede aux attributs (en cas de masquage) et m´ethodes de la classe m`ere

super()appelle un contructeur de la classe m`ere

Remarque

Java ne permet pas l’h´eritage multiple

Programmation - Classes et H´eritage - 17 / 38

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

Surcharge & Red´ efinition

Surcharge(technique non li´ee `a l’h´eritage)

Cr´eer une m´ethode de mˆeme nom qu’une autre mais avec une signature diff´erente (ordre, type et nombre de param`etres).

Lors de l’envoi de message, le choix de la m´ethode a appeller se fait `a la compilation (invocation statique).

Red´efinition

Cr´eer une m´ethode de mˆeme signature qu’une m´ethode de la classe m`ere, ce qui modifie le comportement pour un mˆeme envoi de message.

Dans ce cas, le choix de la m´ethode `a appeller se fait `a l’ex´ecution (invocation dynamique)

Masquage

Dans une classe fille un attribut de mˆeme nom que dans la classe m`ere masque ce dernier (acc`es viasuper)

Programmation - Classes et H´eritage - 18 / 38

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

Trois types de polymorphisme

ad-hoc(surcharge)

m´ethodes de mˆeme nom aux fonctionnalit´es similaires dans une mˆeme classe ou dans des classes diff´erentes

par h´eritage (sp´ecialisation)

red´efinition d’une m´ethode d’une classe m`ere dans une classe fille possibilit´e d’envoyer un message `a un objet sans se soucier de son type

exemple : classespiece,pion,fou,roi,... et une m´ethodedeplacer

param´etrique (g´en´ericit´e) cf. cours suivants

possibilit´e de d´efinir des m´ethodes g´en´eriques (abstraction des types) exemple : m´ethode de tri quelque soit le type des objets `a trier

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

Le Polymorphisme (par h´ eritage)

Utilit´e

D´efinir un comportement commun dans une classe de base D´ecliner un comportement diff´erent dans des sous-classes Ne pas se soucier du type manipul´e (via la classe de base)

(6)

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

Exemple

Heritage.java

packagefr.insarouen.asi.cours2;

public classHeritage {

public static voidmain(String[] args) { Personne p1=newPersonne(Genre.MASCULIN);

Personne p2=newInformaticien2(Informaticien2.Type.DEBUTANT);

Personne p3=newMathematicien(Mathematicien.Type.CONFIRME);

Personne p4=newGeek();

Entreprise entreprise=newEntreprise(5);

entreprise.recrute(p1);

entreprise.recrute(p2);

entreprise.recrute(p3);

entreprise.recrute(p4);

entreprise.execute();

} }

Programmation - Classes et H´eritage - 21 / 38

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

Entreprise.java

packagefr.insarouen.asi.cours2;

public classEntreprise { privatePersonne[] equipe;

private intplace=0;

public Entreprise(inttailleEquipe) { equipe =newPersonne[tailleEquipe];

}

public booleanrecrute(Personne p) { if (place < equipe.length) {

equipe[place++]=p;

return true;

} return false;

}

public voidexecute() { for(inti=0; i<place; i++) {

System.out.println("--- "+equipe[i]+" ---");

equipe[i].cycleVie();

} } }

Programmation - Classes et H´eritage - 22 / 38

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

Personne.java

packagefr.insarouen.asi.cours2;

public class Personne { private Genre genre;

publicPersonne(Genre _genre) { genre=_genre;

}

publicPersonne(String strGenre) { genre=Genre.valueOf(strGenre);

}

public voidcycleVie() { manger();

sortir();

dormir();

}

public voidcycleVie(intnbcycles) { for(inti=0; i<nbcycles; i++)

cycleVie();

}

public voidmanger() {

System.out.println("je mange");

}

public voidsortir() {

System.out.println("ouais super, on va en boite");

}

public voiddormir() {

System.out.println("Rrrrrrr zzzzzzz Rrrrrrr zzzzzzzz");

}

publicString toString() {

return"Personne "+genre.toString().toLowerCase();

} }

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

Mathematicien.java

packagefr.insarouen.asi.cours2;

public class MathematicienextendsPersonne {

publicenum Type {NOUVEAU, DEBUTANT, CONFIRME, GOUROU};

private Type type;

publicMathematicien(Type _type) { super(Genre.MASCULIN);

type=_type;

}

publicMathematicien(Type _type, Genre genre) { super(genre);

type=_type;

}

public voidsortir() {

System.out.println("On s’fait une r´eunion sur les SVM");

}

public voidresoudreEquations() {

System.out.println("P(A|B) = P(AnB)/P(B)");

}

publicString toString() {

return super.toString()+" : mathematicien ("+getType()+")";

}

publicType getType() { returntype;

}

public voidcycleVie() { manger();

resoudreEquations();

sortir();

dormir();

} }

(7)

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

Informaticien2.java

packagefr.insarouen.asi.cours2;

public class Informaticien2extendsPersonne { // un enum dans une classe est static

publicenum Type {NOUVEAU, DEBUTANT, CONFIRME, GOUROU};

private Type type;

publicInformaticien2(Type _type) { super(Genre.MASCULIN);

type=_type;

}

publicInformaticien2(Type _type, Genre genre) { super(genre);

type=_type;

}

public voiddevelopper() {

System.out.println("je d´eveloppe, tu d´eveloppes, il d´eveloppe, ...");

}

publicString toString() {

return super.toString()+" : informaticien ("+getType()+")";

}

public voidcycleVie() { manger();

developper();

sortir();

dormir();

}

public Type getType() { returntype;

} }

Programmation - Classes et H´eritage - 25 / 38

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

Geek.java

packagefr.insarouen.asi.cours2;

public classGeekextendsInformaticien2 { public Geek() {

super(Type.GOUROU,Genre.MASCULIN);

}

public Geek(Type type, Genre genre) { super(type,genre);

}

public voiddevelopper() {

System.out.println("je script `a mort un truc r´evolutionnaire");

}

public voiddormir() {

System.out.println("Rrrrrrr zzzz; make bzImage ; Rrrrrrr zzzzz");

}

public voidsortir() {

System.out.println("je participe `a une bug squash party");

}

public String toString() {

return super.toString()+" avec comportement de geek" ; }

}

Programmation - Classes et H´eritage - 26 / 38

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

Constructeur

H´eritage & Constructeurs

pas d’h´eritage des constructeurs

appel des constructeurs des classes de base en premier

Fonctionnement

Le contructeur appelle par d´efaut le constructeur par d´efaut de la classe m`ere.

Modification du comportement :

Appel explicite `a un constructeur de la classe m`ere via super()

Syntaxe

ConstructeurClassFille( [param`etres] ) {

super( [param`etres] ); // appel au constructeur de la classe m`ere // code du constructeur

}

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

Constructeurs & m´ ethodes polymorphes

Explication du probl`eme

Si un constructeur d’une classe m`ere appelle une m´ethode red´efinie dans une classe fille, c’est cette m´ethode red´efinie qui est appell´ee.

ConstructeurEtPolymorphisme.java

packagefr.insarouen.asi.cours2;

public class ConstructeurEtPolymorphisme { public static voidmain(String[] args) {

B b=newB();

System.out.println(b);

} } class A {

int vara;

publicA() { methode();

}

public voidmethode() { vara=3;

}

publicString toString() { return"A(vara:"+vara+")";

} }

classBextendsA { intvarb;

publicB() { varb=10;

}

public voidmethode() { varb++;

}

publicString toString() {

return super.toString()+"B(varb:"+varb+")";

} }

(8)

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

Finalize

Red´efinition definalize

En cas de red´efinition definalize, il est important de respecter la structure de code suivante :

void finalize() {

super.finalize() // appel obligatoire // code

}

Programmation - Classes et H´eritage - 29 / 38

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

Object

Description

Objectest la super classe de toutes les classes (java.lang.object)son h´eritage est implicite.

Quelques m´ethodes

public String toString() protected Object clone() public boolean equals(Object) public int hashCode()

protected void finalize() public final Class getClass() void notify(), void notifyAll()

void wait() , void wait(long), void wait(long, int)

Programmation - Classes et H´eritage - 30 / 38

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

La m´ ethode toString

Fonction

Retourne une chaˆıne de caract`ere d´ecrivant l’objet (par d´efaut la classe) ainsi que le r´esultat de la m´ethodehashCode.

Appel´ee automatiquement si il y a besoin d’une chaˆıne de caract`eres.

Utilisation

Red´efinir la m´ethode pour retourner les informations souhait´ees (´etat de l’objet, valeurs, . . . )

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

La m´ ethode equals

Red´efinition (squelette classique) public boolean equals(Object o) {

return o!=null && getClass()==o.getClass()

&& test des attributs ; --- ou ---

return (o instanceof Demo) && test des attributs ; // des tests plus ‘‘compliqu´es’’ peuvent ^etre faits }

Remarques

commutative, r´eflexive, transitive

x.equals(y)⇒x.hashCode()==y.hashCode()

la red´efinition deequals()n´ecessite la red´efinition dehashCode() Non red´efinition deequals= test de l’´egalit´e des r´ef´erences

(9)

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

La m´ ethode clone

Fonctionnement

m´ethode d’Object= copie bit `a bit copie de surface

m´ethodeprotecteddansObject n´ecessite une red´efinition public doit impl´ementer l’interfaceCloneable

Programmation - Classes et H´eritage - 33 / 38

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

Squelette declone

class Demo implements Cloneable { // attributs

public Object clone() { Object copie=null;

try {

copie=super.clone();

}

catch (CloneNotSupportedException e) { e.printStackTrace(System.err);

}

// code de copie sp´ecifique du contenu de l’objet return copie;

} }

Programmation - Classes et H´eritage - 34 / 38

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

Exemple

EqualsClone.java

package fr.insarouen.asi.cours2;

public class EqualsClone {

public static void main(String[] args) {

PersonneEC p1 = new PersonneEC("Hoposte Fid`ele",194092890,10,01,1938);

PersonneEC p2 = new PersonneEC("Dipachair Deborah",294092890,12,8,1980);

PersonneEC p3;

System.out.println("p1.equals(p2) : "+p1.equals(p2));

System.out.println("p1.equals(p1) : "+p1.equals(p1));

p3 = (PersonneEC)p1.clone();

System.out.println("p1.equals(p3) : "+p1.equals(p3));

p3.setDateNaissance(12, 01, 1944);

System.out.println("p1.equals(p3) : "+p1.equals(p3));

} }

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

EqualsClone.java

class PersonneECimplementsCloneable {// code de classe incomplet privateString nomComplet;

private intnumSecu;

privateDateNaissance dateNaissance;

public booleanequals(Object o) {// ne tient pas compte du numSecu if (!(oinstanceofPersonneEC))

return false;

PersonneEC p = (PersonneEC) o;

returnnomComplet.equals(p.nomComplet) && dateNaissance.equals(p.dateNaissance);

}

public inthashCode() {// ne doit pas tenir compte de numSecu (cf equals) returnnomComplet.hashCode()+dateNaissance.hashCode();

}

public Object clone() { Object copie=null;

try {

copie=super.clone();

}

catch(CloneNotSupportedException e) { e.printStackTrace(System.err);

}

// PersonneEC copiePersonneEC = (PersonneEC)copie;

// dateNaissance = (DateNaissance)copiePersonneEC.dateNaissance.clone(); // copie en profondeur returncopie;

}

public String toString() {

returnnomComplet+"("+dateNaissance+") : "+numSecu;

(10)

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

EqualsClone.java

class DateNaissanceimplementsCloneable {// code de classe incomplet intjour, mois, annee;

public voidset(int_jour,int_mois,int_annee) { jour = _jour; mois = _mois; annee = _annee;

}

publicString toString() { returnjour+"/"+mois+"/"+annee;

}

public booleanequals(Object o) { if (!(oinstanceofDateNaissance))

return false;

DateNaissance dn=(DateNaissance)o;

returnjour==dn.jour && mois==dn.mois && annee==dn.annee;

}

public inthashCode() {

return(""+jour+mois+annee).hashCode();

}

publicObject clone() { Object copie=null;

try {

copie=super.clone();

}

catch(CloneNotSupportedException e) { e.printStackTrace(System.err);

} returncopie;

} }

Programmation - Classes et H´eritage - 37 / 38

Plan Quelques sp´ecificateurs Types ´enum´er´es eritage eutilisation En Java Polymorphisme La classe Object

Ex´ecution

p1.equals(p2) : false p1.equals(p1) : true p1.equals(p3) : true p1.equals(p3) : true

Ex´ecution avec retrait des commentaires p1.equals(p2) : false

p1.equals(p1) : true p1.equals(p3) : true p1.equals(p3) : false

Programmation - Classes et H´eritage - 38 / 38

Références

Documents relatifs

La présence de lactose dans le régime se traduit par des modifications dans la composition corporelle et dans la répartition des divers tissus : lorsque le lactose est

´ Ecrire la fonction somme colonne(A,j) qui fait la somme des valeurs ab- solues des termes de la colonne j.. En d´ eduire la fonction norme1(A) qui renvoie le maximum de

Ecrire la m´ ethode “public static int recherche(int[] tab, int x, int o)” de la classe “TableauEn- tier” qui renvoie l’indice de l’occurence n ◦ o de x ou −1 si x

Sur le plan de la classe, colorie en rouge ta table, en vert le tableau, en jaune les emplacements des ordinateurs, et en bleu les bibliothèques. Découverte

= suivi d’une constante enti`ere), les ´el´ements suivants ´etant alors incr´ement´es `a partir de cette valeur. Par exemple si on d´eclare :.. enum jour {lundi, mardi, mercredi =

- 1 o ) Ecrire une m´ethode d’initialisation (sans argument) qui demande une ´ chaˆıne de moins de quinze caract`eres (repr´esentant la langue) et, pour chaque entier compris entre

Examen d’analyse num´ erique.. Aucun document n’est

Examen d’analyse num´ erique.. Aucun document n’est