Bonjour
pour se distraire un peu , il s'agirait d'écrire un algorithme permettant de connaitre le nombre de paquets de chiffres consécutifs dans une chaine numérique quelconque ainsi que le nombre de chiffres qui se suivent par paquet. pour exemple si je prend la chaine suivante : "1239734045673", ici j'ai 3 paquets qui sont (123) (34) et (4567) et j'ai donc trois paquets de valeur 3 , 2 et 4
pour l'exercice on prendra "0356823411678923"
Par exemple:
def get_paquets(s):
paquets = []
current_paquet = [int(s[0])]
for c in s[1:]:
c = int(c)
if c == current_paquet[-1] + 1:
current_paquet.append(c)
else:
paquets.append(current_paquet)
current_paquet = [c]
paquets.append(current_paquet)
return paquets
>>> get_paquets("0356823411678923")
[[0], [3], [5, 6], [8], [2, 3, 4], [1], [1], [6, 7, 8, 9], [2, 3]]
Bonjour
ty59847
effectivement la séparation entre le 3 et le 6 n'apparait pas, je vais essayer d'y remédier
Bonjour,
Si on veut garder les indentations (indispensables pour un code python), il faut utiliser le bouton "code" de la fenêtre d'édition, qui se présente ainsi : </>
salut
avec vba :
Sub analyse()
Dim n As Integer
Dim w As String
w = ""
x = "0356823411678923"
For i = 1 To Len(x) - 1
ecart = ecart & Abs(Val(Mid(x, i + 1, 1)) - Val(Mid(x, i, 1)))
Next
MsgBox ecart
i = 1
While i <= Len(ecart)
While Val(Mid(ecart, i, 1)) = 1
i = i + 1
n = n + 1
Wend
If n <> 0 Then
w = w & " " & n + 1
paquets = paquets + 1
End If
n = 0
i = i + 1
Wend
MsgBox w & Chr(10) & paquets & " paquets" ' retourne 2 4 3 2 et 4 paquets
End Sub
>flight
Mon bidule ne fonctionne bien que si il y a une rupture entre les paquets....
Je vais améliorer .
Je regrette de n'avoir jamais programmé.....
Salut dpi, comme tu es utilisateur d excel tu peux justement programmer dans cet environnement avec vba (ça peut rendre pas mal de services)
Bonjour flight,
J'y suis arrivé en intercalant des mini-colonnes disponibles pour " ou ,ou / ....
Je ne vois pas ce qu'est vba ?
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :