Dim debutbloc As Integer Dim flagdep As Boolean Liste.AddItem "150.0" '1.1 Liste.AddItem "170.5" 'l.2 Liste.AddItem "0.0" Liste.AddItem "0.0" Liste.AddItem "0.0" Liste.AddItem "195.0" 'l.6 Liste.AddItem "200.7" Liste.AddItem "210.0" 'l.8 Liste.AddItem "0.0" Liste.AddItem "0.0" Liste.AddItem "0.0" Liste.AddItem "275.5" 'l.12 Liste.AddItem "280.6" Liste.AddItem "282.4" Liste.AddItem "283.7" Liste.AddItem "0.0" Liste.AddItem "0.0" Liste.AddItem "0.0" Liste.AddItem "0.0" Liste.AddItem "291.4" Liste.AddItem "292.6" Liste.AddItem "293.9" debutbloc = 0 Do flagdep = False For i = debutbloc To Liste.ListCount - 1 ' on cherche tdep DoEvents If Val(Liste.List(i)) = 0 And i > 0 Then tdep = Liste.List(i - 1) Listcontrol.AddItem tdep flagdep = True td = i - 1 Exit For End If Next i ' on cherche tfin If flagdep = True Then ' si tdep trouvé on cherché tfin For j = i + 1 To Liste.ListCount - 1 DoEvents If Val(Liste.List(j)) <> 0 Then tfin = Liste.List(j) Listcontrol.AddItem tfin Listcontrol.AddItem " " tf = j Exit For End If Next j End If If flagdep = False Then Exit Do debutbloc = j + 1 If debutbloc > Liste.ListCount - 1 Then Exit Do Loop
Dim debutbloc As Integer Dim flagdep As Boolean Dim flagfin As Boolean Liste.AddItem "0.0" Liste.AddItem "0.0" Liste.AddItem "0.0" Liste.AddItem "150.0" '1.1 Liste.AddItem "170.5" 'l.2 Liste.AddItem "0.0" Liste.AddItem "0.0" Liste.AddItem "0.0" Liste.AddItem "195.0" 'l.6 Liste.AddItem "200.7" Liste.AddItem "210.0" 'l.8 Liste.AddItem "0.0" Liste.AddItem "0.0" Liste.AddItem "0.0" Liste.AddItem "275.5" 'l.12 Liste.AddItem "280.6" Liste.AddItem "282.4" Liste.AddItem "283.7" Liste.AddItem "0.0" Liste.AddItem "0.0" Liste.AddItem "0.0" Liste.AddItem "0.0" Liste.AddItem "291.4" Liste.AddItem "292.6" Liste.AddItem "293.9" Liste.AddItem "0.0" Liste.AddItem "0.0" debutbloc = 0 Do If Val(Liste.List(debutbloc)) <> 0 Then Exit Do debutbloc = debutbloc + 1 Loop Do flagdep = False For i = debutbloc To Liste.ListCount - 1 ' on cherche tdep DoEvents If Val(Liste.List(i)) = 0 And i > 0 Then tdep = Liste.List(i - 1) Listcontrol.AddItem tdep flagdep = True td = i - 1 Exit For End If Next i ' on cherche tfin If flagdep = True Then ' si tdep trouvé on cherché tfin flagfin = False For j = i + 1 To Liste.ListCount - 1 DoEvents If Val(Liste.List(j)) <> 0 Then tfin = Liste.List(j) flagfin = True Listcontrol.AddItem tfin Listcontrol.AddItem " " tf = j Exit For End If Next j End If If flagdep = False Then Exit Do debutbloc = j + 1 If debutbloc > Liste.ListCount - 1 Then Exit Do Loop If flagfin = False Then Listcontrol.RemoveItem Listcontrol.ListCount - 1
Dim u, v As Integer For u = 0 To Liste.lstb_tdep.ListCount - 1 For v = Liste.lstb_tdep.List(u) To Liste.lstb_tfin.List(u) - 1 Dim Nombre As Double Nombre = CDbl(Liste.Lstb_dist.List(v)) total = total + Nombre Next Liste.lstb_somme.AddItem total Next
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question'calcul des distances entre chaque point de la liste Dim ii, jj As Integer jj = Lstb_pts.ListCount - 2 For ii = 0 To jj distance = Sqr((Liste.Lstb_pts.List(ii, 0) - Liste.Lstb_pts.List(ii + 1, 0)) ^ 2 + (Liste.Lstb_pts.List(ii, 1) - Liste.Lstb_pts.List(ii + 1, 1)) ^ 2 + (Liste.Lstb_pts.List(ii, 2) - Liste.Lstb_pts.List(ii + 1, 2)) ^ 2) Lstb_dist.AddItem distance Next 'repère du temps précédent et suivant la liste de 0 // essayer de faire pour plusieurs séries de 0 Dim i, j As Integer For i = 0 To Liste.Lstb_pts.ListCount - 1 ' on cherche tdep If Liste.Lstb_pts.List(i, 3) = 0 And i > 0 Then tdep = Liste.Lstb_pts.List(i - 1, 3) td = i - 1 Exit For End If Next i ' on cherche tfin For j = i + 1 To Liste.Lstb_pts.ListCount - 1 If Liste.Lstb_pts.List(j, 3) <> 0 Then tfin = Liste.Lstb_pts.List(j, 3) tf = j Exit For End If Next j 'on fait la somme des distances de la liste distance // essayer de faire avec plusieurs séries de 0 Dim u As Integer For u = td To (tf - 1) Dim Nombre As Double Nombre = CDbl(Liste.Lstb_dist.List(u)) total = total + Nombre vitesse = total / (tfin - tdep) Next 'interpolation du temps et remplissage de la colonne t de la liste des points Dim uu, vv As Integer vv = Liste.Lstb_pts.ListCount - 1 For uu = 0 To vv If Liste.Lstb_pts.List(uu, 3) = 0 Then Liste.Lstb_pts.List(uu, 3) = Liste.Lstb_pts.List(uu - 1, 3) + Liste.Lstb_dist.List(uu - 1) / vitesse End If Next
dim distance as integer debutbloc = 0 Do flagdep = False For i = debutbloc To Liste.ListCount - 1 ' on cherche tdep DoEvents If Val(Liste.List(i)) = 0 And i > 0 Then tdep = Liste.List(i - 1) Listcontrol.AddItem tdep flagdep = True distance 0 ' on initialise distance 0 car on a trouvé tdep Exit For End If Next i ' on cherche tfin If flagdep = True Then ' si tdep trouvé on cherché tfin For j = i + 1 To Liste.ListCount - 1 DoEvents ' on additionne les distances au fur et à mesures distance = distance + CDbl(Liste.Lstb_dist.List(j)) If Val(Liste.List(j)) <> 0 Then tfin = Liste.List(j) Exit For End If Next j End If ' ici on calcule la vitesse If flagdep = False Then Exit Do debutbloc = j + 1 If debutbloc > Liste.ListCount - 1 Then Exit Do Loop
Dim i As Integer, j As Integer Dim debutbloc As Integer Dim flagdep As Boolean Dim flagfin As Boolean Dim distance As Single Dim vitesse() As Single Dim td() As Integer Dim tf() As Integer Dim temps As Single Dim temps1 As Single Dim temps2 As Single Dim valeur As String Dim indice As Integer ' pour le tableau des vitesses Liste.AddItem "130,0" Liste.AddItem "150,0" '1.1 Liste.AddItem "170,5" 'l.2 Liste.AddItem "0,0" Liste.AddItem "0,0" Liste.AddItem "0,0" Liste.AddItem "195,0" 'l.6 Liste.AddItem "200,7" Liste.AddItem "210,8" 'l.8 Liste.AddItem "0,0" Liste.AddItem "0,0" Liste.AddItem "0,0" Liste.AddItem "275,5" 'l.12 Liste.AddItem "280,6" Listdistance.AddItem "10" Listdistance.AddItem "15.5" Listdistance.AddItem "19" Listdistance.AddItem "22" Listdistance.AddItem "18" Listdistance.AddItem "12" Listdistance.AddItem "19" Listdistance.AddItem "11.5" Listdistance.AddItem "15" Listdistance.AddItem "20" Listdistance.AddItem "26" Listdistance.AddItem "14" Listdistance.AddItem "22" debutbloc = 0 ReDim vitesse(0) ReDim td(0) ReDim tf(0) indice = 0 Do flagdep = False distance = 0 For i = debutbloc To Liste.ListCount - 1 ' on cherche tdep DoEvents If Val(Liste.List(i)) = 0 And i > 0 Then tdep = Liste.List(i - 1) distance = distance + Val(Listdistance.List(i - 1)) ' on ajoute la première distance flagdep = True td(indice) = i - 1 Exit For End If Next i ' on cherche tfin If flagdep = True Then ' si tdep trouvé on cherché tfin flagfin = False For j = i + 1 To Liste.ListCount - 1 distance = distance + Val(Listdistance.List(j - 1)) ' on rajoute les suivantes DoEvents If Val(Liste.List(j)) <> 0 Then tfin = Liste.List(j) flagfin = True tf(indice) = j Exit For End If Next j End If If flagdep = False Then Exit Do ' on calcule la vitesse temps = CSng(Liste.List(tf(indice))) - CSng(Liste.List(td(indice))) vitesse(indice) = distance / temps Listvitesse.AddItem Str$(vitesse(indice)) indice = indice + 1 ReDim Preserve vitesse(0 To indice) ReDim Preserve td(0 To indice) ReDim Preserve tf(0 To indice) debutbloc = j + 1 If debutbloc > Liste.ListCount - 1 Then Exit Do Loop ReDim Preserve vitesse(0 To indice - 1) ReDim Preserve td(0 To indice - 1) ReDim Preserve tf(0 To indice - 1) For i = 0 To UBound(vitesse) For j = td(i) + 1 To tf(i) temps1 = CSng(Liste.List(j - 1)) temps2 = CSng(Listdistance.List(j - 1)) / vitesse(i) temps = temps1 + temps2 valeur = Format$(temps, "#0.00") Liste.List(j) = LTrim$(Replace(valeur$, ".", ",")) Liste.Refresh Next j Next i
For i = 0 To UBound(vitesse) For j = td(i) + 1 To tf(i) temps1 = CSng(Liste.List(j - 1)) temps2 = CSng(Listdistance.List(j - 1)) / vitesse(i) temps = temps1 + temps2 Liste.List(j) = Replace(valeur$, ".", ",") Next j Next i
For i = 0 To UBound(vitesse) For j = td(i) + 1 To tf(i) temps1 = CSng(Liste.List(j - 1)) temps2 = CSng(listdistance.List(j - 1)) / vitesse(i) temps = temps1 + temps2 Liste.List(j) = Replace(temps, ".", ",") Next j Next i
For i = 0 To UBound(vitesse) For j = td(i) + 1 To tf(i) -1 ' <-- Code modifié (on laisse tfin identique) temps1 = CSng(Liste.List(j - 1)) temps2 = CSng(listdistance.List(j - 1)) / vitesse(i) temps = temps1 + temps2 Liste.List(j) = Replace(temps, ".", ",") Next j Next i