Classe matrice

Soyez le premier à donner votre avis sur cette source.

Vue 9 336 fois - Téléchargée 1 091 fois

Description

Cette classe réalise la plupart des calculs associés aux matrices, déterminant, cofacateur, trasposé addition, soustraction, inverse...
j'attends vos commentaires !

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
337
J'ai trouve un exemple récent d'une classe matrice de qualité, tu pourrais y jeter un œil
http://www.javafr.com/codes/CLASSE-MATRICE_45980.aspx
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
337
Je suis plutot d'accord pour dire que cette source n'est pas de niveau initié, et sur un critère objectif qui est que tu n'utilises pas le langage objet de java. Mais bon, ce n'est pas très grave.

Le problème avec ta classe est que même si tu n'utilises pas de langage objet, tu déclares tes méthodes comme des méthodes agissant sur des objets. Pour ne pas le faire, il faudrait que tu déclares tes fonctions en static : public static double...
Car sinon, tu dois créér un objet pour pouvoir utiliser la méthode, je pense que tu dois faire
Matrice m = new Matrice(); puis m.determinant(tableau).
En faisant cela tu ne t'en rends pas compte mais tu créé une instance d'objet, de type Object.

Personnellement, ça ne me dérange pas que tu n'utilises pas de langage objet si tu ne le connais pas, mais si tu l'as appris entre temps, tu devrais définir un objet matrice qui pourrait par exemple etre un extends de ArrayList> ou autre, je ne sais pas quelle collection est la plus adaptée pour ce que tu veux faire.

Je ne te mets pas de note pour l'instant, j'attends de voire les évolutions de ton code
Messages postés
14
Date d'inscription
dimanche 27 décembre 2009
Statut
Membre
Dernière intervention
23 janvier 2010

Merci de ton commentaire constructif.

Pour se qui est des indices des tableau, je sais le premier indice est 0. Cependant, Je trouve que les commencer par l'indice 1 m'aide a comprendre les problèmes.
et le code fonctionne je l'aie tester moi-même ;)

J'étudies actuellement au cégep de Trois-Rivières en technique de l'informatique et au moment de l'écriture de cette source, nous n'avions pas encore vu le concept de l'objet, ni des méthodes d'Ailleurs. nous commençons a voir l'objet cette session je pourrai alors améliorer mon code en conséquence. Pour se qui est des additions, soustraction, et bien je crois que tu as vite regarder car elle prenne en charge les matrices non-carrées.

Pour se qui est du niveau de la difficulté, et bien il s'agit d'un évaluation subjective et je ne comprends pas vraiment comment pourrais-je juger de la complexité de mon code. j'y suis donc aller selon la difficulté que j'ai eu à le produire et la calcul de déterminant étant la première méthode récursive que j'eu à créer, j'ai eu passablement de difficulté a réaliser ce programme.

Maintenant, pourrais-tu m'expliquer se que tu entend par "static" et par et par ajouter un constructeur private qui ne fait rien.

Sur ce merci beaucoup, il s'agit de ma deuxième publication sur ce site et j'attendais impatiemment mon premier commentaire ;)
Messages postés
123
Date d'inscription
mardi 5 août 2003
Statut
Membre
Dernière intervention
26 août 2012
3
Salut,

*** Juste quelques propositions d'améliorations ***

(Opinion perso) : C'est pas très objet ce que tu as fait... dommage... =/...

Mais bon si tu veux absolument passer en paramètres tes matrices comme tu l'as fait, il serait plus propre que :
* tes méthodes soient statiques (mot clé static)
* ta classe ne soit pas instanciable (ajouter un constructeur private qui ne fait rien)

Autres choses importantes :
* il faudrait préciser à l'utilisateur (en commentaires ou en Javadoc) pour les matrices passées en paramètre quel indice parme le 1er ou le 2ème représente les lignes et lequel représente les colonnes, sinon les résultats attendus peuvent être erronés.
* par convention, le nom des classes Java commence par une lettre Majuscule.
* utilise des noms de variables plus parlant : par exemple les noms des variables boucle et boucle1 ne sont pas très représentatifs, alors que des noms comme ligne, colonne, lig, col, numLigne, numColonne, numLig, numCol le sont un peu plus.
* ajouter une gestion propre des cas impossibles dans tes méthodes : par exemple l'addition et la soustraction sont définies uniquement pour des matrices de même taille (même nombre de colonnes et même nonmbre de lignes). Tu peux générer un résultat plus propre que l'émission d'un IndexOutOfBoundsException, comme par exemple écrire un message explicatif sur le flux de sortie standard ou celui d'erreur.

Encore autre chose : j'ai regardé vite fait ton code sans le tester... donc il y a peut-être quelque chose qui m'échappe et je peux très bien me tromper, mais :
* lors de tes itérations, il semblerait que tu commences à l'indice 1 : or le premier élément d'un tableau se trouve à l'indice 0 en Java. Par exemple pour l'addition de matrices, tu parcours une ligne (ou une colonne) en allant de l'indice 1 à matriceA.length - 1 inclus : ce qui fait au total matriceA.length - 1 éléments parcourus et donc un élément est à chaque fois oublié (en l'occurrence ici le premier, celui à l'indice 0). Donc es-tu sûr que ton code fonctionne ?

Pour finir, tu as classé cette source en niveau Initié... or le code Java que tu as écrit ne contient aucune difficulté technique, et le concept de matrice est plutôt très répandu et bien connu... donc ta source est largement accessible pour les débutants.

Voilà, bonne continuation... :D

@+

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.