Algorithme de Heap en VBA
Talkme
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'aimerais effectué l'algorithme de Heap dans VBA,
Voici le code que j'ai fais. Le problème est que lorsque je le lance, il n'effectue pas les n factorielles permutations et en plus de cela, il effectue les permutations dans une seule cellule du range
Merci pour votre aide
J'aimerais effectué l'algorithme de Heap dans VBA,
Voici le code que j'ai fais. Le problème est que lorsque je le lance, il n'effectue pas les n factorielles permutations et en plus de cela, il effectue les permutations dans une seule cellule du range
Public [/contents/446-fichier-sub Sub] AlgoHeap() Dim n As Integer n = 6 Dim i As Integer For i = 1 To n Range("Heap").Cells(i, 2) = Range("Affectations").Cells(i, 2) Next i i = 1 While i < n If Range("Heap").Cells(2, i) < i Then If i Mod 2 = 0 Then Call Swap(Range("A").Cells(1, 1), Range("A").Cells(i, 1)) Else Call Swap(Range("A").Cells(Range("Heap").Cells(i, 2), 1), Range("A").Cells(i, 1)) End If Range("Heap").Cells(i, 2) = Range("Heap").Cells(i, 2) + 1 i = 1 Else Range("Heap").Cells(i, 2) = Range("Affectations").Cells(i, 2) i = i + 1 End If Wend End Sub Public Function Swap(d As Integer, b As Integer) Dim temp As Integer temp = d d = b b = temp End Function
Merci pour votre aide
Configuration: Windows / Chrome 72.0.3626.109
A voir également:
- Algorithme vba
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Algorithme euromillion excel gratuit - Forum Algorithmes / Méthodes
- Algorithme ajout rapide snapchat - Forum Snapchat
- Ajout rapide snap - Forum Snapchat
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, quelle technique as-tu utilisé pour vérifier que ton code se comporte comme tu t'y attends?
il me semble que ta fonction swap ne fait rien d'utile. je pense que tu devrais y travailler avec des range, pas avec des integer.
exemple non testé:
il me semble que ta fonction swap ne fait rien d'utile. je pense que tu devrais y travailler avec des range, pas avec des integer.
exemple non testé:
private Function Swap(d As range, b As range) Dim temp As Integer temp = d d = b b = temp End Function