artituro
Messages postés3Date d'inscriptionlundi 9 mai 2011StatutMembreDernière intervention11 mai 2011
-
9 mai 2011 à 21:56
NHenry
Messages postés15102Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention27 mars 2024
-
10 mai 2011 à 09:26
Bonjour a tous,
Je suis actuellement en train de coder un programme et je bloque sur un problème.
En faite je pars d'un tableau(n,3) avec sur la première colonne le numéro de la tache, sur la seconde sa durée et sur la troisième qu'elle tache la précédé.
(par exemple: (1;2;3;4;5;6), (10;20;30;35;20;40), (.;.;2;1;3,4,5;.) les "." signifiant une case vide)
Ce que j'aimerais faire c'est un ptit programme TD() qui face les 2 actions suivantes:
. Premièrement trier les taches par ordre de croissance de durée ( pour l'exemple ca donne :1,2,5,3,4,6.
. Deuxièmement j'aimerais que le programme prenne en compte les précédences ainsi que les taches déjà effectuées pour a tout moment trouver quels sont les taches disponibles.
Je m'explique, une tache est dites disponible quand on peut lancer son exécution, c'est a dire, sois quand elle n'a pas de tache qui la précède (pas de précédences) sois quand la ou les taches qui la précédent sont déjà exécutée.
Si on prend l'exemple on a à la première utilisation de TD() on a ce résultat: 1,2,6.
Si on exécute la tache numéro une et que l'on relance TD() on a: 2,3,6, et ainsi de suite.
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 9 mai 2011 à 22:44
Salut
pas trop compris
tableau(n,3) n= ?
la premiere colonne le numéro de la tache
(par exemple: (1;2;3;4;5;6), (10;20;30;35;20;40), (.;.;2;1;3,4,5;.) les "." signifiant une case vide)
1 2 3 4 5 6 ce sont les numéro de tache ?
10 20 le temps
par ex 1 - 10 milli
4 -35 milli
1 aucune l'a précedé
2 pareil
3 tache n2 l'a precedé
NHenry
Messages postés15102Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention27 mars 2024159 9 mai 2011 à 22:51
Bonjour,
Question bête, pourquoi tu n'utilises pas une structure ou une classe pour gérer les 3 colonnes ?
Comme ça, tu aura un tableau unidimensionnel contenant toutes tes taches avec chacune leurs propriétés.
si en plus, tu utilises des classes, ces taches pourront "s'autogérées" et faire les liens entre elles avec un minimum de code.
artituro
Messages postés3Date d'inscriptionlundi 9 mai 2011StatutMembreDernière intervention11 mai 2011 9 mai 2011 à 23:24
Merci pour les répons,
n est le nombre de taches, et en effet quand il y a un point ca veut dire qu'il n'y a pas de précédence.
don la tache 1 dure 10s et na pas de précédence alors que la tache 4 dure 35s et peut être lancé quand la n°1 est fini.
En faite je déroule un algorithme sous forme d'un boucle (qui se répéterais n fois) et a chaque n je cherche a trouver les nouvelles taches disponibles TDn.
Il faut donc que je face appelle a ma fonction TD() et que conserve les données soit dans un tableau dynamique sois sur une nouvelle feuille de calcule.
ca donnerais TD1=(1;2;6), TD2=(2;3;6), TD3=(3;4;6), TD4=(3;6), ....
Pour ce qui est des structure ou classe je n'y ai pas pensé, si tu a un petit tuto sur le sujet et comment les gérer en VBA ca serait sympa.
NHenry
Messages postés15102Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention27 mars 2024159 10 mai 2011 à 09:26
Bonjour,
"Accueil > Forum > VB.NET et VB 2005 > Algorithme > Divers > Extraction et tri de données "
"comment les gérer en VBA"
Comme quoi le classement de la question a une grande importance ...
Regardes l'aide sur le mot clé "Type" ou sur les modules de classe.
Tu y trouvera tout ce que tu cherches.