le 07-10-2014 05:50 AM
Bonjour à tous,
Mon besoin ne semble pas très compliqué mais je ne sais pas comment m'y prendre...
A chaque tour de boucle, le programme reçoit un tableau de double dans lequel de nouvelles valeurs sont ajoutées au début (les dernières valeurs sont écrasées).
Le but est de savoir combien de nouvelles valeurs ont été ajoutées. Dans l'exemple ci-joint, le résultat serait "2" car le tableau s'est décalé de deux lignes.
Avez-vous une idée simple pour réaliser cette action ?
Merci d'avance,
Thibaud.
Résolu ! Accéder à la solution.
le 07-10-2014 09:25 AM
Bonjour,
une implémentation possible est de comparer les deux tableaux via la fonction = en mode "aggregate" (clic droit sur le noeud =, Comparaison mode -> Aggregate). Si les deux tableaux ne sont pas égaux, supprimer le premier élément du tableau "après" et le dernier du tableau avant et recommencer.
Lorsque els deux tableaux sont égaux, le nombre d'execution de l'algorythme peut renseigner l'offset.
Le diagramme ressemblerait à cela:
Il y a peut être d'autres implémentations plus efficace (celle la demande quand même pas mal de ressource processeur, mais elle fonctionne)
Cordialement
le 07-10-2014 01:35 PM
autre code ... mais algorithme identique à celui de Naity
Pour l'algo, je n'ai pas trouvé mieux.
Je ne "vois" pas de façon "super simple" de résoudre ce type de problème.
C'est un problème "intéressant".
si quelqu'un à un algo "plus simple" ... je serais intéressé.
le 07-11-2014 12:50 AM
Merci à tous les deux pour votre réponse, votre méthode est la bonne !
le 07-11-2014 01:51 AM
La solution est la seule "propriété de Naity
Pour ma part, j'ai uniquement changé la forme (et encore ... pas énormément)
en fait ... j'ai cherché 20'... et je n'ai pas trouvé mieux.
le 07-11-2014 03:10 AM
je n'ai pas trouvé mieux.
salut à tous, idem, pas mieux.
Mais une remarque, si le tableau a des nouveaux éléments, alors la fonction qui "ajoute" les nouveaux éléments dans le tableau doit connaître le nombre d'éléments ajouté. Non?
A+ à tous
Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion
MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group
le 07-11-2014 03:16 AM
Oui mais la fonction qui "ajoute" les nouveaux éléments n'est pas forcement au même endroit (par exemple dans une DLL)
le 07-11-2014 03:44 AM
bein ...
faut prévoir dans la DLL de "sortir" en paramètre le nombre d'élément ajouté.
ceci dit ... si c'est un x.dll venu d'ailleurs et sans la source .... c'est un cul de sac.
le 07-11-2014 04:50 AM
TMDN a écrit :
Oui mais la fonction qui "ajoute" les nouveaux éléments n'est pas forcement au même endroit (par exemple dans une DLL)
idem, faut prévoir dans la DLL de "sortir" en paramètre le nombre d'élément ajouté
Ma remarque se base sur :
Option1
> en entrée un tableau [1 ; 1 ; 1 ; 1 ; 1]
> la fonction "inconnue" ajoute 1, le tableau devient [1 ; 1 ; 1 ; 1 ; 1]
> Quid de la réponse? le tableau n'a pas changé?
Option2
> en entrée un tableau [1 ; 2 ; 1 ; 2 ; 1 ; 2]
> la fonction "inconnue" ajoute [1 ; 2], le tableau devient [1 ; 2 ; 1 ; 2 ; 1 ; 2]
> Quid de la réponse? le tableau n'a pas changé?
Option3
> en entrée un tableau [1 ; 2 ; 3 ; 4 ; 5 ; 6]
> la fonction "inconnue" ajoute [1 ; 2 ; 3 ; 4 ; 5 ; 6], le tableau devient [1 ; 2 ; 3 ; 4 ; 5 ; 6]
> Quid de la réponse? le tableau n'a pas changé?
si X = X alors pas de nouvelle valeur? le résultat n'est pas l'opération. Si la fonction doit savoir si nouvelle opération....
De plus le problème peut être très "consommateur" de ressource CPU. Par exemple si une carte d'acquisition retourne toutes les secondes, le tableau des mesures, avec un scan rate de 100 MHz. Il est plus simple de connaître le nombre de points mesurés, que de tenter de le deduire.
Non?
Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion
MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group
07-11-2014 05:49 AM - modifié 07-11-2014 05:51 AM
Non? ... y'a pas photo.
Option 1, Option 2, Option 3, Option n ....
pour trouver des "options" qui foute la m**** .... t'es un champion Luc (je taquine bien entendu )
Dans un programme, les bugs sont à 99% provoqués par les "limites" (les bords, les valeurs "extrèmes")
(Bonjour Lu c ... il n'arrête pas de pleuvoir aussi chez toi ?)