IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Je cherche des exemples de calcul Matriciel avec Delphi


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 175
    Par défaut Je cherche des exemples de calcul Matriciel avec Delphi
    salut!
    C'est encore moi!
    en fait cette fois je veux aller un peu plus loin dans Delphi
    en fait moi je suis en plein stage (stage de fin d'étude d'ing) qui va durer 6mois là ou je dois utiliser delphi pour integrer des options sup à un logiciel de calcul.
    la partie que je dois integrer contient des calcul matriciel et des équations 2 et 3 degré.
    c'est pour cela je vous sollicitrais tous de m'orienter vers des pistes qui explique comment fair ce genre de travail avec delphi surtout les Matrices( Comment lire une matrice n*n, comment je peux la modifier supprimer des lignes et/ou de collone etc).

  2. #2
    Inactif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 97
    Par défaut C'est vague...
    Elle est vague ta question...
    Il y a des composants tableaux dans Delphi qui pourraient t'aider...
    Par exemple le composant TStringGrid (F1 dessus pour les propriétés / méthodes).
    Mais tu peux aussi créer ton composant Matrices avec des TEdit.

  3. #3
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 509
    Par défaut
    Bonjour,

    je ne pense pas que cela existe en langage Pascal de base comme par exemple dans le Fortran ou il y a du calcul matriciel.

    Je pense qu'il faudrait créer des objets Vecteurs, puis Matrices et faire des fonction pour les différents opérateurs.

    Je ne crois pas que l'on puisse créer ses propres opérateurs comme en ADA par exemple.

    Cordialement

    Charly

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 175
    Par défaut
    Merci Beaucoup Charly

    Oui c'est exactement ce que je cherche, d'ailleur mon encadrant ma parlé de ça il faut créer des objets Mat et Vecteurs puis utiliser de s fonctions et des procedure pour les différents opérateurs .
    Mais comment?
    au moins un exemple svp

  5. #5
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 509
    Par défaut
    Bonjour,

    je ne suis pas très fort lma dedans, voici un exemple qui utilise des types simples

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Type
      matrice1=array[1..2,1..3]of integer;
      matrice2=array[1..3,1..2]of integer;
      matrice=array[1..high(matrice1),1..high(matrice2)]of integer;
     
    function Produit(Mat1:matrice1;Mat2:Matrice2):matrice;
    var
      i,j,k:integer;
      Mat3:matrice;
    begin
    for i:=1 to high(Mat1) do
      for j:=1 to high(Mat1) do
        begin
        Mat3[i,j]:=0;
        for k:=1 to high(Mat2) do
          Mat3[i,j] := Mat3[i,j]+Mat1[i,k]*Mat2[k,j];
        end;
        result := Mat3;
    end;
    Il faudrait le généraliser et peut être aussi créer une classe matrice :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    type
      TMatrice  = Class
         NbLignes       : Integer   ;
         NbColonnes   : Integer   ;
         Corps           : array[1..NbLignes,1..NbColonnes] of Real ; // Là cela ne doit pas marcher - il faut trouver autre chose
         procedure SetMatrice(...  initialisation de la matrice) ;
         procedure AfficheMatrice ;
      End ;
    Mais il faut demander de l'aide à des pro, car je ne suis pas à la hauteur !

    Cordialement

    Charly

  6. #6
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Par défaut
    Bah, les matrices c'est surtout des tableaux de tableaux.
    Genre Matrice 3x3 d'entier = Array[0..2] of Array[0.2] of Integer.
    Après, tous se passe via les indices.
    J'avais fait des programmes pareil lors des TP en analyse numérique, genre resolution par methode de GAUSS etc.

    A+

  7. #7
    rsc
    rsc est déconnecté
    Membre émérite
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Par défaut
    Je pense que dans une bibliothèque comme TpMath, tu trouverais ton bonheur.
    http://www.unilim.fr/pages_perso/jea...ath/tpmath.htm

  8. #8
    Membre Expert

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Par défaut
    Citation Envoyé par Charly910 Voir le message
    Je ne crois pas que l'on puisse créer ses propres opérateurs comme en ADA par exemple.
    Juste une précision : depuis au moins BDS 2006, on peut surcharger les opérateurs. On peut ainsi parfaitement créer une classe Matrice, lui redéfinir l'opérateur Multiply et ensuite faire des multiplications de matrices avec A * B.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 175
    Par défaut
    Franck SORIANO
    J'ai pas compris pourais-tu m'expliquer encore plus

  10. #10
    Membre Expert

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Par défaut
    Et bien c'est très simple :

    Dans tous les cas, il faut définir une classe Matrice.
    Sans surcharge des opérateurs, pour multiplier deux instances de Matrice, tu vas avoir besoin de définir une méthode ou une procédure pour faire la multiplication.
    Elle prendra deux paramètres : Les matrices à multiplier. Et renverra comme résultat une nouvelle instance de Matrice avec le résultat du calcul.

    Maintenant, si tu définis une surcharge des opérateurs, tu vas en fait définir cette même procédure. Mais tu vas la définir de telle sorte que le compilateur comprenne qu'elle sert à implémenter la multiplication.

    Ainsi, si A et B sont deux instances de Matrice, tu pourras écrire C := A*B, et le compilateur comprendra qu'il faut appeler la méthode de multiplication en lui passant A et B comme paramètre et affectera le résultat à C.

    C'est juste une syntaxe particulière qui permet ensuite de manipuler les objets comme s'il s'agissait de types primitifs...

Discussions similaires

  1. cherche des exemples avec VBO et IBO
    Par Norris dans le forum OpenGL
    Réponses: 2
    Dernier message: 31/05/2010, 15h13
  2. Réponses: 0
    Dernier message: 19/03/2008, 10h36
  3. Calcul matriciel avec la multiplication
    Par argon dans le forum C
    Réponses: 13
    Dernier message: 03/05/2007, 23h41
  4. Aide sur le calcul matricielle avec Excel
    Par tpcforever dans le forum Excel
    Réponses: 1
    Dernier message: 22/03/2007, 21h33
  5. Calcul matriciel avec Matlab
    Par comoliv02 dans le forum MATLAB
    Réponses: 1
    Dernier message: 12/03/2007, 12h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo