|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
CALCULER UNE EXPRESSION MATHEMATIQUE
Information sur la source
Description
Permet de calculer une équation du type : 2*(V4*4²+(2*2))/8
Source
- Function Calcule(TheCalcul As String)
- Dim NewCalcul As String, ThePos As Long, Parenthese As String, CParenthese As String, NegPos As Long, NextPar As Long
- NewCalcul = Replace(TheCalcul, " ", "")
- NewCalcul = Replace(NewCalcul, ",", ".")
- NewCalcul = "0+" & NewCalcul & "+0"
- NewCalcul = UCase(NewCalcul)
-
- While InStrRev(1, NewCalcul, "(") <> Len(NewCalcul) 'Calcule les parenthèses
- ThePos = Len(NewCalcul) - InStrRev(1, NewCalcul, "(")
- NextPar = InStr(ThePos, NewCalcul, ")")
- Parenthese = Mid(NewCalcul, ThePos, NextPar - ThePos + 1)
- CParenthese = Calcule(Mid(Parenthese, 2, Len(Parenthese) - 2))
- NewCalcul = Mid(NewCalcul, 1, ThePos - 1) & CParenthese & Mid(NewCalcul, ThePos + Len(Parenthese), Len(NewCalcul) - (ThePos + Len(Parenthese)) + 1)
- Wend
-
- NewCalcul = Replace(NewCalcul, ",", ".")
-
- While InStr(1, NewCalcul, "²") <> 0 'Calcule les carrés
- ThePos = InStr(1, NewCalcul, "²")
- NewCalcul = Mid(NewCalcul, 1, Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) & Val(Mid(NewCalcul, 1 + Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul), ThePos - (Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) - 1)) ^ 2 & Mid(NewCalcul, ThePos + (GetSeparatorRev(ThePos + 1, NewCalcul) - ThePos))
- Wend
-
- NewCalcul = Replace(NewCalcul, ",", ".")
-
- While InStr(1, NewCalcul, "V") <> 0 'Calcule les racines carrés
- ThePos = InStr(1, NewCalcul, "V")
- NewCalcul = Mid(NewCalcul, 1, Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) & Sqr(Val(Mid(NewCalcul, ThePos + 1, GetSeparatorRev(ThePos + 1, NewCalcul) - ThePos - 1))) & Mid(NewCalcul, ThePos + (GetSeparatorRev(ThePos + 1, NewCalcul) - ThePos))
- Wend
-
- NewCalcul = Replace(NewCalcul, ",", ".")
-
- If InStr(1, NewCalcul, "*") < InStr(1, NewCalcul, "/") Then 'Calcule les multiplications et les divisions
- While InStr(1, NewCalcul, "*") <> 0
- ThePos = InStr(1, NewCalcul, "*")
- NewCalcul = Mid(NewCalcul, 1, Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) & (Val(Mid(NewCalcul, 1 + Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul), ThePos - (Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) - 1)) * Val(Mid(NewCalcul, ThePos + 1, GetSeparatorSP(ThePos + 1, NewCalcul) - ThePos - 1))) & Mid(NewCalcul, ThePos + (GetSeparatorSP(ThePos + 1, NewCalcul) - ThePos))
- Wend
-
- NewCalcul = Replace(NewCalcul, ",", ".")
-
- While InStr(1, NewCalcul, "/") <> 0
- ThePos = InStr(1, NewCalcul, "/")
- NewCalcul = Mid(NewCalcul, 1, Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) & (Val(Mid(NewCalcul, 1 + Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul), ThePos - (Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) - 1)) / Val(Mid(NewCalcul, ThePos + 1, GetSeparatorSP(ThePos + 1, NewCalcul) - ThePos - 1))) & Mid(NewCalcul, ThePos + (GetSeparatorSP(ThePos + 1, NewCalcul) - ThePos))
- Wend
- Else
- While InStr(1, NewCalcul, "/") <> 0
- ThePos = InStr(1, NewCalcul, "/")
- NewCalcul = Mid(NewCalcul, 1, Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) & (Val(Mid(NewCalcul, 1 + Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul), ThePos - (Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) - 1)) / Val(Mid(NewCalcul, ThePos + 1, GetSeparatorSP(ThePos + 1, NewCalcul) - ThePos - 1))) & Mid(NewCalcul, ThePos + (GetSeparatorSP(ThePos + 1, NewCalcul) - ThePos))
- Wend
-
- NewCalcul = Replace(NewCalcul, ",", ".")
-
- While InStr(1, NewCalcul, "*") <> 0
- ThePos = InStr(1, NewCalcul, "*")
- NewCalcul = Mid(NewCalcul, 1, Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) & (Val(Mid(NewCalcul, 1 + Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul), ThePos - (Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) - 1)) * Val(Mid(NewCalcul, ThePos + 1, GetSeparatorSP(ThePos + 1, NewCalcul) - ThePos - 1))) & Mid(NewCalcul, ThePos + (GetSeparatorSP(ThePos + 1, NewCalcul) - ThePos))
- Wend
- End If
-
- NewCalcul = Replace(NewCalcul, ",", ".")
-
- Calcule = Addition(NewCalcul) 'Additionne le tout
- End Function
-
- Function InStrRev(Start As Long, String1 As String, String2 As String)
- InStrRev = Len(String1)
- For i = 1 To Len(String1) - Start
- If Mid(String1, Len(String1) - Start - i + 1, Len(String2)) = String2 Then InStrRev = Start + i - 1: Exit Function
- Next i
- End Function
-
- Function GetSeparatorRev(Start As Long, TheString As String)
- Dim VAdd As Long, VDiv As Long, VMul As Long, VRac As Long, VSou As Long
-
- VAdd = InStr(Start, TheString, "+")
- VDiv = InStr(Start, TheString, "/")
- VMul = InStr(Start, TheString, "*")
- VRac = InStr(Start, TheString, "V")
- VSou = InStr(Start, TheString, "-")
-
- If VAdd = 0 Then
- VAdd = Len(TheString) + 1
- End If
- If VDiv = 0 Then
- VDiv = Len(TheString) + 1
- End If
- If VMul = 0 Then
- VMul = Len(TheString) + 1
- End If
- If VRac = 0 Then
- VRac = Len(TheString) + 1
- End If
- If VSou = 0 Then
- VSou = Len(TheString) + 1
- End If
-
- If VAdd < VDiv And VAdd < VMul And VAdd < VRac And VAdd < VSou Then
- GetSeparatorRev = VAdd
- ElseIf VDiv < VAdd And VDiv < VMul And VDiv < VRac And VDiv < VSou Then
- GetSeparatorRev = VDiv
- ElseIf VRac < VAdd And VRac < VMul And VRac < VDiv And VRac < VSou Then
- GetSeparatorRev = VRac
- ElseIf VSou < VAdd And VSou < VMul And VSou < VDiv And VSou < VRac Then
- GetSeparatorRev = VSou
- Else
- GetSeparatorRev = VMul
- End If
- End Function
- Function GetSeparatorSP(Start As Long, TheString As String)
- Dim VAdd As Long, VDiv As Long, VMul As Long, VRac As Long, VSou As Long
-
- VAdd = InStr(Start, TheString, "+")
- VDiv = InStr(Start, TheString, "/")
- VMul = InStr(Start, TheString, "*")
- VRac = InStr(Start, TheString, "V")
- VSou = InStr(Start, TheString, "-")
-
- If VAdd = 0 Then
- VAdd = Len(TheString) + 1
- End If
- If VDiv = 0 Then
- VDiv = Len(TheString) + 1
- End If
- If VMul = 0 Then
- VMul = Len(TheString) + 1
- End If
- If VRac = 0 Then
- VRac = Len(TheString) + 1
- End If
- If VSou - Start = 0 Or VSou = 0 Then
- VSou = Len(TheString) + 1
- End If
-
- If VAdd < VDiv And VAdd < VMul And VAdd < VRac And VAdd < VSou Then
- GetSeparatorSP = VAdd
- ElseIf VDiv < VAdd And VDiv < VMul And VDiv < VRac And VDiv < VSou Then
- GetSeparatorSP = VDiv
- ElseIf VRac < VAdd And VRac < VMul And VRac < VDiv And VRac < VSou Then
- GetSeparatorSP = VRac
- ElseIf VSou < VAdd And VSou < VMul And VSou < VDiv And VSou < VRac Then
- GetSeparatorSP = VSou
- Else
- GetSeparatorSP = VMul
- End If
-
-
- End Function
- Function GetSeparator(Start As Long, TheString As String)
- Dim VAdd As Long, VDiv As Long, VMul As Long, VRac As Long, VSou As Long
-
- VAdd = InStrRev(Start, TheString, "+")
- VDiv = InStrRev(Start, TheString, "/")
- VMul = InStrRev(Start, TheString, "*")
- VRac = InStrRev(Start, TheString, "V")
- VSou = InStrRev(Start, TheString, "-")
-
- If VAdd = 0 Then
- VAdd = Len(TheString) + 1
- End If
- If VDiv = 0 Then
- VDiv = Len(TheString) + 1
- End If
- If VMul = 0 Then
- VMul = Len(TheString) + 1
- End If
- If VRac = 0 Then
- VRac = Len(TheString) + 1
- End If
- If VSou = 0 Then
- VSou = Len(TheString) + 1
- End If
-
- If VAdd < VDiv And VAdd < VMul And VAdd < VRac And VAdd < VSou Then
- GetSeparator = VAdd
- ElseIf VDiv < VAdd And VDiv < VMul And VDiv < VRac And VDiv < VSou Then
- GetSeparator = VDiv
- ElseIf VRac < VAdd And VRac < VMul And VRac < VDiv And VRac < VSou Then
- GetSeparator = VRac
- ElseIf VSou < VAdd And VSou < VMul And VSou < VDiv And VSou < VRac Then
- GetSeparator = VSou
- Else
- GetSeparator = VMul
- End If
- End Function
-
- Public Function Replace(ByVal laChaine As String, ByVal old_car As String, ByVal new_car As String) As String
- Dim ncar As Integer, lng As Integer, result As String, txt As String
- lng = Len(old_car)
- txt = laChaine
- If lng <= 0 Then
- Replace = txt
- Exit Function
- End If
- On Error GoTo ErrChangeCaractre
-
- If lng <= 0 Or Len(Trim(txt)) <= 0 Then
- Replace = txt
- Exit Function
- End If
- result = vbNullString
- ncar = InStr(txt, old_car)
- Do While ncar
- If Len(result) > 0 Then
- If lng > 1 Then
- If ncar = 1 Then
- result = result & new_car
- Else
- result = result & Left(txt, ncar - 1) & new_car
- End If
- Else
- result = result & Left(txt, ncar - 1) & new_car
- End If
- Else
- result = Left(txt, ncar - 1) & new_car
- End If
- If lng > 1 Then
- txt = Right(txt, Len(txt) - ncar - (lng - 1))
- Else
- txt = Right(txt, Len(txt) - ncar)
- End If
- ncar = InStr(txt, old_car)
- Loop
- If Len(txt) > 0 Then result = result & txt
- Replace = result
- Exit Function
- ErrChangeCaractre:
- Replace = result
- End Function
-
- Function Addition(TheCalcule As String)
- Dim NextC, i As Long
- NextC = Val(Mid(TheCalcule, 1, GetSeparatorRev(1, TheCalcule)))
- TheCalcule = Replace(TheCalcule, "+-", "-")
- TheCalcule = Replace(TheCalcule, "--", "+")
- TheCalcule = Replace(TheCalcule, "++", "+")
- For i = 1 To Len(TheCalcule)
- If Mid(TheCalcule, i, 1) = "+" Then
- NextC = NextC + Val(Mid(TheCalcule, i + 1, Len(TheCalcule) - GetSeparatorRev(i, TheCalcule)))
- ElseIf Mid(TheCalcule, i, 1) = "-" Then
- NextC = NextC - Val(Mid(TheCalcule, i + 1, Len(TheCalcule) - GetSeparatorRev(i, TheCalcule)))
- End If
- Next i
- Addition = NextC
- End Function
-
Function Calcule(TheCalcul As String)
Dim NewCalcul As String, ThePos As Long, Parenthese As String, CParenthese As String, NegPos As Long, NextPar As Long
NewCalcul = Replace(TheCalcul, " ", "")
NewCalcul = Replace(NewCalcul, ",", ".")
NewCalcul = "0+" & NewCalcul & "+0"
NewCalcul = UCase(NewCalcul)
While InStrRev(1, NewCalcul, "(") <> Len(NewCalcul) 'Calcule les parenthèses
ThePos = Len(NewCalcul) - InStrRev(1, NewCalcul, "(")
NextPar = InStr(ThePos, NewCalcul, ")")
Parenthese = Mid(NewCalcul, ThePos, NextPar - ThePos + 1)
CParenthese = Calcule(Mid(Parenthese, 2, Len(Parenthese) - 2))
NewCalcul = Mid(NewCalcul, 1, ThePos - 1) & CParenthese & Mid(NewCalcul, ThePos + Len(Parenthese), Len(NewCalcul) - (ThePos + Len(Parenthese)) + 1)
Wend
NewCalcul = Replace(NewCalcul, ",", ".")
While InStr(1, NewCalcul, "²") <> 0 'Calcule les carrés
ThePos = InStr(1, NewCalcul, "²")
NewCalcul = Mid(NewCalcul, 1, Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) & Val(Mid(NewCalcul, 1 + Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul), ThePos - (Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) - 1)) ^ 2 & Mid(NewCalcul, ThePos + (GetSeparatorRev(ThePos + 1, NewCalcul) - ThePos))
Wend
NewCalcul = Replace(NewCalcul, ",", ".")
While InStr(1, NewCalcul, "V") <> 0 'Calcule les racines carrés
ThePos = InStr(1, NewCalcul, "V")
NewCalcul = Mid(NewCalcul, 1, Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) & Sqr(Val(Mid(NewCalcul, ThePos + 1, GetSeparatorRev(ThePos + 1, NewCalcul) - ThePos - 1))) & Mid(NewCalcul, ThePos + (GetSeparatorRev(ThePos + 1, NewCalcul) - ThePos))
Wend
NewCalcul = Replace(NewCalcul, ",", ".")
If InStr(1, NewCalcul, "*") < InStr(1, NewCalcul, "/") Then 'Calcule les multiplications et les divisions
While InStr(1, NewCalcul, "*") <> 0
ThePos = InStr(1, NewCalcul, "*")
NewCalcul = Mid(NewCalcul, 1, Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) & (Val(Mid(NewCalcul, 1 + Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul), ThePos - (Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) - 1)) * Val(Mid(NewCalcul, ThePos + 1, GetSeparatorSP(ThePos + 1, NewCalcul) - ThePos - 1))) & Mid(NewCalcul, ThePos + (GetSeparatorSP(ThePos + 1, NewCalcul) - ThePos))
Wend
NewCalcul = Replace(NewCalcul, ",", ".")
While InStr(1, NewCalcul, "/") <> 0
ThePos = InStr(1, NewCalcul, "/")
NewCalcul = Mid(NewCalcul, 1, Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) & (Val(Mid(NewCalcul, 1 + Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul), ThePos - (Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) - 1)) / Val(Mid(NewCalcul, ThePos + 1, GetSeparatorSP(ThePos + 1, NewCalcul) - ThePos - 1))) & Mid(NewCalcul, ThePos + (GetSeparatorSP(ThePos + 1, NewCalcul) - ThePos))
Wend
Else
While InStr(1, NewCalcul, "/") <> 0
ThePos = InStr(1, NewCalcul, "/")
NewCalcul = Mid(NewCalcul, 1, Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) & (Val(Mid(NewCalcul, 1 + Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul), ThePos - (Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) - 1)) / Val(Mid(NewCalcul, ThePos + 1, GetSeparatorSP(ThePos + 1, NewCalcul) - ThePos - 1))) & Mid(NewCalcul, ThePos + (GetSeparatorSP(ThePos + 1, NewCalcul) - ThePos))
Wend
NewCalcul = Replace(NewCalcul, ",", ".")
While InStr(1, NewCalcul, "*") <> 0
ThePos = InStr(1, NewCalcul, "*")
NewCalcul = Mid(NewCalcul, 1, Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) & (Val(Mid(NewCalcul, 1 + Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul), ThePos - (Len(NewCalcul) - GetSeparator(Len(NewCalcul) - ThePos + 1, NewCalcul)) - 1)) * Val(Mid(NewCalcul, ThePos + 1, GetSeparatorSP(ThePos + 1, NewCalcul) - ThePos - 1))) & Mid(NewCalcul, ThePos + (GetSeparatorSP(ThePos + 1, NewCalcul) - ThePos))
Wend
End If
NewCalcul = Replace(NewCalcul, ",", ".")
Calcule = Addition(NewCalcul) 'Additionne le tout
End Function
Function InStrRev(Start As Long, String1 As String, String2 As String)
InStrRev = Len(String1)
For i = 1 To Len(String1) - Start
If Mid(String1, Len(String1) - Start - i + 1, Len(String2)) = String2 Then InStrRev = Start + i - 1: Exit Function
Next i
End Function
Function GetSeparatorRev(Start As Long, TheString As String)
Dim VAdd As Long, VDiv As Long, VMul As Long, VRac As Long, VSou As Long
VAdd = InStr(Start, TheString, "+")
VDiv = InStr(Start, TheString, "/")
VMul = InStr(Start, TheString, "*")
VRac = InStr(Start, TheString, "V")
VSou = InStr(Start, TheString, "-")
If VAdd = 0 Then
VAdd = Len(TheString) + 1
End If
If VDiv = 0 Then
VDiv = Len(TheString) + 1
End If
If VMul = 0 Then
VMul = Len(TheString) + 1
End If
If VRac = 0 Then
VRac = Len(TheString) + 1
End If
If VSou = 0 Then
VSou = Len(TheString) + 1
End If
If VAdd < VDiv And VAdd < VMul And VAdd < VRac And VAdd < VSou Then
GetSeparatorRev = VAdd
ElseIf VDiv < VAdd And VDiv < VMul And VDiv < VRac And VDiv < VSou Then
GetSeparatorRev = VDiv
ElseIf VRac < VAdd And VRac < VMul And VRac < VDiv And VRac < VSou Then
GetSeparatorRev = VRac
ElseIf VSou < VAdd And VSou < VMul And VSou < VDiv And VSou < VRac Then
GetSeparatorRev = VSou
Else
GetSeparatorRev = VMul
End If
End Function
Function GetSeparatorSP(Start As Long, TheString As String)
Dim VAdd As Long, VDiv As Long, VMul As Long, VRac As Long, VSou As Long
VAdd = InStr(Start, TheString, "+")
VDiv = InStr(Start, TheString, "/")
VMul = InStr(Start, TheString, "*")
VRac = InStr(Start, TheString, "V")
VSou = InStr(Start, TheString, "-")
If VAdd = 0 Then
VAdd = Len(TheString) + 1
End If
If VDiv = 0 Then
VDiv = Len(TheString) + 1
End If
If VMul = 0 Then
VMul = Len(TheString) + 1
End If
If VRac = 0 Then
VRac = Len(TheString) + 1
End If
If VSou - Start = 0 Or VSou = 0 Then
VSou = Len(TheString) + 1
End If
If VAdd < VDiv And VAdd < VMul And VAdd < VRac And VAdd < VSou Then
GetSeparatorSP = VAdd
ElseIf VDiv < VAdd And VDiv < VMul And VDiv < VRac And VDiv < VSou Then
GetSeparatorSP = VDiv
ElseIf VRac < VAdd And VRac < VMul And VRac < VDiv And VRac < VSou Then
GetSeparatorSP = VRac
ElseIf VSou < VAdd And VSou < VMul And VSou < VDiv And VSou < VRac Then
GetSeparatorSP = VSou
Else
GetSeparatorSP = VMul
End If
End Function
Function GetSeparator(Start As Long, TheString As String)
Dim VAdd As Long, VDiv As Long, VMul As Long, VRac As Long, VSou As Long
VAdd = InStrRev(Start, TheString, "+")
VDiv = InStrRev(Start, TheString, "/")
VMul = InStrRev(Start, TheString, "*")
VRac = InStrRev(Start, TheString, "V")
VSou = InStrRev(Start, TheString, "-")
If VAdd = 0 Then
VAdd = Len(TheString) + 1
End If
If VDiv = 0 Then
VDiv = Len(TheString) + 1
End If
If VMul = 0 Then
VMul = Len(TheString) + 1
End If
If VRac = 0 Then
VRac = Len(TheString) + 1
End If
If VSou = 0 Then
VSou = Len(TheString) + 1
End If
If VAdd < VDiv And VAdd < VMul And VAdd < VRac And VAdd < VSou Then
GetSeparator = VAdd
ElseIf VDiv < VAdd And VDiv < VMul And VDiv < VRac And VDiv < VSou Then
GetSeparator = VDiv
ElseIf VRac < VAdd And VRac < VMul And VRac < VDiv And VRac < VSou Then
GetSeparator = VRac
ElseIf VSou < VAdd And VSou < VMul And VSou < VDiv And VSou < VRac Then
GetSeparator = VSou
Else
GetSeparator = VMul
End If
End Function
Public Function Replace(ByVal laChaine As String, ByVal old_car As String, ByVal new_car As String) As String
Dim ncar As Integer, lng As Integer, result As String, txt As String
lng = Len(old_car)
txt = laChaine
If lng <= 0 Then
Replace = txt
Exit Function
End If
On Error GoTo ErrChangeCaractre
If lng <= 0 Or Len(Trim(txt)) <= 0 Then
Replace = txt
Exit Function
End If
result = vbNullString
ncar = InStr(txt, old_car)
Do While ncar
If Len(result) > 0 Then
If lng > 1 Then
If ncar = 1 Then
result = result & new_car
Else
result = result & Left(txt, ncar - 1) & new_car
End If
Else
result = result & Left(txt, ncar - 1) & new_car
End If
Else
result = Left(txt, ncar - 1) & new_car
End If
If lng > 1 Then
txt = Right(txt, Len(txt) - ncar - (lng - 1))
Else
txt = Right(txt, Len(txt) - ncar)
End If
ncar = InStr(txt, old_car)
Loop
If Len(txt) > 0 Then result = result & txt
Replace = result
Exit Function
ErrChangeCaractre:
Replace = result
End Function
Function Addition(TheCalcule As String)
Dim NextC, i As Long
NextC = Val(Mid(TheCalcule, 1, GetSeparatorRev(1, TheCalcule)))
TheCalcule = Replace(TheCalcule, "+-", "-")
TheCalcule = Replace(TheCalcule, "--", "+")
TheCalcule = Replace(TheCalcule, "++", "+")
For i = 1 To Len(TheCalcule)
If Mid(TheCalcule, i, 1) = "+" Then
NextC = NextC + Val(Mid(TheCalcule, i + 1, Len(TheCalcule) - GetSeparatorRev(i, TheCalcule)))
ElseIf Mid(TheCalcule, i, 1) = "-" Then
NextC = NextC - Val(Mid(TheCalcule, i + 1, Len(TheCalcule) - GetSeparatorRev(i, TheCalcule)))
End If
Next i
Addition = NextC
End Function
Conclusion
Exemple : Calcule("2*(V16)") 'renvoie 8 V --> Racine Carré ² --> Carré * --> Multiplier / --> Diviser + --> Additioner - --> Soustraire ( --> Parenthèse Mettez vos commentaire (il contient surement quelque bug, merci de me prevenir)...
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Je trouve pu un programme !!! De calcul et d'expression!!!!!!!! [ par ATH|500| ]
Voilà le programme que je cherche...Un programme qui traçait les lignes graphiques de différentes fontions comme Tan Sin Sin-1 etc. etc.. Mais je m'en
Pi mais comment on calcul Pi ??? [ par koubihack ]
c'est que l'on demande souvent à ceux qui font de l'informatique (plus précisement de la programmation) de calculer Pi avec 10 000 000 de virgules, pe
calcul de cpu [ par rerereda ]
Bonjour tout le monde,Je voudrais savoir s'il y a un programme qui permet de calculer et d'afficher en temps reel la charge CPU.Comment faire en CShar
calcul mathématique [ par breton53 ]
un peu d'aide pour débutantJe dois concevoir un programme: pour calculer le max, le min et la moy des valeurs stockées dans un tableau 1D (temp()) lo
Calculer la dérivée d'une courbe [ par violent_ken ]
Violent Ken bonjour.j'ai créé un programme pour tracer des courbes et leurs dérivée (première et seconde)==> <A HREF="/cod
Calculer le temps de calcul d'algorithmes mathématiques? [ par ZarathoustraQC ]
Bonjours,Je suis un jeune étudiant et j'aimerais savoir si il existe un moyen ou un programme pour calculer le temps que prend un processus pour accom
calcul dans un datagrid [ par the_daren ]
Bonjour,le probleme est que j'arrive a calculer sur une table entiere mais pas sur une partie car dans le load je peut choisir une annee et donc le da
calcul date et heure [ par dauphin70 ]
bonjour, je suis débutante sous vb6 et j'ai un problème pour calculer une duréeen fait à partir d'une date d'arrêt, d'une heure d'arrêt, une date de m
Calcul de distances... [ par DragonDo ]
Salut à tous,Quelqu'un sait-il comment calculer la distance entre deux points du globe en connaissant les coordonnées gps de ceux-ci. Dans la lancée,
Calcul trajet [ par Dede ]
Bonjour,Voila mon problème.Quel algo utiliser pour calculer un itinéraire de métro (par exemple). Le tout étant de ne pas réinventer la roue.Toutes le
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version

HTC Magic
Entre 429€ et 429€
|