Extraction et tri de données

Signaler
Messages postés
3
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
11 mai 2011
-
Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
-
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.

merci pour votre aide!

4 réponses

Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
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é

c'est ça ou je suis à coté

c'est quoi TD tres difficile
Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
151
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.

Mon site
Messages postés
3
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
11 mai 2011

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.

merci d'avance
Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
151
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.

Mon site