pifranl
Messages postés9Date d'inscriptionmercredi 28 février 2007StatutMembreDernière intervention 1 avril 2007
-
4 mars 2007 à 11:56
pifranl
Messages postés9Date d'inscriptionmercredi 28 février 2007StatutMembreDernière intervention 1 avril 2007
-
4 mars 2007 à 17:48
Bonjour,
Je voudrais juste poser une petite question qui bloque l'avancée de mon programme. En fait, mon programme demande à l'utilisateur de rentrer des valeurs dans un tableau. Ces valeurs peuvent être numériques ou des inconnues du type ( x,y,z ). Mon programme établit des relations entre les inconnues et les données du problèmes et doit résoudre ces équations. Le problème est le suivant: si je déclare le contenu des tableaux en tant que INTEGER, le prog bloque lorsque l'on rentre des inconnues ( ex: x ). En revanche si je déclare les contenus des tableaux en tant que STRING, je ne peut plus effectuer de calculs sur ces inconnues. Comment dois-je déclarer les tableaux ? Si cela n'est pas possible, comment puis-je procéder pour résoudre ce problème ?
pifranl
Messages postés9Date d'inscriptionmercredi 28 février 2007StatutMembreDernière intervention 1 avril 2007 4 mars 2007 à 16:29
Désolé de t embeter encore. Désormais je vois exactement ce que tu veux dire mais j'arrive pas à faire ce que j'ai envi. En entrant le programme suivant...
Private Sub Command1_Click()
Dim val1, val2, resultat As String
val1 = InputBox("val1")
resultat = Val(val1) * 2
MsgBox ("resultat" & resultat)
End Sub
...je voudrais pouvoir entrer dans val1 : x et que le résultat soit 2x et non pas être obligé de donner une valeur numérique obligatoirement.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 4 mars 2007 à 16:37
C'est plus complexe qu'il n'y parait, il faut concaténer, et gérer le numéric, regarde mon exemple (attention à tes déclarations, seul resultat est de type String..)
Private Sub Command1_Click()
Dim val1 As String, val2 As String, resultat As String
val2 = "2"
val1 = InputBox("val1")
If IsNumeric(val1) Then
resultat = Val(val2) * Val(val1)
Else
resultat = val2 & val1
End If
pifranl
Messages postés9Date d'inscriptionmercredi 28 février 2007StatutMembreDernière intervention 1 avril 2007 4 mars 2007 à 14:19
Je viens d'essayer ce que tu as proposé mais j'ai toujours un problème.
Pour être plus précis:
'Je déclare deux tableaux:
Dim T1(3,2),T2(3,2) As ?
'Dans ces deux tableaux je demande à l'utilisateur de rentrer dans le tableau 1 des données ( sous forme numériques
donc plutot du type INTEGER ) et dans le second l'utilisateur rentre des variables dont il ne connait pas la valeur:
il rentre donc des lettres.
Le but est resoudre les 6 équations suivantes:
2*T2(i,j)=T1(i,j) + 2
La déclaration en tant que STRING fonctionne-t-elle ?
J'espere avoir été plus précis.
P.S.: Peut être ai-je mal compris ce que tu m'as expliqué en tout cas merci déjà pour ta réponse.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 4 mars 2007 à 15:58
Si tu déclares tes tableaux en String, (Dim T1(3, 2) As String), utilises Val devant cette valeur :
2 * Val(T2(i, j)
Pour ton équations, t'auras des inversions comme en maths à faire (déplacer les éléments connus d'un côté du signe égal, et les éléments inconnus de l'autre) pour déterminer les inconnus.
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--