• Aucun résultat trouvé

Dans cette version, on pose que c'est les clients qui sont responsables de la validité des données.

N/A
N/A
Protected

Academic year: 2022

Partager "Dans cette version, on pose que c'est les clients qui sont responsables de la validité des données."

Copied!
9
0
0

Texte intégral

(1)

Package Class Tree Deprecated Index Help

PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes

SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

java.lang.Object Matrice

public class Matrice extends java.lang.Object

Implémentation de la classe Matrice

Objectifs :

Mettre en place des raisonnements algorithmiques sur une structure de données particulière et la programmer en Java.

1.

Discussion sur la notion de responsabilité de la validité des données entre la classe Matrice et ses clients

2.

Utilisation de la classe Matrice 3.

La structure de données de base d'une matrice est un tableau de nombre à deux dimensions. Array deux dimensions de doubles : double[][] m = new double[ligne][colonne];

Dans cette version, on pose que c'est les clients qui sont responsables de la validité des données.

Les constructeurs sont :

Matrice (int) : matrice carrée (n lignes x n colonnes) initialisée avec des 0 1.

Matrice (int, int) : matrice rectangulaire (n lignes x m colonnes) initialisée avec des 0 2.

Matrice (int, int, double) : matrice rectangulaire (n lignes x m colonnes) initialisée avec val 3.

Matrice (Matrice) : clone de la matrice m 4.

Matrice (double[][]) : matrice initialisée par un tableau deux dimensions de doubles 5.

Les opérations sur la Matrice sont : accesseurs

1.

nombre de lignes : getNbLignes() 1.

nombre de colonne : getNbColonnes() 2.

accès à un élement : get() / set(double) 3.

Opérations matricielles 2.

addition 1.

multiplication par un scalaire 2.

multiplication matricielle 3.

transposée 4.

Affichage 3.

affichage simple de la matrice : toString() 1.

Remarque :

les indices des matrices commencent à 1 alors que les indices des tableaux commencent à 0 ! Afin de simplifier le travail de progammation, nous décrétons que les lignes et les colonnes sont 0-basés

(2)

Matrice(double[][] t)

Constructeur : matrice initialisée par un tableau deux dimensions de doubles

Matrice(int n)

Constructeur : matrice carrée (n lignes x n colonnes) initialisée avec des 0

Matrice(int nbLignes, int nbColonnes)

Constructeur : matrice rectangulaire (n lignes x m colonnes) initialisée avec des 0

Matrice(int nbLignes, int nbColonnes, double val)

Constructeur : matrice rectangulaire (n lignes x m colonnes) initialisée avec val

Matrice(Matrice a)

Constructeur : clone de la matrice m

Matrice add(Matrice a)

Addition matricielle : sur cette matrice elle-même Additionne m passée en paramètre avec cette matrice.

Matrice fois(double d)

Multiplication par un scalaire : sur une nouvelle matrice Multiplie tous les éléments de la matrice par le scalaire d (double).

Matrice fois(Matrice a)

Multiplication matricielle : sur une nouvelle matrice (Les valeurs de cette matrice sont affectées et la référence renvoyée est this).

double get(int ligne, int colonne)

Accesseur : lecture de l'élément m(ligne, colonne) La première ligne et la première colonne sont 0-basé.

int getNbColonnes()

Accesseur : nombre de colonne de la matrice (lecture seule)

int getNbLignes()

Accesseur : nombre de lignes de la matrice (lecture seule)

Matrice mult(double d)

Multiplication par un scalaire : sur cette matrice elle-même Multiplie tous les éléments de la matrice par le scalaire d (double).

Matrice mult(Matrice a)

Multiplication matricielle : sur cette matrice elle-même.

Matrice plus(Matrice a)

Addition matricielle : sur une nouvelle matrice

Additionne m passée en paramètre avec une nouvelle matrice.

void set(int ligne, int colonne, double val)

Accesseur : modification de l'élément m(ligne, colonne) La première ligne et la première colonne sont 0-basé.

java.lang.String toString()

Mise en forme de la matrice, principalement pour l'affichage.

Matrice transpose()

Transposée : sur cette matrice elle-même.

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

(3)

Matrice

public Matrice(int nbLignes, int nbColonnes)

Constructeur : matrice rectangulaire (n lignes x m colonnes) initialisée avec des 0 Parameters:

nbLignes - nombre de lignes

nbColonnes - nombre de colonnes

Matrice

public Matrice(int n)

Constructeur : matrice carrée (n lignes x n colonnes) initialisée avec des 0 Parameters:

n - dimension de la matrice carrée

Matrice

public Matrice(int nbLignes, int nbColonnes, double val)

Constructeur : matrice rectangulaire (n lignes x m colonnes) initialisée avec val Parameters:

nbLignes - nombre de lignes

nbColonnes - nombre de colonnes

val - valeur d'initialilsation

Matrice

