Aide en VB
VincentG
Messages postés
49
Date d'inscription
Statut
Membre
Dernière intervention
-
ShaBoo Messages postés 392 Date d'inscription Statut Membre Dernière intervention -
ShaBoo Messages postés 392 Date d'inscription Statut Membre Dernière intervention -
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 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...
ton lien m' ammene en bas de page :(
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 ...