Fractions

Résolu
mimomim Messages postés 23 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 19 mars 2006 - 15 mars 2006 à 02:17
mimomim Messages postés 23 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 19 mars 2006 - 17 mars 2006 à 22:37
Bonjour
amateur...amateur et débutant, je cherche de l'aide pour déclarer et programmer des fractions sous visual basic6. merci à tous.

18 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 mars 2006 à 19:10
je dois vraiment avoir du mal ce soir.....



au départ tu as 2 valeurs, donc dans 2 variables numériques.

tu veux en faire une chaîne ou un calcul indivisible.



2e et dernière tentative de code (comprennez qu'on est pas là pour deviner vos questions !!!)






Option Explicit

'

'

Private Sub Form_Load()

Me.AutoRedraw = True

Me.Show



Me.Print "90.6/60.94 = " & vbTab & Calcul("90.6/60.94") & vbCrLf



Me.Print "3/9 = " & vbTab & Calcul("3/9") & vbCrLf



Me.Print "3215/9651.01 = " & vbTab & Calcul("3215/9651.01") & vbCrLf

End Sub

'

'

'

Private Function Calcul(ByVal sExpression As String) As Currency

' ou est le "/"

Dim iPos As Integer

iPos = InStr (1, sExpression, "/")

If iPos = 0 Then

Calcul = 0

Else

Dim a As Currency, b As Currency

a = Val (Left(sExpression, iPos))

b = Val(Right(sExpression, iPos - 1))

Calcul = a / b

End If

End Function




<small> Coloration
syntaxique automatique [AFCK]</small>
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 mars 2006 à 22:14
légère modif de la fonction Calcul, par précaution....










Private Function Calcul(ByVal sExpression As String) As Currency

' init

Calcul = 0



' où est le "/"

Dim iPos As Integer

iPos = InStr (1, sExpression, "/")



If iPos <> 0 Then

Dim a As Currency, b As Currency



a = Val(Left$(sExpression, iPos))

b = Val (Right$(sExpression, Len(sExpression) - iPos))



' erreur division par zéro?

If b <> 0 Then Calcul = a / b

End If

End Function




<small> Coloration
syntaxique automatique [AFCK]</small>







on s'en est quand même sorti finalement

++
3
cs_isaac22 Messages postés 5 Date d'inscription jeudi 1 décembre 2005 Statut Membre Dernière intervention 17 mars 2006
15 mars 2006 à 02:33
Moi aussi je suis amateur mais je commence à me débrouiller pas mal... une fraction en fait en mathématique c'est comme une division... alors tu fait ton calcul avec des fractions comme normal... exemple (si tu veut l'essayer copie ce Sub dans le code d'une feuille contenant un Label, un TextBox et un CommandButton ) :

Private Sub Command1_Click()


Label1.Caption = Text1.Text * (1 / 2)


End Sub

Tu peut ou non mettre le 1/2 entre paranthèse, libre à toi si tu veut simplement plus te comprendre par la suite.
Dans cet exemple le calcul effectué est le chiffre que tu tappe dans le textbox divisé par 2.

Voila ! j'espère avoir été clair... sinon redemande


Être ou ne pas être... un classique que j'aimerai toujours !
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
15 mars 2006 à 04:15
salut

Mimomim -> question trop floue



Isaac22 -> Label1.Caption = cstr(val(Text1.Text) * (1 / 2))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mimomim Messages postés 23 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 19 mars 2006
16 mars 2006 à 11:09
salut tout le monde
merci isaac22 , comme je suis débutant, mes questions ont beaucoup de chances d'être floues, alors excuse moi. je vais essayer ta réponse et je te ferai signe. salut

mimo
0
mimomim Messages postés 23 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 19 mars 2006
16 mars 2006 à 11:20
re-bonjour isaac22. en fait tu avais raison de dire que ma question est floue. j'ai essayé ta réponse mais ça ne me renvoie pas des fractions. ce dont j'ai besoin c'est des instructions qui me permettent d'avoir un renvoi en fraction. je ne sais pas si j'ai été clair cette fois. salutations !
mimo
0
cs_isaac22 Messages postés 5 Date d'inscription jeudi 1 décembre 2005 Statut Membre Dernière intervention 17 mars 2006
17 mars 2006 à 04:02
Ouais tu as été très clair mais je suis désolé c'est une chose que je ne sais pas... bonne chance et j,espère tu aura une réponse ! ;) a +


Être ou ne pas être... un classique que j'aimerai toujours !
0
mimomim Messages postés 23 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 19 mars 2006
17 mars 2006 à 18:11
salut isaac22, merci d'avoir essayé. je te donnerai la réponse dèsque quelqu'un me l'aura communiquée.

alors, contre la mauvaise fortune de fractions, faisons bon coeur
mimo
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 mars 2006 à 18:14
mimo, c'est bien beau tous tes mots doux mais tant que tu ne précises
pas ta question, elle sera toujours aussi floue et restera donc
surement sans réponse....



PCPT [AFCK]
0
mimomim Messages postés 23 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 19 mars 2006
17 mars 2006 à 18:41
Re-salut 401740 PCPT, voilà en dcrypté mon problème
si j'ai num1 (un numérateur) et deno1 (un dénominateur), si j'écris frac1 = num1 & "/" & deno1 cela me donne bien une fraction mais une fraction que je ne pourrai pas utiliser pour des opérations de calcul (réduction, PPDC, multiplication etc.) parce qu'elle n'est pas de type numérique. si, par contre j'écris directement frac1=num1/deno1 cela me donne un décimal et ce que je voudrais c'est avoir un renvoi en fraction . j'espère que j'ai pu exprimer clairement mon problème. salut

mimo
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 mars 2006 à 18:44
beh tu ne dis toujours pas ce que tu en attends.



là, tu veux créer une chaîne, pas un calcul



le but est l'automatisation je suppose. voici un exemple mais je suis certain que ce n'est pas ta demande...






Option Explicit

'

'

Private Sub Form_Load()

Const NUM1 As Currency = 31.15

Const DENO1 As Currency = 4.12



Me.AutoRedraw = True

Me.Show



Me.Print NUM1 & vbTab & vbTab & DENO1 & vbCrLf

Me.Print "DIVIZ :" & vbTab & vbTab & aDIVISEb(NUM1, DENO1)

Me.Print "FOIS :" & vbTab & vbTab & aFOISb(NUM1, DENO1)

Me.Print "MOINS :" & vbTab & aMOINSb(NUM1, DENO1)

Me.Print "PLUS :" & vbTab & vbTab & aPLUSb(NUM1, DENO1)

End Sub

'

'

'

Private Function aDIVISEb(a As Currency, b As Currency) As Currency

aDIVISEb = a / b

End Function

'

Private Function aFOISb(a As Currency, b As Currency) As Currency

aFOISb = a * b

End Function

'

Private Function aMOINSb(a As Currency, b As Currency) As Currency

aMOINSb = a - b

End Function

'

Private Function aPLUSb(a As Currency, b As Currency) As Currency

aPLUSb = a + b

End Function





<small> Coloration
syntaxique automatique [AFCK]</small>
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 mars 2006 à 18:46
en fait tu voudrais avoir comme résultat par exemple une chaîne contenant "1/13", c'est çà?
0
mimomim Messages postés 23 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 19 mars 2006
17 mars 2006 à 18:51
oui PCPT, mais que je pourrais utiliser dans les opérations de calcul

mimo
0
mimomim Messages postés 23 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 19 mars 2006
17 mars 2006 à 19:09
PCPT, je reprends ma question plus clailrement car je vois que je l'ai mal posée.


j'ai à mettre un programme qui, à partir de quelques variables de type Integer me renvoie des fractions (sous forme de fraction (type a/b)) ensuite je dois comparer ces fractions et les réduire au même dénominateur pour, ensuite, faire des opérations de calcul sur ces dernières. voilà en gros! et merci .

mimo
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 mars 2006 à 19:15
b = Val(Right(sExpression, Len(sExpression) - iPos))
0
mimomim Messages postés 23 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 19 mars 2006
17 mars 2006 à 19:21
Merci PCPT, je vais essayé tes deux réponses et je te dirai ce que j'ai obtenu. je m'excuse de donner tant de mal, et merci de supporter mes questions de débutant. j'en rougis ! a plus! salutations

mimo
0
mimomim Messages postés 23 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 19 mars 2006
17 mars 2006 à 21:08
Merci PCPT, ta deuxième proposition de code répond bien à ma préoccupation. salutations!

mimomim

mimo
0
mimomim Messages postés 23 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 19 mars 2006
17 mars 2006 à 22:37
oui, enfin et c'est grâce à toi. merci aussi pour cette modification de précaution.
mimo
0
Rejoignez-nous