public Matrice(Matrice a)

Constructeur : clone de la matrice m Parameters:

a - matrice à cloner

Matrice

public Matrice(double[][] t)

Constructeur : matrice initialisée par un tableau deux dimensions de doubles Parameters:

t - tableau 2-dimension de doubles contenant les valeurs de la matrice

(4)

getNbLignes

public int getNbLignes()

Accesseur : nombre de lignes de la matrice (lecture seule) Returns:

int nombre de ligne

getNbColonnes

public int getNbColonnes()

Accesseur : nombre de colonne de la matrice (lecture seule) Returns:

int nombre de ligne

get

public double get(int ligne, int colonne)

Accesseur : lecture de l'élément m(ligne, colonne) La première ligne et la première colonne sont 0-basé. Exemple d'utilisation :

Matrice m1 = new Matrice(3, 4, 5.0);

double d = m1.get (2, 2); // Assignation à "d" de la valeur 5.0 de m(2,2)

Parameters:

ligne - (0-basé)

colonne - (0-basé) Returns:

double valeur de m(ligne, colonne)

set

public void set(int ligne, int colonne, double val)

Accesseur : modification de l'élément m(ligne, colonne) La première ligne et la première colonne sont 0-basé. Exemple d'utilisation :

Matrice m1 = new Matrice(3, 4, 5.0);

m1.set (2, 2, 18.0); // Place la valeur 18.0 dans m(2,2)

Parameters:

ligne - (0-basé)

colonne - (0-basé)

(5)

add

public Matrice add(Matrice a)

Addition matricielle : sur cette matrice elle-même Additionne m passée en paramètre avec cette matrice.

(Les valeurs de cette matrice sont affectées et la référence renvoyée est this).

Conditions :

les dimensions des deux matrices doivent être égales.

Pas testé ici car de la responsabilité du client.

Exemple d'utilisation :

Matrice m1 = new Matrice(3, 4, 5.0);

Matrice m2 = new Matrice(3, 4, 10.0);

// a est une référence sur la matrice m1 !!

Matrice a = m1.add(m2); // soit : a = m1 + m2

Parameters:

m - matrice à additionner avec this Returns:

Matrice référence sur cette matrice après clacul

plus

public Matrice plus(Matrice a)

Addition matricielle : sur une nouvelle matrice

Additionne m passée en paramètre avec une nouvelle matrice.

(Les valeurs de cette matrice NE sont PAS affectées et la référence renvoyée est une autre matrice).

Conditions :

les dimensions des deux matrices doivent être égales.

Pas testé ici car de la responsabilité du client.

Exemple d'utilisation :

Matrice m1 = new Matrice(3, 4, 6.0);

Matrice m2 = new Matrice(3, 4, 11.0);

// a est une référence sur une NOUVELLE matrice Matrice a = m1.add(m2); // soit : a = m1 + m2

Parameters:

m - matrice à additionner (dans une nouvelle Matrice) Returns:

Matrice référence sur une nouvelle matrice après calcul

(6)

mult

public Matrice mult(double d)

Multiplication par un scalaire : sur cette matrice elle-même

Multiplie tous les éléments de la matrice par le scalaire d (double).

(Les valeurs de cette matrice sont affectées et la référence renvoyée est this).

Remarque :

Il existe la méthode mult avec comme paramètre une Matrice, cet opérateur est la multiplication matricielle.

On utilise ici la surcharge (méthode de même nom mais avec une signature différente). Ainsi il est possible de nommer une méthode identiquement avec des comportements différents selon le type de paramètres passés).

Exemple d'utilisation :

Matrice m1 = new Matrice(3, 4, 5.0);

double d = 11;

// a est une référence sur la matrice m1 !!

Matrice a = m1.mult(d); // soit : a = d * m1

Parameters:

m - matrice à multiplier avec le scalaire d

d - scalaire d Returns:

Matrice référence sur cette matrice après clacul

fois

public Matrice fois(double d)

Multiplication par un scalaire : sur une nouvelle matrice

Multiplie tous les éléments de la matrice par le scalaire d (double).

(Les valeurs de cette matrice NE sont PAS affectées et la référence renvoyée est une autre matrice).

Remarque :

Il existe la méthode fois avec comme paramètre une Matrice, cet opérateur est la multiplication matricielle.

On utilise ici la surcharge (méthode de même nom mais avec une signature différente). Ainsi il est possible de nommer une méthode identiquement avec des comportements différents selon le type de paramètres passés).

Exemple d'utilisation :

Matrice m1 = new Matrice(3, 4, 5.0);

double d = 11;

// a est une référence sur une NOUVELLE matrice Matrice a = m1.mult(d); // soit : a = d * m1

Parameters:

m - matrice à multiplier avec le scalaire d (dans une nouvelle Matrice)

d - scalaire d

(7)

Matrice référence sur une nouvelle matrice après calcul

mult

