Bonjour je suis à la recherche d'un algorithme de lecture en zigzag d'une matrice (comme pour la compression jpeg) pourriez-vous m'aider s'il-vous-plaît?? merci
Bonjour je suis à la recherche d'un algorithme de lecture en zigzag d'une matrice (comme pour la compression jpeg) pourriez-vous m'aider s'il-vous-plaît?? merci
comment çà en zigzag
colonne après colonne ??
ligne aprèes ligne ??
Bon vite fais à main levée voici le code pour le parcours de la matrice triangulaire supérieur, il ne doit pas manquer grand chose pour le parcours de la partie inférieur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 int i,j,n=8; for(i=0;i<n;i++) { if(i%2) { for(j=0;j<=i;j++) { int a,b; a = j; b = i-j; printf("(%d, %d) ",a,b); } } else { for(j=i;j>=0;j--) { int a,b; a = j; b = i-j; printf("(%d, %d) ",a,b); } } printf("\n"); }
Voilà un bout de code qui marche très bien
tu n'as plus qu'a paramétré la taille de ta matrice et créer la fonction ou remplacer lafonction AfficherTableau en fonction dde ce que tu veux en faire
Faut aussi que tu initialsies ton tableau
Ci-joint, le fichier Excel avec lequel j'ai fait mes test,tu constateras que ca fonctionne
Tun'as qu'à modifier le nombre de lignes e colonnes aue tu veux parourir et tu cliques sur le bouton
Tu verras des msgbox apparaitre a chaque lecture des cases et il te restera à constater que tout passe bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 Sub a() Dim i As Integer Dim j As Integer i = 0 j = 0 Dim maxI As Integer Dim maxJ As Integer maxI = 5 maxJ = 5 Dim tableau(0 to maxI ,0 to maxJ ) as String Dim croiss As Boolean croiss = False While i <= maxI And j <= maxJ AfficherValeur(tableau(i,j)) If (i = 0 Or i = maxI) Then If (j = maxJ) Then j = j - 1 i = i + 1 End If j = j + 1 AfficherValeur(tableau(i,j)) Else If (j = 0 Or j = maxJ) Then If (i = maxI) Then i = i - 1 j = j + 1 End If i = i + 1 AfficherValeur(tableau(i,j)) End If End If If (i = 0 Or j = maxJ) Then croiss = False If (j = 0 Or i = maxI) Then croiss = True If (croiss) Then i = i - 1 j = j + 1 Else i = i + 1 j = j - 1 End If Wend End Sub
merci beaucoup en fait c'est pour une fonction codée sous matlab donc je vais me depatouiller avec ton code
merci encore
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager