Aide en VB
VincentG
Messages postés
49
Statut
Membre
-
ShaBoo Messages postés 406 Statut Membre -
ShaBoo Messages postés 406 Statut Membre -
Bonjour,
J'ai un petit programme (scolaire) à faire en VB, mais je ne vois pas comment le faire.
voila l'énoncé :
Soit S une suite de nombre entiers positifs ordonnés par ordre croissant. Ecrire un algorithme permettant de déterminer la longueur L de la plus longue sous-suite extraite de S et ne comportant que des éléments identiques.
Exemple : pour S= (1, 2, 2, 7, 7,7 ,8 ,9 ,9) on a L=3
Si quelqu'un avait une piste pour m'aider, je ne sais même pas quelle fonction itérative utiliser.
Merci
J'ai un petit programme (scolaire) à faire en VB, mais je ne vois pas comment le faire.
voila l'énoncé :
Soit S une suite de nombre entiers positifs ordonnés par ordre croissant. Ecrire un algorithme permettant de déterminer la longueur L de la plus longue sous-suite extraite de S et ne comportant que des éléments identiques.
Exemple : pour S= (1, 2, 2, 7, 7,7 ,8 ,9 ,9) on a L=3
Si quelqu'un avait une piste pour m'aider, je ne sais même pas quelle fonction itérative utiliser.
Merci
A voir également:
- Aide en VB
- Vb - Télécharger - Langages
- Vb audio cable - Télécharger - Audio & Musique
- Vb editor - Télécharger - Langages
- Vb runtime - Télécharger - Divers Utilitaires
- Vb express - Télécharger - Langages
11 réponses
je te conceil pour ton probleme scolaire de faire comme suit
utiliser des boucles itératives comme tantque .............faire
increment tant que tu as des valeurs identiques et superieur
sortir de la premiere boucle
l'idee ici si tu utilise un tableau ce prserver les compteurs pour pouvoir afficher la séquences la plus longue
refaire le travail en incrementant de +1 ton compteur avec la boucle repeter...........jusqu'à la fin tu tableau
à la sortie de traitement tu doit avoir un compteur de depart pour la séquence et un compteur d'arriver
***************************
bon travail
la programmation à besion de pertinnece et ne baisse pas les mains à toi de programmmer tous ca
utiliser des boucles itératives comme tantque .............faire
increment tant que tu as des valeurs identiques et superieur
sortir de la premiere boucle
l'idee ici si tu utilise un tableau ce prserver les compteurs pour pouvoir afficher la séquences la plus longue
refaire le travail en incrementant de +1 ton compteur avec la boucle repeter...........jusqu'à la fin tu tableau
à la sortie de traitement tu doit avoir un compteur de depart pour la séquence et un compteur d'arriver
***************************
bon travail
la programmation à besion de pertinnece et ne baisse pas les mains à toi de programmmer tous ca
Bonsoir,
Tu lis ta premiere occurence et tu la compare aux autres. Tu comptes le nbre de fois ou c'est égale.
Tu passes à la seconde occurence tu la compares (tu evites de la comparer à ellle meme bien sur ;p) tu comptes le nbre de fois.
En utilsant deux variable (dernier comptage - nouveau comptage) tu les compares pour savoir si l'une est superieur à l'autre ...
Tu fais ceci jusqu'à la dernière occurence ...
Tu lis ta premiere occurence et tu la compare aux autres. Tu comptes le nbre de fois ou c'est égale.
Tu passes à la seconde occurence tu la compares (tu evites de la comparer à ellle meme bien sur ;p) tu comptes le nbre de fois.
En utilsant deux variable (dernier comptage - nouveau comptage) tu les compares pour savoir si l'une est superieur à l'autre ...
Tu fais ceci jusqu'à la dernière occurence ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Sérieux, j'ai du mal.
en langage progress, j'y arrive mieux... mais là
je m'accroche quand meme mais je bloque à "Tu lis ta premiere occurence et tu la compare aux autres" (au début quoi lol) en effet, j'ai du mal à voir comment comparer la 1ere aux autres car "les autres" ne sont pas encore saisies
je ne sais pas si j'ai réussi à m'expliquer...
en langage progress, j'y arrive mieux... mais là
je m'accroche quand meme mais je bloque à "Tu lis ta premiere occurence et tu la compare aux autres" (au début quoi lol) en effet, j'ai du mal à voir comment comparer la 1ere aux autres car "les autres" ne sont pas encore saisies
je ne sais pas si j'ai réussi à m'expliquer...
j'ai pourtant bien essayé de suivre ce que tu m'as dis entre 2 réveils de ma fille :) mais les résultats que j'ai sont incorrects.
voici le programme
Const N = 10
Dim tab(N) As Integer
Dim i As Integer
Dim X As Integer
Dim J As Integer
Dim St As Integer
Sub Main()
For i = 1 To N
tab(i) = InputBox("Nombre ?")
Next
For i = 1 To UBound(tab, 1)
For J = i + 1 To UBound(tab, 1)
If tab(i) > tab(J) Then
St = tab(i)
tab(i) = tab(J)
tab(J) = St
End If
Next
Next
X = 0
For i = 0 To N
For J = 0 To N
If tab(i) = tab(J) Then
X = X + 1
End If
Next
Next
MsgBox(X)
End Sub
voici le programme
Const N = 10
Dim tab(N) As Integer
Dim i As Integer
Dim X As Integer
Dim J As Integer
Dim St As Integer
Sub Main()
For i = 1 To N
tab(i) = InputBox("Nombre ?")
Next
For i = 1 To UBound(tab, 1)
For J = i + 1 To UBound(tab, 1)
If tab(i) > tab(J) Then
St = tab(i)
tab(i) = tab(J)
tab(J) = St
End If
Next
Next
X = 0
For i = 0 To N
For J = 0 To N
If tab(i) = tab(J) Then
X = X + 1
End If
Next
Next
MsgBox(X)
End Sub
Const N = 10
Dim tab(N) As Integer
Dim i As Integer
Dim X As Integer
Dim J As Integer
Dim St As Integer
Sub Main()
For i = 1 To N
tab(i) = InputBox("Nombre ?")
Next
For i = 1 To UBound(tab, 1)
For J = i + 1 To UBound(tab, 1)
If tab(i) > tab(J) Then
St = tab(i)
tab(i) = tab(J)
tab(J) = St
End If
Next
Next
X = 0
For i = 0 To N
For J = 0 To N
If tab(i) = tab(J) Then
X = X + 1
End If
Next
Next
MsgBox(X)
End Sub
c'est peut etre plus clair comme ça
Je ne comprend pas cette partie :
Par contre je suis d'accord avec celle ci :
Et ton msgbox affiche le nombre de fois ou tt tes chiffres on été egaux ...
For i = 1 To UBound(tab, 1)
For J = i + 1 To UBound(tab, 1)
If tab(i) > tab(J) Then
St = tab(i)
tab(i) = tab(J)
tab(J) = St
End If
Next
Next
Par contre je suis d'accord avec celle ci :
X = 0
For i = 0 To N
For J = 0 To N
If tab(i) = tab(J) Then
X = X + 1
End If
Next
Next
Et ton msgbox affiche le nombre de fois ou tt tes chiffres on été egaux ...
For i = 1 To UBound(tab, 1)
For J = i + 1 To UBound(tab, 1)
If tab(i) > tab(J) Then
St = tab(i)
tab(i) = tab(J)
tab(J) = St
End If
Next
Next
cette partie est un code qui me permet de trier mes données dans un ordre croissant
mais si tu fais un essai, par exemple, tu rentre que des "1", le résultat est de 101 :S
Oupsss ...
Pas besoin de tri dans ton cas :
Tu peux aussi essayer en utilisant d'autres types de boucles : While, Until, Loop ...
Pas besoin de tri dans ton cas :
Dim iCpt1 As Integer
Dim iCpt2 As Integer
Dim iVal As Integer
Dim iNbOld As Integer
Dim iNbNew As Integer
Dim aTab
iCpt1 = 0
iCpt2 = 0
iNbNew = 0
iNbOld = 0
aTab = Array(1, 2, 2, 7, 7, 7, 8, 9, 9)
For iCpt1 = 0 To UBound(aTab)
For iCpt2 = 0 To UBound(aTab)
If aTab(iCpt1) = aTab(iCpt2) Then
iNbNew = iNbNew + 1
End If
Next iCpt2
If iNbNew > iNbOld Then
iNbOld = iNbNew
iVal = aTab(iCpt1)
End If
iNbNew = 0
Next iCpt1
MsgBox "And the winner issss ... le " & iVal & " compté " & iNbOld & " fois."
Tu peux aussi essayer en utilisant d'autres types de boucles : While, Until, Loop ...