public Matrice mult(Matrice a)

Multiplication matricielle : sur cette matrice elle-même.

(Les valeurs de cette matrice sont affectées et la référence renvoyée est this).

Conditions : Soit m3 = m1 * m2

Le nombre de colonnes de m1 doit être égale au nombre de ligne de m2.

La matrice résultante est de dimension : nombre de ligne m1 par nombre de colonnes m2.

Remarque :

Il existe la méthode mult avec comme paramètre un double, cet opérateur est la multiplication par un scalaire.

On utilise ici la surcharge (méthode de même nom mais avec une signature différente). Ainsi il est possible de nommer une méthode identiquement avec des comportements différents selon le type de paramètres passés).

Exemple d'utilisation :

Matrice m1 = new Matrice(3, 4, 5.0);

Matrice m2 = new Matrice(4, 5, 10.0);

// a est une référence sur la matrice m1 !!

Matrice a = m1.mult(m2); // soit : a = m1 * m2

Parameters:

a - matrice à multiplier Returns:

Matrice référence sur cette matrice après clacul

fois

public Matrice fois(Matrice a)

Multiplication matricielle : sur une nouvelle matrice (Les valeurs de cette matrice sont affectées et la référence renvoyée est this).

Conditions : Soit m3 = m1 * m2

Le nombre de colonnes de m1 doit être égale au nombre de ligne de m2.

La matrice résultante est de dimension : nombre de ligne m1 par nombre de colonnes m2.

Remarque :

Il existe la méthode fois avec comme paramètre un double, cet opérateur est la multiplication par un scalaire.

On utilise ici la surcharge (méthode de même nom mais avec une signature différente). Ainsi il est possible de nommer une méthode identiquement avec des comportements différents selon le type de paramètres passés).

(8)

Exemple d'utilisation :

// Même nombre de lignes m1 que de colonne m2 Matrice m1 = new Matrice(3, 4, 5.0);

Matrice m2 = new Matrice(4, 5, 10.0);

// a est une référence sur une NOUVELLE matrice Matrice a = m1.mult(m2); // soit : a = m1 * m2

Parameters:

a - matrice à multiplier Returns:

Matrice référence sur une nouvelle matrice après calcul

transpose

public Matrice transpose()

Transposée : sur cette matrice elle-même.

(Les valeurs de cette matrice sont affectées et la référence renvoyée est this).

Remarque :

la dimension de la matrice résultante sont :

nombre de lignes est le nombre de colonnes de la matrice source et le nombre de colonnes est le nombre de lignes de la matrice source

Exemple d'utilisation :

double[][] t = {{11, 12, 13, 14}, {21, 22, 23, 24}, {31, 32, 33, 34}};

Matrice m1 = new Matrice (t);

// a est une référence sur la matrice m1 !!

Matrice a = m1.transposee(); // soit : a est la transposée de m1

Returns:

Matrice référence sur cette matrice après clacul

toString

public java.lang.String toString()

Mise en forme de la matrice, principalement pour l'affichage. Les colonnes sont séparées par des doubles espaces, les lignes sont séparées par des retour ligne (\n). Remarque: la méthode toString est héritée de Object ainsi elle utilisable implicitement dans toutes les classes si on ne réecrit pas cette méthode, c'est celle d'Object qui est utilisée et elle retourne : getClass().getName() + '@' +

Integer.toHexString(hashCode()) --> par exemple : matrice@87647741 Exemple d'utilisation :

Matrice m1 = new Matrice(3, 4, 5.0);

System.out.println ("m1 :\n" + m1);

Overrides:

toString in class java.lang.Object

Returns:

String chaîne de caractères formatée représentant la matrice

(9)

PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes

SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

Références

Documents relatifs

Dans la section 3, apr` es avoir propos´ e une nouvelle preuve du th´ eor` eme de Birkhoff, nous faisons une premi` ere ´ etude du probl` eme d’approximation par matrices

[r]

Le plan ci-dessus donne une représentation des îles de la Seine au centre de Paris (île de la Cité et île Saint-Louis) ainsi que des ponts permettant d’y accéder à partir de la

o` u f repr´esente une fonction d´efinie, continue et positive sur [valeur init, valeur f in] et o` u nb pas est un entier naturel non nul, qui retourne la valeur approch´ee du

Certains r´esultats retourn´es par Maple (e.g. ´el´ements propres d’une matrice) se trouvent dans une structure ordonn´ee (e.g. liste, ensemble, vecteur).. Il est parfois

On note r la masse de substance radioactive, p la masse totale de plastique pour les coques et enfin m le total en minutes de travail, n´ ecessaires ` a la fabrication en

D´eterminer les valeurs du coefficient a pour lesquelles la matrice A est diagonalisable.. On se propose de montrer que f A

On fait cela tant qu’il y a plusieurs ´el´ements dans le tableau.. Si le tableau est de taille impaire, son ´el´ement central