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

Macros et VBA Excel Discussion :

Multiplication de complexe avec un vecteur


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Sans emploi - Autonome
    Inscrit en
    Mars 2018
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sans emploi - Autonome

    Informations forums :
    Inscription : Mars 2018
    Messages : 130
    Points : 35
    Points
    35
    Par défaut Multiplication de complexe avec un vecteur
    Bonjour,

    Je suis entrain de réaliser un programme qui permet de récupérer des valeurs dans différents textbox et de les stocker dans 3 vecteurs : epaisseur_mm, tg et eps.

    A présent je souhaite effectuer une multiplication dans ma boucle pour le vecteurepaisseur_mm avec un complexe : (1 - 1i*tg(k)).

    J'ai essayer de plusieurs manière notamment avec COMPLEXE(1;-tg(k);""k"") mais j'ai toujours une erreur.

    Voici mon code que j'ai actuellement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim epaisseur_mm(1 To 12), k As Long
    Dim tg(1 To 12)
    Dim eps(1 To 12)
     
    For k = 1 To M
        epaisseur_mm(k) = CSng(Me.Controls("ep_c" & k).Text)
        tg(k) = CSng(Me.Controls("tg_c" & k).Text)
        eps(k) = CSng(Me.Controls("eps_c" & k).Text)
    Next k
    Merci.

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    en VBA, la fonction COMPLEXE() est Application.WorksheetFunction.Complex(Partie Réelle, Partie Imaginaire)
    il y a un troisième paramètre facultatif pour travailler sur du i ou j ... par défaut c'est i

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub toto()
    Dim i As Long
    i = 5
                                         '1 - 20i
        MsgBox WorksheetFunction.Complex(1, -4 * i)
    End Sub

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Sans emploi - Autonome
    Inscrit en
    Mars 2018
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sans emploi - Autonome

    Informations forums :
    Inscription : Mars 2018
    Messages : 130
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par joe.levrai Voir le message
    Bonjour,

    en VBA, la fonction COMPLEXE() est Application.WorksheetFunction.Complex(Partie Réelle, Partie Imaginaire)
    il y a un troisième paramètre facultatif pour travailler sur du i ou j ... par défaut c'est i
    Salut,

    J'ai testé cette fonction mais quand je debug je n'obtiens pas une valeurs complexe sur esp(k).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    eps(k) = CSng(Me.Controls("eps_c" & k).Text) * WorksheetFunction.Complex(1, -tg(k) * i)
    Merci.

  4. #4
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Complex ne renvoie pas réellement un nombre complexe, il renvoie un string affichant un nombre complexe.

    Tu peux utiliser au sein de la fonction Complex des opérations sur la partie imaginaire ou réelle, mais tu ne peux pas réutiliser le résultat de la fonction dans une nouvelle opération

  5. #5
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Comment est déclaré eps() ?
    A ma connaissance, VBA ne sait pas gérer les nombres complexes, contrairement à Excel.
    https://msdn.microsoft.com/en-us/VBA...les/data-types

    Dans VBE, quand je tape Dim MaVariable As, je ne vois rien dans les proposition qui semble se rapprocher d'un nombre complexe.

    Plutôt que de passer par des variable, peut-être devrais-tu passer par des cellules.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Sans emploi - Autonome
    Inscrit en
    Mars 2018
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sans emploi - Autonome

    Informations forums :
    Inscription : Mars 2018
    Messages : 130
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Comment est déclaré eps() ?
    A ma connaissance, VBA ne sait pas gérer les nombres complexes, contrairement à Excel.
    https://msdn.microsoft.com/en-us/VBA...les/data-types

    Dans VBE, quand je tape Dim MaVariable As, je ne vois rien dans les proposition qui semble se rapprocher d'un nombre complexe.

    Plutôt que de passer par des variable, peut-être devrais-tu passer par des cellules.
    Salut,

    Voila comment j'ai déclarer mes vecteurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Dim epaisseur_mm(1 To 12) As Single, k As Integer
    Dim tg(1 To 12) As Single
    Dim eps(1 To 12) As Single
    Dim n(1 To 12) As Single
     
    For k = 1 To M
        epaisseur_mm(k) = CSng(Me.Controls("ep_c" & k).Value)
        tg(k) = CSng(Me.Controls("tg_c" & k).Value)
        eps(k) = CSng(Me.Controls("eps_c" & k).Value)
        n(k) = Sqr(eps(k))
    Next k
    J'obtiens bien mes vecteurs qui vont bien de 1 à 12, cependant pour faire un produit de complexe, je trouve la solution nulle part.

    Sur Matlab c'est très simple, il suffit de multiplier un vecteur par une expression de cette forme et hop terminé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    'x * (1 - 2i)
    X * (1-1j*2)
    Il doit surement y avoir une solution en langage VBA

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Sans emploi - Autonome
    Inscrit en
    Mars 2018
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sans emploi - Autonome

    Informations forums :
    Inscription : Mars 2018
    Messages : 130
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par joe.levrai Voir le message
    Complex ne renvoie pas réellement un nombre complexe, il renvoie un string affichant un nombre complexe.

    Tu peux utiliser au sein de la fonction Complex des opérations sur la partie imaginaire ou réelle, mais tu ne peux pas réutiliser le résultat de la fonction dans une nouvelle opération
    Est-il possible de stocker une valeurs complexe dans une variable et ensuite de la réutiliser afin d'effectuer un produit ?

    Je trouve pas de solution pour mon cas.

  8. #8
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Tu ne peux pas stocker des nombres complexes et les calculer depuis VBA

    En revanche, tu peux évaluer le produit de deux nombres complexes (et autres opérations) en utilisant la classe des fonctions Excel
    On ne part plus de deux nombres complexes déjà constitués, on part des 2 parties réelles et 2 parties imaginaires dissociées

    exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub toto()
    Dim Reel1 As Long, Reel2 As Long, Imaginaire1 As Long, Imaginaire2 As Long
    Reel1 = 1
    Imaginaire1 = 1
    Reel2 = 1
    Imaginaire2 = 1
                    ' SOMME de 1 + i et 1 + i  ===> donne 2 + 2i
    MsgBox Evaluate("IMSUM(COMPLEX(" & Reel1 & "," & Imaginaire1 & "),COMPLEX(" & Reel2 & "," & Imaginaire2 & "))")
     
                    ' PRODUIT de 1 + i et 1 + i  ===> donne 2i
    MsgBox Evaluate("IMPRODUCT(COMPLEX(" & Reel1 & "," & Imaginaire1 & "),COMPLEX(" & Reel2 & "," & Imaginaire2 & "))")
    End Sub

  9. #9
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par SpaceX Voir le message
    Voila comment j'ai déclarer mes vecteurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim eps(1 To 12) As Single
    Un Single est un entier. Par définition, il ne peut pas contenir un complexe.

    J'obtiens bien mes vecteurs qui vont bien de 1 à 12, cependant pour faire un produit de complexe, je trouve la solution nulle part.
    Dans mon message précédent, je t'ai donné une solution possible (à tester) : passer par des cellules Excel au lieu de passer par des variables.

    Sinon, puisque COMPLEXE renvoie un String, essaye de passer par des variables de type String.

    Sur Matlab c'est très simple, il suffit de multiplier un vecteur par une expression de cette forme et hop terminé :
    Et dans AutoCAD il est superfacile de connaitre l'intersection de deux droite alors que c'est compliqué dans Excel.
    Et dans Word on peut paramétré la distance entre paragraphes alors qu'on ne peut pas le faire dans Excel.
    A force de vouloir faire faire tout et n'importe quoi à Excel, on en oublie que chaque logiciel a son domaine propre et qu'Excel n'est pas un logiciel universel.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Sans emploi - Autonome
    Inscrit en
    Mars 2018
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sans emploi - Autonome

    Informations forums :
    Inscription : Mars 2018
    Messages : 130
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Dans mon message précédent, je t'ai donné une solution possible (à tester) : passer par des cellules Excel au lieu de passer par des variables.
    Faire mes produits de complexes sur une feuille Excel et ensuite les récupérer dans une variable ?

    Citation Envoyé par Menhir Voir le message
    Sinon, puisque COMPLEXE renvoie un String, essaye de passer par des variables de type String.
    Quel type pourrait contenir une valeurs Complex ?

  11. #11
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par SpaceX Voir le message
    Dans mon message précédent, je t'ai donné une solution possible (à tester) : passer par des cellules Excel au lieu de passer par des variables.
    Faire mes produits de complexes sur une feuille Excel et ensuite les récupérer dans une variable ?
    Je n'ai jamais conseillé de le récupérer dans une variable.
    Une variable est toujours un intermédiaire pour obtenir un résultat final qui n'a plus besoin de la variable.
    Ici, au lieu de prendre comme intermédiaire, tu utilises des cellules.

    Sinon, puisque COMPLEXE renvoie un String, essaye de passer par des variables de type String.
    Quel type pourrait contenir une valeurs Complex ?
    Euh... c'est une blague ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  12. #12
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Ma dernière proposition ne répond pas à ta problématique ?

    Certes, simple exemple, il est à adapter mais vu ta présentation initiale, il n'y a rien de bien compliqué

    Là où je me suis arrêté, c'est justement vis à vis de l'absence d'explication de la finalité de ces calculs, à quoi vont servir tes nombres complexes une fois en avoir fait le produit ??

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Sans emploi - Autonome
    Inscrit en
    Mars 2018
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sans emploi - Autonome

    Informations forums :
    Inscription : Mars 2018
    Messages : 130
    Points : 35
    Points
    35
    Par défaut
    Bonsoir,

    Merci à vous deux pour votre aide, mais honnêtement je suis un peu perdu car j'ai du mal a cerner ce que je souhaite faire et ce qui est possible de faire avec VBA ... peut être parce que je réfléchis trop façon Matlab. Pour résumer très brièvement, j'ai réalisé un code Matlab fonctionnel et j'ai souhaité le transposer sur une autre machine qui est Excel. Or, sur mon code Matlab j'utilise beaucoup de formules avec des complexes et dans ma démarche je suis parti du principe qu'il était possible d'effectuer le produit d'un vecteur et d'un nombre complexe mais apparement non et en plus de cela, il y'à aucun type de variable qui caractérise un complexe.

    Je pense que je vais devoir réaliser mes calculs complexe et vecteur sur une feuille excel et de les stocker par la suite dans une variable quelconque pour qu'elle soit réutilisable dans mon code programme.

    Citation Envoyé par joe.levrai Voir le message
    Ma dernière proposition ne répond pas à ta problématique ?

    Certes, simple exemple, il est à adapter mais vu ta présentation initiale, il n'y a rien de bien compliqué

    Là où je me suis arrêté, c'est justement vis à vis de l'absence d'explication de la finalité de ces calculs, à quoi vont servir tes nombres complexes une fois en avoir fait le produit ??
    Ces nombres complexes vont me servir à afficher une courbe en passant par une formule mathématique.

  14. #14
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Donne simplement un exemple, ça sera plus parlant

    Deux nombres complexes : ce que tu en fais
    Un vecteur : il contient quoi
    Et ensuite, tu fais quoi

    juste de la description écrite

    1+2i
    4-i
    {Nombre1;Nombre2....}
    Je prend X et je le multiplie par Y, pour obtenir ensuite Z

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Sans emploi - Autonome
    Inscrit en
    Mars 2018
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sans emploi - Autonome

    Informations forums :
    Inscription : Mars 2018
    Messages : 130
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par joe.levrai Voir le message
    Donne simplement un exemple, ça sera plus parlant

    Deux nombres complexes : ce que tu en fais
    Un vecteur : il contient quoi
    Et ensuite, tu fais quoi

    juste de la description écrite

    1+2i
    4-i
    {Nombre1;Nombre2....}
    Je prend X et je le multiplie par Y, pour obtenir ensuite Z
    Je vais essayer d'être direct sans rentrer dans les détails sinon je vais me perdre.

    Voici un exemple de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim tg(1 To 12) As Single
     
    For k = 1 To M
        tg(k) = CSng(Me.Controls("tg_c" & k).Value)
    Next k
    J'aimerai dans un premier temps transformer tg_cplx(k) en complexe, est-ce que c'est possible sachant que de base la variable tg(k) est de type Single ?

    tg_cplx(k) = (1 - i * tg(k) )

  16. #16
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Ce "premier temps" est simple s'il est pris isolément, mais va aboutir à un "nombre" complexe sous forme de String, sur lequel tu ne pourras plus effectuer de calcul sans passer par une feuille tremplin sur Excel

    D'où la nécessité de donner la suite de ce raisonnement, afin de connaître l'ensemble des opérations intermédiaires à traiter

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    Sans emploi - Autonome
    Inscrit en
    Mars 2018
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sans emploi - Autonome

    Informations forums :
    Inscription : Mars 2018
    Messages : 130
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par joe.levrai Voir le message
    Ce "premier temps" est simple s'il est pris isolément, mais va aboutir à un "nombre" complexe sous forme de String, sur lequel tu ne pourras plus effectuer de calcul sans passer par une feuille tremplin sur Excel

    D'où la nécessité de donner la suite de ce raisonnement, afin de connaître l'ensemble des opérations intermédiaires à traiter
    Une fois la variable complexe sous forme de String terminé, je réalise la racine carré de cette dernière pour obtenir le module.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim epaisseur_mm(1 To 12) As Single, k As Integer
    Dim tg(1 To 12) As Single
    Dim eps(1 To 12) As Single
    Dim n(1 To 12) As Single
     
    For k = 1 To M
        epaisseur_mm(k) = CSng(Me.Controls("ep_c" & k).Value)
        tg(k) = CSng(Me.Controls("tg_c" & k).Value)
        eps(k) = CSng(Me.Controls("eps_c" & k).Value) 
        n(k) = Sqr(eps(k)) 'On effectue la racine carré de esp
    Next k

  18. #18
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    avec des coefficients entiers, c'est réalisable sans trop de soucis, ton module aurait été calculé par la fonction COMPLEXE.MODULE(LeNombreComplexe) et l'aurait renvoyé sous forme de String

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub toto()
    Dim Reel1 As Single, Imaginaire1 As Single
    Reel1 = 1
    Imaginaire1 = 1
     
                    ' MODULE de 1+i
    MsgBox Evaluate("IMABS(COMPLEX(" & Reel1 & "," & Imaginaire1 & "))")
     
    End Sub
    Mais les fonctions sur nombres complexes n'acceptent pas les nombres décimaux pour coefficients.

    Il faudrait donc décomposer le traitement et le faire manuellement, c'est à dire stocker la partie réelle et la partie imaginaire (sans tenir compte de i), additionner leurs carrés et en faire la Racine

    Si tu pars du postulat tg_cplx(k) = (1 - i * tg(k) ), alors tu peux construire une fonction personnalisée avec en premier paramètre la partie réelle, et en second la partie imaginaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub toto()
    Dim Reel As Single, Imaginaire As Single
    Reel = 1.4
    Imaginaire = 1.2
        MsgBox ModuleComplexe(Reel, Imaginaire)
    End Sub
     
    Function ModuleComplexe(Reel As Single, Imaginaire As Single) As String
        ModuleComplexe = Sqr(Reel ^ 2 + Imaginaire ^ 2)
    End Function
    Il te suffit donc de toujours partir de Reel = 1, et d'utiliser ta partie imaginaire, qui est Esp(k) ou Tg(k) (je m'y perd à force)

  19. #19
    Nouveau membre du Club
    Homme Profil pro
    Sans emploi - Autonome
    Inscrit en
    Mars 2018
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sans emploi - Autonome

    Informations forums :
    Inscription : Mars 2018
    Messages : 130
    Points : 35
    Points
    35
    Par défaut
    Salut

    Ok, je vais essayer ta méthode en dissociant la partie réel et imaginaire.

    Tout d'abord je crée la fonction qui réalise a + ib avec une a = Reel et b = Imag

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function CMPLX(Reel As Single, Imag As Single) As Single
        CMPLX = (Reel + Imag)
    End Function
    Ensuite dans mon programme :

    Dim eps_cplx(1 To 12) As Single

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    For k = 1 To M
        epaisseur_mm(k) = CSng(Me.Controls("ep_c" & k).Value)
        tg(k) = CSng(Me.Controls("tg_c" & k).Value)
        eps(k) = CSng(Me.Controls("eps_c" & k).Value)
        n(k) = Sqr(eps(k))
        Reel = 1
        Imag = tg(k)
        eps_cplx(k) = CMPLX(Reel,Imag)
    Next k
    Le seul hic c'est que ma partie imaginaire est un tableau (1 To 12) et ma partie réel toujours une constante, je ne peux pas faire l'addition.

  20. #20
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Il faut faire une boucle dans ton tableau, de 1 à 12

    dans cette boucle, tu récupères le module de chaque couple Reel (constante) et Imaginaire (tg(k)) que tu peux restocker dans un nouveau tableau de String

Discussions similaires

  1. Multiplication d'une matrice avec un vecteur
    Par picolot dans le forum VB.NET
    Réponses: 0
    Dernier message: 14/02/2010, 22h02
  2. problème avec un vecteur
    Par Mathieu.J dans le forum C++
    Réponses: 9
    Dernier message: 30/10/2005, 22h53
  3. [SQL] Requête complexe avec appel multiple à la même table
    Par Julien Dufour dans le forum Langage SQL
    Réponses: 9
    Dernier message: 14/04/2005, 14h12
  4. Requete un peu complexe avec la fonction IN
    Par Taichin dans le forum Oracle
    Réponses: 27
    Dernier message: 10/11/2004, 08h59
  5. [Swing]remplissage d'un JTable avec les vecteur
    Par 3adoula dans le forum Composants
    Réponses: 7
    Dernier message: 15/06/2004, 16h09

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