05-06-2015 10:16 AM
Bonjour,
J'ai créé un programme qui génère des nombres dit fortement probablement premiers : ce sont des entiers qui sont presque tout le temps premiers : je souhaiterai conserver uniquement ceux qui ne sont pas premiers (on dit qu'ils sont pseudo-premiers-forts).
Voici la partie de programme qui est censée supprimer ces nombres premiers de mon tableau 2D d'entiers :
Comme vous pourrez le constater en exécutant le programme en pièce jointe, je dispose d'un sous VI qui est une fonction booléenne qui renvoie vrai si un nombre est premier, et faux sinon ("Nb premier" sur le diagramme). Je ne comprend pas pourquoi cette partie de code n'a aucun effet. La première colonne de mon tableau est constituée d'entiers (ce que j'appelle la "base").
J'ajoute les deux sous-programmes que j'utilise en pièces jointes, au cas où (mais je n'ai pas de problème avec eux).
Pourriez-vous m'indiquer une méthode sûre pour supprimer des nombres premiers d'un tableu d'entiers 2D ?
Je vous en remercie vivement par avance !
Solved! Go to Solution.
05-07-2015 01:16 AM
Deux remarques sans avoir pris le temps de regarder votre code en détail :
Je vous laisse réfléchir à la manière de corriger votre code.
PS : Le sous-VI vérifiant la primauté du nombre comporte une séquence empilée et des variables locales inutiles et rendant la lecture du code plus difficile.
05-07-2015 12:00 PM
Bonsoir JB.
Je vous remercie pour vos conseils : ils m'ont permis de résoudre mon problème (le tableau se calcule en quelques secondes).
J'ai simplement dû changer un noeud "supprimer un élément d'un tableau" par un noeud "remplacer un élément d'un tableau" (par la valeur 0 qui convenait bien) afin de tenir compte de votre remarque N°2, et pour supprimer les zéros de mon tableau, j'ai utilisé un vi que j'ai trouvé sur le site de NI : 2D Array Search & Delete.vi : je l'ai très légèrement modifié en supprimant la temporistaion de 5 ms afin que le calcul soit plus rapide.
Même si ce n'est pas parfait, je met à disposition des autres utilisateurs ce travail sous la forme des deux programmes en pièces jointes.
Quant à mon programme, je vais en faire un exécutable (pour présenter mes résultats).
Cordialement, Thomas