cs_cloclo23
Messages postés4Date d'inscriptionjeudi 26 février 2004StatutMembreDernière intervention27 avril 2005
-
7 mars 2005 à 13:23
jsem2k1
Messages postés125Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention12 août 2008
-
9 mars 2005 à 07:29
Bonjour à tous
J'ai une textbox qui reçoit un nom qui doit être saisi en minuscule(a cause des possibilitées de saisi des :à,î,ï,ê,ë...) et je veux récupérer séparement la somme des voyelles et des consonnes se ramenant à un chiffre compris entre 1 et 9 dans 2 labels différents et dans un troisiéme label le nombre à 2 chiffres de la somme du résultat des voyelles et des consonnes si ce dernier est égal à par exemple 13,15,22,33,46,52.
exemple:
arilmodiwiqueceton
somme des voyelles est égal à 8
somme des consonnes est égal à 7
la somme des résultats(8+7)=15 ... ce chiffre est dans ma liste je veux donc l'envoyer dans le label3.
Bon voila je crois que c ce que tu cherchais
j'ai essayer de faire simple tout en rendant le code efficase
Mais l'example de Gobillot est TRÈS intéressant aussi il offre une autre appoche qui en sois est assez efficase une fois qu'on a fini de bien remplir les tableau
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 7 mars 2005 à 14:01
pas tout compris.
je trouve 9 voyelles et 9 consonnes ce qui donne un total de 18 ce qui correspond forcément à la longueur de la chaîne.
à moins que tu ne comptes pas les "à,é,è,î,.." comme des voyelles
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 7 mars 2005 à 14:24
après vérification j'ai trouvé comment tu fait ton calcul.
Dim i As Integer
Dim j As Integer
Dim c As Integer
Dim Voyelle As Long
Dim Consonne As Long
Dim s As String
Dim T As String
' la Liste des voyelles n'est pas exhaustive, j'en ai sûrement oublier
T = "aeiouàâäéèêëiîïoôöùü"
s = "arilmodiwiqueceton"
For i = 1 To Len(s)
c = Asc(Mid$(s, i, 1))
For j = 1 To Len(T)
If c = Asc(Mid$(T, j, 1)) Then
Voyelle = Voyelle + c
Exit For
End If
Next j
If j > Len(T) Then Consonne = Consonne + c
Next i
MsgBox Voyelle Mod 9
MsgBox Consonne Mod 9
il ne reste plus qu'à faire le total et à rechercher si ce nombre se trouve dans ta table ou pas
Daniel
Vous n’avez pas trouvé la réponse que vous recherchez ?
jsem2k1
Messages postés125Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention12 août 20081 7 mars 2005 à 20:10
The J
le code n'aurais pas été plus rapide et plus simple si on remplassais
s = "arilmodiwiqueceton"
For i = 1 To Len(s)
c = Asc(Mid$(s, i, 1))
For j = 1 To Len(T)
If c = Asc(Mid$(T, j, 1)) Then
Voyelle = Voyelle + c
Exit For
End If
Next j
If j > Len(T) Then Consonne = Consonne + c
Next i
par
Dim i As Integer
Dim Voyelle As Long
Dim Consonne As Long
Dim s As String
s = "arilmodiwiqueceton"
For i = 1 To Len(s)
if instr(1,"aeiouàâäéèêëiîïoôöùü",Mid$(s, i, 1))<> 0 then
Voyelle = Voyelle + Asc(Mid$(s, i, 1))
else
Consonne = Consonne + Asc(Mid$(s, i, 1))
end if
cs_cloclo23
Messages postés4Date d'inscriptionjeudi 26 février 2004StatutMembreDernière intervention27 avril 2005 8 mars 2005 à 05:09
Bonjour
Pour compléter ma question qui n'était pas tout à fait claire,j'ajoute ce qui suit:
les lettres courantes de l'alphabet correspondent strictement à ce tableau
1 2 3 4 5 6 7 8 9
a b c d e f g h i
j k l m n o p q r
s t u v w x y z
jsem2k1
Messages postés125Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention12 août 20081 8 mars 2005 à 20:59
The J
ok je t'ai trouver quelque chose mais la il y a un problème
je ne comprend tout simplement pas comment avec le mot
arilmodiwiqueceton
et le tableau corspondant tu peux arriver a
la solution
somme des voyelles est égal à 8
somme des consonnes est égal à 7
la somme des résultats(8+7)=15 ... ce chiffre est dans ma liste je veux donc l'envoyer dans le label3.
surtout si tu considaire que juste la voyelle i = 9
j'ai essayer d'utiliser le modulo 10 mais pour obtenir un chiffre entre 1 et 9 mais rien n'y pfait alors je ne vois vraimain pas comment tu fais ton compte
en tout cas moici le code
tu a besoin de 3 lable 1 bouton et un text box
Dim mot As String
Dim tavoyelle(6, 2) As String
Dim tabconsonne(9, 2) As String
Dim i As Integer
Dim a As Integer
Dim rep(2) As Integer
Dim som(6) As Integer
Private Sub Command1_Click()
mot = Text1.Text
verif (mot)
lblVoyelle.Caption = rep(1) Mod 10
lblConsonne.Caption = rep(2) Mod 10
For i = 1 To 6 If (rep(1) + rep(2)) som(i) Then lbl3.Caption som(i)
Next i
End Sub
Sub verif(strmot As String)
Dim lettre As String
rep(1) = 0
rep(2) = 0
For i = 1 To Len(strmot)
lettre = Mid(strmot, i, 1)
If InStr(1, "aeiouyéèêàâôöîëûü", lettre) <> 0 Then
For a = 1 To 6
If InStr(1, tavoyelle(a, 1), lettre) <> 0 Then
rep(1) = rep(1) + CInt(tavoyelle(a, 2))
Exit For
End If
Next a
Else
For a = 1 To 9
If InStr(1, tabconsonne(a, 1), lettre) <> 0 Then
rep(2) = rep(2) + CInt(tabconsonne(a, 2))
Exit For
End If
Next a
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 9 mars 2005 à 00:04
Puisque le problème se complique et que les valeurs ne correspondent pas à la vleur ASCII, le mieux est de faire 2 tableaux différents que tu rempliras une seule fois au départ avec les valeurs que tu as besoin.
un premier tableau qui nous dit si on a affaire à une voyelle ou une consonne et un deuxième qui nous donnera la valeur.
Dim i As Integer
Dim c As Integer
Dim Voyelle As Long
Dim Consonne As Long
Dim s As String
Dim Tab1() As Byte
Dim Tab2() As Byte
ReDim Tab1(255)
ReDim Tab2(255)
For i = 97 To 122
Tab1(i) = 2
Tab2(i) = (i - 96) Mod 9
Next c Asc("a"): Tab1(c) 1 c Asc("e"): Tab1(c) 1 c Asc("i"): Tab1(c) 1 c Asc("o"): Tab1(c) 1 c Asc("u"): Tab1(c) 1 c Asc("y"): Tab1(c) 1 c Asc("é"): Tab1(c) 1: Tab2(c) = 1 c Asc("è"): Tab1(c) 1: Tab2(c) = 1 c Asc("ê"): Tab1(c) 1: Tab2(c) = 1 c Asc("ç"): Tab1(c) 2: Tab2(c) = 1 c Asc("û"): Tab1(c) 1: Tab2(c) = 3 c Asc("ù"): Tab1(c) 1: Tab2(c) = 3 c Asc("ü"): Tab1(c) 1: Tab2(c) = 3 c Asc("î"): Tab1(c) 1: Tab2(c) = 5 c Asc("ë"): Tab1(c) 1: Tab2(c) = 5 c Asc("ô"): Tab1(c) 1: Tab2(c) = 6 c Asc("ö"): Tab1(c) 1: Tab2(c) = 6 c Asc("à"): Tab1(c) 1: Tab2(c) = 9 c Asc("â"): Tab1(c) 1: Tab2(c) = 9
s = "arilmodiwiqueceton"
For i = 1 To Len(s)
c = Asc(Mid$(s, i, 1)) If Tab1(c) 1 Then Voyelle Voyelle + Tab2(c) If Tab1(c) 2 Then Consonne Consonne + Tab2(c)
Next
MsgBox Voyelle Mod 9
MsgBox Consonne Mod 9